본문 바로가기

공부/리눅스

쉘프롬프트 모양 변경

반응형

쉴프롬프트는 우리가 원하는 정보를 원하는 대로 보여주도록 할수 있다

명령어 입력당시의 날짜 및 시간확인, 또는 현재 디렉토리위치 확인, 현재 사용자 확인, 현재 명령어 입력횟수 확인등 많은 정보를 확인할수 있다.

echo $PS1

export PS1="[\u@\h \W]\\$"

vi /home/[계정]/.bashrc

vi /etc/lashrc

 

1. 쉘프롬프트 모양을 결정하는 PS1 쉘변수

쉘변수란 현재 사용자의 시스템 사용환경을 개별적으로 사용할 수 있도록 지원하는 사용자별 시스템 환경 변수이다. 리눅스시스템이 다중사용자 운영체제이기 때문에 쉘변수가 사용자별로 존재해야하는 이유가 된다.

쉘변수들을 확인해 보려면 env라는 명령어를 실행애 보면된다

여러개의 쉘변수들 가운데 PS1이라는 쉘변수 가 있는데 이 쉘변수는 우리가 사용하는 쉘변수의 모양을 결정한다. PS1의 변수는 사용자마다 각각 따로 사용되고 별도로 그 값을 가질 수 있다.

 

2. 쉘변수 PS1의 의미와 사용기호 파악하기

개별 쉘변수를 확인하는 방법

echo $PS1

 

[\u@\h \W]\\$

이 표기 때문에 우리가 사용하고 있는 쉘프롬프트의 모양이 결정된다

[ : "[" 자체를 그대로 나타냄

\u : 현재 사용자를 의미함

@ : "@" 기호 자체를 나타냄

\h : 현재 시스템의 호스트명을 의미함

\W : 현재 위치의 절대경로가운데 현재 디렉토리명만을 나타냄

] : "]" 자체를 그대로 나타냄

\\$ : root(UID가 0이면)이면 #을 표시하고 일반사용자면 $을 표시함

 

PS1변수에 사용되는 기호들과 그 의미

기 호

의 미 (설 명)

\t

24 시간제로 현재시간을 나타냄. 표시형식은 시:분:초, 즉 "HH:MM:SS" 의 형식임

\T

12 시간제로 현재시간을 "HH:MM:SS" 형식으로 표시함.

\@

12 시간제로 현재시간을 "오전/오후" 형식으로 표시함.

\d

현재 날짜를 나타냄. 표시형식은 "요일 월 일" 의문자로 표시됨

\s

현재 사용중인 쉘의 이름을 표시함 (C쉘이면 /bin/csh, bash 쉘이면 /bin/bash임)

\w

현재 디렉토리의 전체 절대경로를 모두 표시함

\W

현재 디렉토리의 전체 절대경로명중 마지막 디렉토리명만을 표시함, 현재 디렉토리명만을 표시

\u

사용자명을 표시함

\h

서버의 호스트명을 표시함 (예 : www.xxx.co.kr 에서 www부분)

\H

서버의 도메인명 표시함 (예 : www.xxx.co.kr 에서 xxx.co.kr 부분)

\#

접속한 순간부터 사용한 명령어의 번호를 1번부터 차례대로 표시함.

명령어를 사용한 휫수를 표시하기 위함이 목적

\!

사용한 명령어의 history번호를 표시함

\\$

현재 사용자가 root(UID가 0이면)이면 #을 표시하고 아니면 $을 표시함

\\

"\"문자 자체를 표시함

\a

ASCII 종소리 문자(07)

\e

ASCII의 escape 문자 (033)

\n

개행문자 (줄바꾸기)

\v

사용중인 bash의 버전

\V

사용중인 bash의 배포, 버전+패치수준으로 버전을 상세히 표시함

\r

Carrage return

\nnn

8진수 nnn에 해당하는 문자

 

3. PS1 변수를 변경하는 방법

모든 쉘변수의 값을 바꿀 때에는 export라는 명령어를 사용한다.

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

 

전체 절대 경로를 모두 표시로

 

이렇게 바꾼 쉘프롬프트는 로그아웃 하고 재로그인을 하면 초기값으로 돌아간다

 

4.쉘프롬프트 모양을 한번 바꿔서 지속적으로 계속 사용하기

export로 변경된 쉘변수의 값들은 로그아웃하면서 할당된 값이 해제된다

모든 사용자들의 홈디렉토리에는 .bashrc라는 파일이 있고 이 파일에는 각 개별사용자들의 쉘사용환경을 결정하는 여러가지 설정들이있다.

.bashrc라는 파일은 사용자들이 로그인할 때마다 매번 읽혀져서 개별 사용자들의 쉘사용환경을 적용한다. 따라서 young라는 사용자가 로그인 할때마다 이곳에서 쉘변수값을 읽어서 적용된다.

cat /home/young/.bashrc

young이라는 사용자의 홈디렉토리에서 vi로 쉘변수값을 직접 할당 할수 있다.

 

5. 모든 사용자들에게 동일한 쉘프롬프트 모양을 갖도록하자

지금까지는 개별사용자들에게 각각 적용되는 쉘프롬프트 모양을 변경하는 방법이었고

root사용자가 모든 사용자들에게 동일한 쉘프롬프트 모양을 갖도록 하자

.bashrc : 개별사용자들의 홈디렉토리에 있는 쉘사용환경 적용파일

/etc/bashrc : 모든 사용자들에게 적용되는 쉘사용환경 적용파일

cat /etc/bashrc

... ...

/etc/bashrc의 내용중 PS1 부분을 vi로 바꾸면 된다.

 

6. 영구적으로 설정

source /etc/bashrc

반응형