Shell - 3.Bash shell과 Rules (1)
참고 강의 : TTABAE-LEARN
Contents
- 3-1. Quoting Rule
- 3-2. Nesting commands
- 3-3. Alias
- 3-4. Prompt
3-1. Quoting Rule
메타 문자 ( Meta characters )
- “특별한 의미를 가지는” 문자
- ex)
\ ? () $ ... * % {} []
등
Quoting Rule
-
메타 문자의 의미를 “제거”하고, “단순 문자”로 변경
-
1) back slash (
\
)- \ + 메타문자 = 단순문자
-
2) double quotes (
""
) -
3) single quotes (
""
)( 2) & 3)의 차이 : 2)의 경우, “
$
” & “''
“ 에 대해서는 불가 )
Example 1) 메타 문자
$ echo *
# * = 모든 문자
# 모든 파일 보여주기
$ echo a*
# a로 시작하는 모든 파일 보여주기
$ echo ????
# 4글자로 시작하는 모든 파일 보여주기
$ touch myfile{1..5}
# {1..5} : 1~5
# myfile1 ~ myfile5 파일 보여주기
Example 2) Quoting Rules
- 2-1) backslash (
\
)
$ touch ***
# 현재 경로 모든 파일 터치
$ touch \*\*\*
# "***"이름의 파일 생성
$ touch my\*name
$ "my*name"이름의 파일 생성
- 2-2) double quote
$ touch "**"
# "**"이름의 파일 생성
$ touch "This is a file"
# "This is a file"이름의 파일 생성
- 2-3) single quote
$ touch ' '
$ ' '이름(빈 이름)의 파일 생성
$ echo 'Date of today *date*'
# 'Date of today *date*'가 출력됨
3-2. Nesting commands
- command 안의 command
# 방법 1 : $(command)
# 방법 2 : `command`
- example
$ echo "Today's date is $(date)"
$ echo "Today's date is `date`"
추가 : date
함수
+
: format 지정
$ date +%Y%m%d
# 20220202
$ touch report-$(date +%Y%m%d)_v1
# report-20220202_v1 파일 생성
$ touch report-`date +%Y%m%d`_v2
# report-20220202_v2 파일 생성
3-3. Alias (별명)
- shell 명령어에 “별명/이름” 부여
- 명령어 조합으로 새로운 명령 생성 가능
- alias 명렁ㅇ
- alias 등록 :
alias name='command'
- alias 확인 :
alias
,alias myalias
- alias 삭제 :
unalias myalias
- alias 등록 :
- example
$ alias h=history
3-4. Prompt
PS1
변수를 사용하여, shell의 기본 prompt 모양 설정 가능- “bash shell”에서만, prompt 모양에 적용 가능한 특수문자 존재
$ whoami
# host 이름
$ echo $PS1
# prompt 모양 확인 가능
$ PS1='[\u@\h \W]\$ '
# user id, host id, working directory
alias, prompt, env 등은 exit 후 다시 들어가면, 초기화됨!
$\rightarrow$ .bashrc
라는 파일에 등록을 해줘야!