본문 바로가기
컴퓨터/리눅스(Linux)·우분투(Ubuntu)

배쉬 쉘 프롬프트 바꾸기 bash shell prompt escape sequence

by All That Guy 2017. 7. 13.

터미널에서 bash shell prompt를 원하는데로 바꾸기 위해 PS1를 설정했을 때, 자칫 한 줄이 넘으면 다음 줄에 이어서 쓰는게 아니라 다시 그 줄에 겹쳐서 쓰는 경우가 있다. 보통 불편한 정도가 아니다. 문제는 escape sequence를 설정하지 않아서다.

예를 들면 .bashrc 또는 .bash_profile 등  bash 설정 파일에서

export PS1="\e[1;33m\w \$ "

이렇게 하면 한 줄을 넘어갈 때 겹쳐 쓰는데, 이럴 때에는 \\[를 추가해서 쓰면,

export PS1="\\[\e[1;33m\w \$ "

겹쳐쓰기 현상이 사라진다.

다음은 bash prompt escape sequences를 설정하는 명령어다.


 \a

 an ASCII bell character (07)

 \d

 the date  in  "Weekday  Month  Date"  format (e.g., "Tue May 26")

 \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

 \u

 the username of the current user 

 \v

 the version of bash (e.g., 2.00)

 \V

 the release of bash, version + patchlevel (e.g., 2.00.0) 

 \w

 the current working directory 

 \W

 the basename of the current working directory 

 \!

 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