본문 바로가기

IT/리눅스

쉘프롬프트 모양 바꾸기

 

 

제 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