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
  • example
$ alias h=history


3-4. Prompt

  • PS1 변수를 사용하여, shell의 기본 prompt 모양 설정 가능
  • “bash shell”에서만, prompt 모양에 적용 가능한 특수문자 존재

figure2


$ whoami
# host 이름

$ echo $PS1
# prompt 모양 확인 가능

$ PS1='[\u@\h \W]\$ '
# user id, host id, working directory


alias, prompt, env 등은 exit 후 다시 들어가면, 초기화됨!

$\rightarrow$ .bashrc라는 파일에 등록을 해줘야!

Categories:

Updated: