티스토리 뷰

터미널에 접속했을때 처음 마주하는 프롬프트 메시지(이하 prompt string)를 변경해보자. 일단 prompt string을 변경하기 위해서는 환경변수에 대한 약간의 지식이 필요한데 여기서는 prompt string 만을 다루기 때문에 해당하는 환경변수의 명칭만 알면 된다.


prompt string 는 기본적으로 PS1 이라는 변수를 사용한다. (PS2는 논외) 그렇다면 PS1을 어떻게 변경하나? 우리가 Shell Script 에서 다루는 변수와 동일하게 간단히 아래와 같이 변경할 수 있다.

PS1='oops'

쓰고 나니 아래와 같이 변경되었다. 


입력한 oops라는 문자가 그대로 출력되는 것이 확인된다. 일단 아래와 같이 원래 설정으로 되돌려놓자.

PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '



원래 설정으로 되돌릴때 사용한 이상한(?) 문자들은 규칙과 문법이 존재하는데 이와 관련된 각각의 문법은 아래와 같다. (man bash 참조)

PROMPTING
       When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the
       secondary  prompt  PS2 when it needs more input to complete a command.  Bash allows these prompt strings to be
       customized by inserting a number of backslash-escaped special characters that are decoded as follows:
              \a     an ASCII bell character (07)
              \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
              \D{format}
                     the format is passed to strftime(3) and the result is inserted into the prompt string; an  empty
                     format results in a locale-specific time representation.  The braces are required
              \e     an ASCII escape character (033)
              \h     the hostname up to the first ‘.’
              \H     the hostname
              \j     the number of jobs currently managed by the shell
              \l     the basename of the shell’s terminal device name
              \n     newline
              \r     carriage return
              \s     the name of the shell, the basename of $0 (the portion following the final slash)
              \t     the current time in 24-hour HH:MM:SS format
              \T     the current time in 12-hour HH:MM:SS format
              \@     the current time in 12-hour am/pm format
              \A     the current time in 24-hour HH:MM format
              \u     the username of the current user
              \v     the version of bash (e.g., 2.00)
              \V     the release of bash, version + patch level (e.g., 2.00.0)
              \w     the  current  working  directory,  with  $HOME  abbreviated  with a tilde (uses the value of the
                     PROMPT_DIRTRIM variable)
              \W     the basename of the current working directory, with $HOME abbreviated with a tilde
              \!     the history number of this command
              \#     the command number of this command
              \$     if the effective UID is 0, a #, otherwise a $
              \nnn   the character corresponding to the octal number nnn
              \\     a backslash
              \[     begin a sequence of non-printing characters, which could be used to  embed  a  terminal  control
                     sequence into the prompt
              \]     end a sequence of non-printing characters


이것들 중 유용한 옵션 몇가지를 정리한다.


 \u

 현재 접속한 사용자 아이디

 \h

 첫번째 마침표가 나올때까지의 호스트네임

 \W

 현재 작업 폴더명

 \[\033[01;31m\]

 글씨 색상 변경 (빨간색)

 \[\033[00m\]

 글씨 색상 초기화

 \[\033[01;34m\]

 글씨 색상 변경 (파란색)



필요에 따라 적절하게 프롬프트 메시지를 꾸미자.




댓글
댓글쓰기 폼