제 8장. 쉘프롬프트 모양 바꾸기
학습목표/개요
- 쉘프롬프트의 모양이 중요한 이유
- 쉘 변수 PS1의 의미와 사용 기호
썸네일을 넣어봤습니다... 어떤가요?
1. 쉘프롬프트의 모양이 중요한 이유
우리는 시스템관리를 할 때마다 명령어를 입력해야 하지요.
그리고 명령어를 입력할 때마다 매번 쉘프롬프트를 마주하게 되는데요.
사실 쉘프롬프트에서 우리는 많은 정보를 얻을 수 있답니다.
예를 들면 명령어 입력 당시의 날짜 및 시간확인, 현재 디렉토리 위치 확인, 현재 사용자 확인, 현재 명령어 입력 횟수 확인 등이 있는데요.
오늘 공부할 주제인 쉘프롬프트 모양 바꾸기는,
쉘 프롬프트의 모양을 원하는 대로 디자인한다는 말보다는
쉘프롬프트 모양을 우리가 원하는 정보를 보여주도록 변경한다라는 표현이 더 적절합니다.
또한 명령어를 실행할 때마다 내가 어떤 작업을 하고 있는지 정확하게 확인하게 하므로
실수를 예방하는 데에 도움을 준답니다.
2. PS1 쉘변수 : 쉘프롬프트 모양을 결정한다
쉘변수란, 현재 사용자의 시스템 사용환경을 개별적으로 사용할 수 있도록 지원하는 "사용자별 시스템 변수"입니다.
리눅스 시스템이 여러 사용자가 함께 이용하다보니 쉘변수가 각각의 사용자마다 존재해야 하는데요.
이런 쉘변수들을 확인하기 위해서는 env 라는 명령어를 실행해 보면 된답니다.
쉘변수들 중 PS1이라는 친구가 오늘의 주인공입니다.
이 쉘변수가 우리가 사용하는 쉘변수의 모양을 결정하는 것인데요.
PS1에 들어가있는 값에 따라 그 모양이 결정되고, 사용자마다 PS1의 변수가 각각 따로 사용되고 별도로 그 값을 가질 수 있답니다.
그것이 사용자들마다 각각의 쉘프롬프트를 다르게 설정할 수 있는 이유이기도 하지요.
3. 쉘변수 PS1의 의미와 사용기호
현재 사용중인 사용자의 쉘변수를 확인하려면 어떻게 해야할까요?
개별 쉘변수를 확인하는 방법은 echo 를 사용하는 것입니다.
#echo $PS1
을 입력했을 때,
[\u@\h \W]\\$
가 나온다고 합시다. 이 때,
[\u@\h \W]\\$
라는 값이 나왔는데, 결론적으로 이 표현 때문에 우리가 사용하고 있는 쉘프롬프트의 모양이 결정되었다는 것입니다.
그렇다면 이 표기가 대체 무슨 뜻일까요? 외계어 같기도 한데요.
[ |
" [ " 자체를 의미 |
\u |
현재 사용자를 의미 |
@ |
" @ " 기호를 의미 |
\h |
현재 시스템의 호스트 명을 의미 |
\W |
현재 위치의 절대경로 가운데 현재 디렉토리 명만을 의미 |
] |
" ] " 자체를 의미 |
root(UID가 0이면)이면 #, 일반 사용자면 $ |
물론, 위의 PS1의 값은 시스템과 사용자마다 다르게 설정되어 있을 수도 있습니다.
앞서 말했듯 PS1의 값을 어떻게 지정하느냐에 따라서 쉘프롬프트의 모양이 달라지기 때문이지요.
이제 PS1의 변수값에서 사용할 수 있는 기호들과 그 의미를 알아보도록 합시다 !
기호 |
의미 |
\t |
24 시간제로 현재 시간을 나타냄. 표시 형식은 시:분:초, "HH:MM:SS"의 형식 |
\T |
12 시간제로 현재 시간을 "HH:MM:SS"의 형식 |
\@ |
12 시간제로 현재 시간을 "오전/오후" 형식 |
\D |
현재 날짜를 나타냄. 표시 형식은 "요일 월 일" |
\s |
현재 사용중인 쉘의 이름을 표시함 (C쉘 : /bin/csh, bash쉘 : /bin/bash) |
\w |
현재디렉토리의 전체 절대경로 모두 표시 |
\W |
현재 디렉토리의 전체 절대경로명중 마지막 디렉토리명만을 표시함. 즉, 현재 디렉토리명만을 표시함. |
\u |
사용자명을 표시함 |
\h |
서버의 호스트명을 표시함 (ex: www.love.co.kr 에서 www부분) |
\H |
서버의 도메인 명 표시함 (ex: www.love.co.kr 에서 love.co.kr부분) |
\# |
접속한 순간부터 사용한 명령어의 번호를 1번부터 차례로 표시. 즉, 명령어를 사용한 횟수를 표시하기 위함이 목적. |
\! |
사용한 명령어의 history 번호를 표시함 |
root(UID가 0이면)이면 #, 일반 사용자면 $ | |
\\ |
" \ " 문자 자체 |
\a |
ASKII 종소리 문자 (07) : 경고음 |
\e |
ASKII 의 escape 문자 (033) |
\n |
개행문자 (줄바꾸기) |
\v |
사용중인 bash의 버전 |
\V |
사용중인 bash의 배포, 버전 + 패치수준으로 버전을 상세히 표시 |
\r |
Carrage return |
\nnn |
8진수 nnn에 해당하는 문자 |
'IT > 리눅스' 카테고리의 다른 글
특정 프로세스 확인과 동시에 죽이기 (0) | 2017.06.28 |
---|---|
PS1 변수 변경하기 (0) | 2017.06.28 |
쉘(Shell) 이란? (0) | 2017.06.27 |
리눅스 설치된 패키지정보 확인하는 방법 (0) | 2017.06.26 |
리눅스 RPM 패키지에 대해서 (0) | 2017.06.26 |