배쉬 쉘 프롬프트 바꾸기 bash shell prompt escape sequence
터미널에서 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 |