프롬프트 설정
- 배시 쉘에서는 환경 변수 PS1에 프롬프트로 사용할 문자열을 저장.
- '\'으로 시작하는 문자를 이스케이프 문자라고 함.
- '\'으로 시작하는 이스케이프 문자는 두 글자가 아닌 한글자로 처리
- 이스케이프 문자는 화면에 문자 그대로 출력되지 않고
쉘이 문자의 의미를 해석하여 실행
- '\$'은 $를 특수 문자로 인식하는 것이 아닌 일반 문자로 인식
- 프롬프트를 바꾼 다는 것은 환경 변수 PS1에 새로운 형태의 문자열을 지정하는 것.
- 환경 변수를 사용할수도 있음
ex) set 명령시 'PWD'라는 변수가 있음(현재 경로명)
1-> user@ubuntu:~$ PS1='[$PWD $]'
2-> [/home/user $]
이스케이프 문자
이스케이프 문자 |
기능 |
\a |
ASCII 종소리 문자(07) |
\d |
'요일 월 일' 형식으로 날짜를 표시(ex:'Thu May 1') |
\e |
ASCII의 이스케이프 문자로 터미널에 고급 옵션을 전달 |
\h |
첫 번째 .(마침표)까지의 호스트 이름(ex:host.co.kr에서 host까지) |
\H |
전체 호스트 이름 |
\n |
줄 바꾸기 |
\s |
쉘 이름 |
\t |
24시간 형식으로 현재 시각을 표시(HH:MM:SS 형식) |
\T |
12시간 형식으로 현재 시각을 표시(HH:MM:SS 형식) |
\@ |
12시간 형식으로 현재 시각을 표시(오전/오후 형식) |
\u |
사용자 이름 |
\v |
배시 쉘의 버전 |
\w |
현재 작업 디렉터리(절대 경로) |
\W |
현재 작업 디렉터리의 절대 경로에서 마지막 디렉터리명 |
\! |
현재 명령의 히스토리 번호 |
\[ |
출력하지 않을 문자열의 시작 부분을 표시 |
\] |
출력하지 않을 문자열의 끝 부분을 표시 |
컬러 프롬프트 설정
컬러 프롬프트 |
- 형식 : PS1='\[\e[x;y;nm\] 프롬프트 \[\e[x;y;0m\]' |
- '\[' 을 사용하지 않으면 이스케이프 문자까지 모두 카운트되어 자동 줄 바꿈이 이상하게 동작. - '\e는 터미널 제어를 알리는 이스케이프 문자 - ' x;y; ' 는 컬러 번호를, n은 밑줄이나 역상 표시 등 특수 기능을 나타냄 - 프롬프트 앞은 지정한 색상과 기능은 프롬프트의 색상과 특수 효과를 프롬프트 뒤의 색상은 원래 색상으로 돌아가기 위한 것. - 프롬프트 뒤의 색상을 지정하지 않으면 이후 쉘의 모든 출력이 프롬프트의 색상과 같아짐 |
프롬프트 컬러 번호 - x;y;
컬러 |
글자 색 번호 |
배경 색 번호 |
검은색 |
30 |
40 |
빨간색 |
31 |
41 |
초록색 |
32 |
42 |
갈색 |
33 |
43 |
파란색 |
34 |
44 |
보라색 |
35 |
45 |
청록색 |
36 |
46 |
하얀색 |
37 |
47 |
프롬프트 특수 기능 번호 - n
번호 |
기능 |
0 |
기본 색 |
1 |
굵게(Bold) |
4 |
흑백에서 밑줄 |
5 |
반짝임 |
7 |
역상 |
10 |
기본 폰트 |
38 |
밑줄 사용 가능 |
39 |
밑줄 사용 불가능 |
컬러 프롬프트 설정 예제
user@ubuntu:~$ PS1="\[\e[33;457m\} \u@\h $ \[\e[0;0m\]"
- '\[' , '\]' 을 사용하는 이유는
터미널에서 언제 줄 바꿈을 해야하는지 배시 쉘이 계산할 때,
프롬프트를 설정하면서 지정한 이스케이프 문자도 카운트 되기에
문제가 발생하게 됨(줄바꿈이 안 되는 경우 등등)
- 프롬프트로 지정한 문자와 사용자에게 보이지는 않지만 이스케이프 문자도 모두 카운트되어
터미널 창의 길이를 계산할 수 있도록 '\[', '\]' 를 사용해주는 것이 좋음.
'OS > Linux - Ubuntu' 카테고리의 다른 글
[Linux - 리눅스 / Ubuntu - 우분투] 쉘 요약(쉘 설정, 쉘 특수 문자, 리다이렉션, 쉘 변수, 환경 변수, 에일리어스, 히스토리) (3) | 2015.01.29 |
---|---|
[Linux - 리눅스 / Ubuntu - 우분투] 환경 설정 파일 (0) | 2015.01.28 |
[Linux - 리눅스 / Ubuntu - 우분투] 에일리어스와 히스토리 - alias, history (0) | 2015.01.14 |
[Linux - 리눅스 / Ubuntu - 우분투] 디렉터리와 파일 요약 (0) | 2015.01.13 |
[Linux - 리눅스 / Ubuntu - 우분투] 파일 유용한 명령어(touch, grep, find, whereis, which) (0) | 2015.01.13 |