Mac

[맥북] 터미널의 프롬프트 표시 변경하기

티-스토리 2012. 11. 19. 22:37

[root@localhost:~#] PS1="변경하고싶은프롬프트"


참조 : Bash Prompt HOWTO


맥북에서 터미널을 사용하는 도중 호스트 부분의 표시가 길기도 하고 맘에 들지 않아서 표시를 바꾸는 방법이 없나 찾아보았다.


PS1이라는 환경 변수를 사용하여 프롬프트의 표시 내용을 보여주게 되어 있으므로 이를 변경해 주면 된다.


$ vi ~/.bash_profile


PS1="[\u@\w]\\$"


u는 사용자

w는 전체디렉토리명( 대문자W 를 사용하면 현재디렉토리만)


이렇게 하고 저장한후 터미널을 실행시켜보면 프롬프트가 변경되어 있음을 확인 할 수 있다.


[user@~]$ |



---------


PS1은 꼭 설정파일이 아닌 프롬프트 상태에서도 바로 변경은 가능합니다.


[user@~]$ PS1="맥북에어 : @ "

맥북에어 : @ PS1="[멘붕]#"

[멘붕]#


물론 다시 시작하면 초기화 되기 때문에 계속 같은 값을 쓰려고 한다면 설정파일에 저장해야 합니다.


또한 위의 \u ,  \w 처럼 정보를 표시해주는 옵션들은 다음과 같습니다.


\T  시간을 표시합니다. hh:mm:ss 형식으로 표시됩니다. \t는 24시간, \T는 12시간입니다.

\@ 12시간 단위의 hh:mm am/pm 형식으로 시간을 표시합니다. \A는 24시간 입니다.


\W 는 현재디렉토리만, \w는 전체디렉토리를 보여줍니다.


\u 는 사용자 이름을 표시합니다.


\a  비프음

\d  날짜 ("월 11 19")

\h  호스트명

\!  히스토리 숫자

\#  명령어 숫자

\$  사용자 권한 표시 [ 일반:$ , 관리자:# ]

\\  \문자


더 많은 옵션은 다음 페이지에서 확인 할 수 있습니다.

2.5. Bash Prompt Escape Sequences


-----

또한 Bash 에서 제공하는 PROMPT_COMMNAD 라는 특수한 변수가 있습니다. 일반 커맨드의 실행후 결과화면등이 화면에 출력되고 나면 다음 입력 프롬프트가 나오기 직전에 출력됩니다. 설정방법은 PS1과 크게 다르지 않습니다.


다만 자동으로 new line 이 들어가게 되는데, echo -n 명령어를 앞에 사용하여 결과를 한 줄로 보여줄수 있습니다.


일반적인 경우

[root@localhost#] PROMPT_COMMAND="date +%H%M"

[root@localhost#] ls

bin   mail

2156

[root@localhost#]


위의 경우 처럼 2156 이라는 시간이 찍힌 후에 new line 이 들어간후 다음 입력을 위한 프롬프트가 출력된다.


echo -n 사용의 경우

[root@localhost#] PROMPT_COMMAND="echo -n [$(date +%H%M)]"

[2156][root@localhost#]$

[2156][root@localhost#]$ ls

bin   mail

[2157][root@localhost#]$ unset PROMPT_COMMAND

[root@localhost#]

위와 같이 후출력후 new line 의 출력을 숨긴다.