먼저 /etc/profile에서 설정된 기본 PS1 값을 살펴 보자. 어쩌면 당신은 아직도 이 기본값을 사용하고 있을 지도 모른다.
잠시후 당신은 /etc/profile에서 PS1에 대한 언급이 전혀 없음을 발견하고는 분노에 휩싸여 이 사이트를 떠나려고 할 지도 모른다. 잠깐! 파트1에서 얘기했던 내용을 다시 한번 떠올려 보자, /etc/profile의 맨 아래에 보면 /etc/bashrc가 존재할 경우 이것을 source 한다고 말했다. /etc/bashrc에 바로 기본 PS1 값이 들어 있다.
PS1='\h:\w \u\$ '
한 부분씩 설명하겠다. 첫번째 \h는 호스트이름을 보여준다. 그러고 콜론을 찍고 \w는 현재 작업 디렉토리를 보여준다. 그다음 \u는 유저네임을 보여준다. \$는 UID가 영이면 #를 아니면 $을 출력한다. 마지막으로 사용자가 명령어를 입력하는 공간과 분리를 위해 공백이 하나 들어가 있다.
그런데 참고로, 오리지널 bash 배포판에서 PS1의 기본값은 PS1='\s-\v\$ ' 이다.
\h, \w 등등 이렇게 하나의 백슬래쉬와 하나의 문자로 구성된 문자열이 프롬프트에 어떠한 정보를 넣을 것인지를 결정한다. 이 문자열들에 대한 전체 리스트는 다음과 같이 얻을 수 있다.
- man bash
- 슬래쉬를 하나 치고 PROMPTING 라고 입력한 후, 리턴을 친다
- 슬래쉬를 하나 치고 리턴을 친다
PROMPTING은 반드시 대문자로 해야 한다. 즉, bash 메뉴얼에서 두번째 나타나는 PROMPTING 이라는 문자열을 찾는다.
그럼 이제 색깔 넣는 연습을 해 보자. 안시 컬러는 \033[으로 시작되고 컬러코드가 이어 나오고 m으로 끝난다. bash에서는 \033 대신에 \e를 사용할 수 있다.
다음은 컬러코드 리스트이다.
0 = 기본값 1 = 볼드체 4 = 밑줄 5 = 점멸 7 = 역상
31 = 빨강 32 = 초록 33 = 오렌지 34 = 파랑 35 = 자주 36 = 청록 37 = 회색
40 = 검정 배경
41 = 빨강 배경
42 = 초록 배경
43 = 오렌지 배경
44 = 파랑 배경
45 = 자주 배경
46 = 청록 배경
47 = 회색 배경
90 = 진회 색
91 = 연빨강
92 = 연두 93 = 노랑 94 = 연한 파랑 95 = 연한 자주 96 = 하늘색
100 = 진회색 배경
101 = 연한 빨강 배경
102 = 연두 배경
103 = 노랑 배경
104 = 연한 파랑 배경
105 = 연한 자주 배경
106 = 하늘색 배경
이제 파트1에서 소개했던 예제 .bash_profile에 나오는 PS1의 값을 이해할 수 있다.
PS1="\e[33m[\w]\e[0m\n\!: \u$ "
오렌지 색깔로 현재 작업디렉토리를 표시한 후, 색깔을 까만색으로 다시 주고 (이것은 내 터미널의 기본바탕 색깔이 까만색이기 때문이다) 다음 줄로 가서, 유저네임을 표시하고 $을 붙여 준 후, 공백을 하나 표시한다.
고급예제 하나 살짝 소개한다. 네트웍 관리자라면 현재 얼마나 많은 사용자들이 로긴했는지 모니터링하고 싶어한다. 간단하게 프롬프트에 이 정보를 집어 넣을 수 있다.
PS1='$(who | wc -l) \w\$ '
$(..)은 다른 쉘의 백틱(물결무늬 아래에 있는 문자)이 bash에서 개선된 형태이다. $(..)에 대해 본격적으로 다루는 것은 이 기사의 범위를 벗어 난다.
2.2 히스토리 전방/후방 검색 키 바인딩 변경하기
히스토리를 앞뒤로 왔다 갔다 하는 키는 익히 아는 대로 상향키와 하향키로 되어 있다. 히스토리 전방/후방 검색 키는 너무 복잡해서 나 자신도 잊어 버렸다. 이렇게 복잡한 키를 상향키와 하향키로 변경해 보자. 소개했던 예제 .bash_profile에 나오는 내용이다.
bind '"\M-[A":history-search-backward'
bind '"\M-[B":history-search-forward'
이 키 바인딩은 기존의 상향키와 하향키로 히스토리를 누비는 기능을 해치지 않는다. 이것은 글자를 몇 개 입력한 후, 상향키와 하향키를 움직였을 때 동작한다.
즉, 히스토리 상에 cd 명령을 몇 개 내리고 다른 명령도 몇 개 내린 후라고 가정해 보자. 이때 프롬프트에서 cd까지만 입력하고 상향키를 눌러 보면 cd로 시작되는 히스토리의 내용만 보여 준다