리눅스 커맨드라인 완벽입문


용어 정리

프롬프트 해부하기

[me@linuxbox ~]$
  • 기본 프롬포트 모양은 위와 같음
  • 사용자이름, 호스트명, 현재 작업 디렉토리를 표시함 어떻게 정의되었을까?
    • 프롬프트는 PS1(Prompt Strign1의 준말)이라고 하는 환경 변수에 의해 정의된다.
    • echo PS1 명령어를 통해 PS1 내용을 살펴보자
      [me@linuxbox ~]$ echo $PS1 
      [ \ u@\h \W] \$
    
  • 결과를 보면 PS1의 구성이 어떻게 되어있는지 확인할 수 있다. 따라서 우리는 아래 표를 통해 PS1를 커스텀할 수 있다.

Untitled

Untitled


다른 형태의 프롬프트 사용해보기

me@linuxbox ~]$ psl_old="$PS1”

  • 위와같이 커스텀하기 전 기존 문자열을 백업해두자, 되돌릴 때는 아래와 같이 백업하면 된다.

[me@linuxbox ~]$ PS1="$psl_old”

빈 프롬프트 문자열

  • 프롬프트 창에 아무것도 표시되지 않는다.

[me@linuxbox ~]$ PSl=

축소형 프롬프트

  • 우리가 뭘 하고 있는지 정도는 확인할 수 있을 정도.
    • 이때 따옴표 사이에 빈칸이 있음에 주의해야함 달러 기호와 커서 사이의 공간이 됨

PSl="\$ “

알림 소리 추가 프롬프트

  • 이젠 프롬프트 표시마다 알림 소리가 들릴 것이다. 오랜 시간 실행되는 명령어라면 완료되었을 때 활용할 수 있을 것이다.

$ PS1="\a\$ “

호스트명과 현재 시간 정보 추가 프롬프트

$ PSl="\A \h \$ "
17: 33 linuxbox $

⇒ 특정 작업 수행 시간을 알고 싶을 때 매우 유용함

원래 모양과 비슷한 형태로 다시 만들어보자

17 :37 linuxbox $ PSl="<\u@\h \W>\$ "
<me@linuxbox ~> $ 

색상 추가

  • 문자 색상은 표시될 문자열에 내장된 ANSI 이스케이프 코드를 터미널 에뮬레이터에 전송함으로써 제어됨
  • 제어 코드는 화면에 “출력”되는 것이 아니라 하나의 명령어 터미널에 의해 해석됨
  • \ 시퀀스는 비출력 문자를 나타나게 할 때 사용됨
  • ANSI 이스케이프 코드는 8진법의 033으로 시작됨 그 뒤에 오는 것은 부가적인 문자 속성 및 명령
  • 일반적인 검은색으로 텍스트 색상을 설정했다면 \033[0;30m이다.

Untitled

Untitled

자, 이제 프롬프트를 빨간색으로 바꾸는 코드

<me@linuxbox ~>$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "
<me@linuxbox ~>$

→ 색상이 바뀌게 되었으나 프롬프트 다음 입력 글자도 빨갛게 나온다. 이를 수정하기 위해선 다른 이스케이프 코드를 프롬프트 끝에 넣어서 이전 색상으로 표시되도록 해야함

<me@linuxbox ~>$ PS1="\[\633[6;31m\ ]< \u@\h \W>\$\[\63 8m\ ]"
<me@linuxbox ~>$

→ Better

바탕색을 바꿀수도 있음

Untitled

<me@linuxbox ~>$ PS1="\[\033[0; 41m\]<\u@\h \W>\$\[\033[0m\] "

→ 굳 ~

커서 이동

  • 이스케이프 코드는 커서 위치를 결정할 때도 사용됨
  • 다른 위치, 정보를 표현하고자 할 때 주로 사용됨, 프롬프트가 표시될 떄 마다 화면 상단에 그 정보를 보여줌

Untitled

화면 상단 빨간 줄의 시간 정보가 있는 프롬프트를 만들 수 있음,

PS1="\[\033[s\033[0;0H\033[0; 4lm\033[K\033[1 ; 33m\t\033[0m\033[u\]<\u@\h \W>\$ “

Untitled

⇒ 코드 분석 내용

프롬프트 저장

  • 위와 같은 코드를 매번 입력할 수는 없다. 저장하기 위해서는 이렇게 하면 된다.
  • .bashrc 파일에 저장하여 사용하기 위해선 아래와 같이 하면 된다
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]<\u@\h \W>\$ "
export PSl
서브목차