본문 바로가기
따배셸

[따배셸] 1강~3강

by Engineer-Lee 2022. 11. 14.
반응형

셸의 종류 출력
cat /etc/shells

현재 작업 셸 확인
sudo grep ubuntu /etc/passwd

로그인 셸 변경
cat /etc/passwd
sudo chsh ubuntu
(ex: /bin/sh)


셸의 변수는 선언할 필요없이 사용 가능하다.

변수명: 문자, 숫자, _(언더스코어)로 구성될 수 있지만, 시작은 반드시 문자나 _로 시작

변수 선언: varname=value
ex) score=90

변수 확인: echo, set
ex) echo $score
ex) set | gerp score

변수 제거: unset varname
unset score


셸 환경변수: 동작 되는 프로그램에 영향을 주는 변수
환경변수 선언: export VAR=value
ex) export NAME=shlee
ex) echo $NAME

시스템에 적용된 환경 변수 확인: env
ex) env | grep NAME

기억해야 되는 환경변수
PATH: 명령어 탐색경로
HOME: 홈디렉토리의 경로, cd 명령 실행시 적용
USER: 로그인 사용자 이름
SHELL: 로그인 shell의 이름


Metacharacters: 셸에서 특별히 의미를 정해 놓은 문자로 \ ? () $ * % {} [] 등
ex) echo a* : a로 시작하는 모든 파일을 출력
ex) echo ????? : 파일명이 다섯글자인 모든 파일을 출력
ex) touch myfile{1..3} : myfile1, myfile2, myfile3 이라는 파일들을 생성

Quoting Rule: 메타문자의 의미를 제거하고 단순 문자로 변경
Backslash(\): \ 바로 뒤의 메타 문자는 특별한 의미를 제거
ex) touch \*\*\* : ***이라는 파일을 생성

Double Quotes(""): ""내의 모든 메타문자의 의미를 제거. 단 $, ``는 제외
ex) touch "***" : ***이라는 파일을 생성

Single Quotes(''): ''내의 모든 메타문자의 의미를 제거
ex) touch '$**$' : $**$이라는 파일을 생성


command 치환: 명령어의 실행 결화를 치환하여 명령을 실행

nesting commands
$(command)
`command`
ex) echo "Today is ${date}"             -> 실행결과: Today is Tue Nov  8 08:59:27 UTC 2022
ex) echo "Today is `date`"               -> 실행결과: Today is Tue Nov  8 08:59:27 UTC 2022
ex) touch report-$(date +%Y%m%d)   -> 실행결과로 report-20221108 파일이 생성됨


alias: 셸의 명령에 새로운 이름을 부여, 명령들을 조합하여 새로운 이름의 명령을 생성

alias 관리 명령
alias 등록: alias name='command'
ex) alias c=clear 입력 후 c를 입력하면 clear명령을 동작한다.
alias 확인: alias or alias name
alias 삭제: unalias name


셸 프롬프트: PS1 변수를 이용해 셸의 기본 프롬프트 모양을 설정, 
bash 셸에서만 프롬프트 모양에 적용 가능한 특수문자가 존재

\h: 호스트 이름
\u: 사용자 이름
\w: 작업 디렉토리 - 절대경로
\W: 작업 디렉토리 - 상대경로
\d: 오늘 날짜
\t: 현재 시간
\$: $ 또는 # 프롬프트 모양

반응형

'따배셸' 카테고리의 다른 글

[따배셸] 8. Branching  (0) 2025.02.13
[따배셸] 7. Input&Output  (0) 2025.02.13
[따배셸] 6. Positional Parameters  (0) 2025.02.13
[따배셸] 5. Bash shell script란  (0) 2022.11.14
[따배셸] 4. Bash shell과 Rules 2  (0) 2022.11.14