ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • bash shell Rules
    Linux 2024. 4. 25. 16:03

    1. Metacharacters

    : shell에서 특별히 의미를 정해 놓은 문자들

    - \ ? () $ ... * % {} []

     

    ex)  echo * : 현재 디렉토리 전체표시

          echo ??? : 현재디렉토리에서 3글자인 목록 출력

    [test@localhost ~]$ ls
    date.txt      message.txt  공개      문서      비디오  서식
    hello222.txt  test         다운로드  바탕화면  사진    음악
    [test@localhost ~]$ echo *
    date.txt hello222.txt message.txt test 공개 다운로드 문서 바탕화면 비디오 사진 서식 음악
    [test@localhost ~]$ echo ????
    test 다운로드 바탕화면

     

    2. Quoiting Rule

    : 메타문자의 의미를 제거하고 단순문자로 변경.

     

    BackSlash(\)  \ 바로 뒤의 메타문자는 특별한 의미를 제거
    Double Quotes("")  " " 내의 모든 메타문자의 의미를 제거. 단,$, ' 은 제외
    Single Quotes('') ' ' 내의 모든 메타문자의 의미를 제거

     

    ex1) 이름이 *** 인 파일 생성

    touch \*\*\*

    ex2)  이름이 '  ' 인 파일 생성

    touch '  '

     

    3. Nesting Commands

    : command 안에 또 다른 command

     

    ex1) echo "Today is $(date)" 는 $ 의미를 살려서 아래와 같이 출력 

    [test@localhost ~]$ date
    2024. 05. 14. (화) 11:57:46 KST
    [test@localhost ~]$ echo "today is date"
    today is date
    [test@localhost ~]$ echo "today is $(date)"
    today is 2024. 05. 14. (화) 11:58:50 KST

     

    ex2) ' ' 는 모든 문자를 문자취급하므로 아래와 같이 출력된다.

    [test@localhost ~]$ echo 'today is $(date)'
    today is $(date)

     

    활용예시)

    [test@localhost ~]$ touch report_$(date +%y%m%d)
    [test@localhost ~]$ ls
    report_240514

     

    4. alias

    1) alias 등록 : alias alias이름=실행할 명령  

     

      ex1) c라는 명령어를 입력하면 clear가 실행됨

    alias c=clear

     

      ex2) rm이라는 명령어를 입력하면 rm-i가 실행됨 ( *rm-i : 지우기 전에 한번 더 물어봐주는 명령어)

    alias rm='rm -i'

     

    2) alias확인

    alias

     

    3) alias 삭제 :  unalias alias이름

    unalias c

     

    5. prompt

    1) 프롬포트 설정 확인 : echo $PS1

    [test@localhost ~]$ echo $PS1
    [\u@\h \W]\$

     

    - Bash shell에서만 prompt모양에 적용가능한 특수문자가 존재.

     \h 호스트이름

     \u 사용자이름

     \w 작업 디렉토리 - 절대경로

     \W 작업 디렉토리 - 상대경로

     

    2) 프롬포트 변경 : PS1='변경할 프롬포트'

    [test@localhost ~]$ PS1='[PROMPT TEST] '
    [PROMPT TEST]

     

    * alias, prompt 변경 한내용은 종료되면 사라진다.

    영구적으로 사용하려면 홈디렉토리의  vi .bashrc 에 등록해줘야 한다.

    [PROMPT TEST] ls -a
    .   .bash_history  .bash_profile  .cache   .mozilla
    ..  .bash_logout   .bashrc        .config  report_240514
    [PROMPT TEST] vi .bashrc
    # .bashrc
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    
    # Uncomment the following line if you don't like systemctl's auto-paging feature:
    # export SYSTEMD_PAGER=
    
    # User specific aliases and functions
    alias c=clear
    ~
    ~
    ~
    ~
    ~
    ~
    ~
    ~

     

     

     

     

    'Linux' 카테고리의 다른 글

    shell command  (0) 2024.04.25
    shell 변수  (0) 2024.04.25
    shell  (0) 2024.04.25
Designed by Tistory.