3. Bash shell과 Rules

몽자비루 ㅣ 2024. 4. 9. 15:32

  1. Quoting Rules
    1. metacharacters
      • Sehll에서 특별히 의미를 정해 놓은 문자들.
      • \ ? ( ) $ ... * % {} [] 등
        • * : All characters
          ㄴ a* : a로 시작하는 모든 파일을 보여줌.
        • ? : Any single Character
          ㄴ ???? : 4개의 글자 수를 가진 단어
        • {숫자1..숫자2} : 숫자1부터 숫자2까지를 의미함.
        • blank( ) : command와 option과 argument를 분리시켜주는 문자
      • Quoting Rule : 메타문자의 의미를 제거하고 단순 문자로 변경.
        • backslash(\) : \ 바로 뒤의 메타 문자는 특별한 의미를 제거함.
        • Double Quotes ("") : "" 내의 모든 메타 문자의 의미를 제거. 단, $, `` 는 제외
        • Single Quotes('') : '' 내의 모든 메타 문자의 의미를 제거
  2. Nesting commands
    1. Command 치환
      1. 명령어의 실행 결과를 치환하여 명령을 실행
    2. Nesting Commands
      • $(command)
        ㄴ echo "Today is $(date)"
      • 'command'
        ㄴ echo "Today is `date`"
  3. Alias
    1. Alias
      • Shell의 명령에 새로운 이름을 부여.
      • 명령들을 조합하여 새로운 이름의 명령을 생성
    2. alias 관리 명령
      • alias 등록 : alias name = 'command'
        • alias c=clear
          c를 입력하면 자동으로 clear 명령어가 실행되도록 함.
        •  alias rm='rm -i'
          파일 삭제할 때마다 매번 체크하도록 변경
      • alias 확인 : alias or alias name
      • alias 삭제 : unalias name


  4. Prompt
    1. prompt모양 : username@hostname :현재 작업디렉토리
    2. echo $PS1 를 통해 확인할 수 있음.
      • PS1='[\u@\h \W]\$ : 프롬프트 모양을 변경함
    3. Shell Prompt란?
      • PS1변수를 이용해 shell의 기본 프롬프트 모양을 설정
      • Bash shell에서만 Prompt모양에 적용 가능한 특수 문자가 존재함. 
        특수문자 의미
        /h 호스트 이름
        /u 사용자 이름
        /w 작업 디렉토리 - 절대 경로
        /W 작업 디렉토리 - 상대 경로
        /d 오늘 날짜
        /t 현재 시간
        /$ $또는 # 프롬프트 모양
    4. 주의사항
      • alias 및 prompt 명령어는 현재 Shell에서만 적용되며 로그아웃 되면 적용되지 않음.
      • 많이 사용하는 alias 혹은 ps 는 "vi .bashrc" 에 등록함.
  5. Redirection
    1. Communication Channels
      • stdin (0) : 표준 입력 채널로 키보드에서 프로그램으로 전달, standard in
      • stdout (1) : 표준 출력 채널로 프로그램에서 터미널로 전달, standard output
      • stderr (2) : 표준 에러 출력 채널로 프로그램에서 터미널로 전달, standard error
    2. Redirection : 방향을 바꿀 수 있음. 0번과 1번은 숫자를 생략할 수 있음.
      communication
      channels
      Redirection
      characters
      의미
      STDIN 0< 0<< 입력을 키보드가 아닌 파일을 통해 받음
      STDOUT 1> 1>> 표준 출력을 터미널이 아닌 파일로 출력
      STDERR 2> 2>> 표준 에러 출력을 터미널이 아닌 파일로 출력.
      STDOUT & STDERR &> &>> 표준 출력 및 에러를 모두 터미널이 아닌, 파일로 출력.

      • example(STDIN)
        • mailx -s "TEST MAIL" heejin.joh@localhost
          Cc:
          내용....
        • mailx -s "TEST MAIL" heejin.joh@localhost 0< message.txt
          ㄴ 키보드를 통해 `내용`을 입력 받지 않고, message.txt를 입력으로 받음.
      • example(STDOUT)
        • date 1> message.txt : 현재 시점의 날짜를 message.txt 에 덮어쓰기 함.
        • date 1>> message.txt : 현재 시점의 날짜를 message.txt 에 추가로 삽입함.
      • example(STDERR)
        1. data 2> message.txt : data에러를 message.txt 에 덮어쓰기 함.
        2. data 2>> message.txt : data에러를 message.txt 에 추가로 삽입함.
        3. ls file1 file100 (일부에러) 2> /dev/null : 일부 에러 발생 시, 성공만 출력되고 에러는 소각장 (/dev/nulll)로 이동함.
  6. Pipeline
    1.  pipeline
      • 명령의 실행 결과를 다음 명령의 입력으로 전달
      • 리눅스의 명령어를 조합하여 사용
      • 기호 : command1 | command2 | command3
        ㄴ 첫 번째 명령의 실행 결과를 2번째 명령의 입력으로 입력
        • ls -l : 하위 폴더 및 파일의 자세한 정보를 리스트를 보여줌
        • wc -l : 입력된 값의 총 라인 수를 출력함.
        • more : 한 페이지씩 보여줌
        • cut -d: -f 1 : ":" 을 구분 문자로 입력 후 첫 번째 필드를 출력
        • sort : 내용을 정렬함
        • cat /etc/passwd | cut -d: -f 1 | sort | wc -l
          /etc/passwd 의 내용을 : 으로 분리 후 첫번째 값만 출력, 정렬 하고 몇 개의 라인인지 확인함.

 

 

 

 

 

 

 

'쿠버네티스 > shell programming' 카테고리의 다른 글

6. Input&Output  (0) 2024.04.11
5. Positional Parameters  (0) 2024.04.09
4. Bash shell script란  (0) 2024.04.09
2. Bash shell과 변수  (0) 2024.04.05
1. Linux shell 이란?  (0) 2024.04.05