본문 바로가기

OS

CentOS7 쉘 모양/색상 바꾸기 쉘명령마다 시간 보기

CentOS 쉘 모양/색상 바꾸기 쉘명령마다 시간 보기

쉘의 모양을 결정하는 쉘변수 ps1을 수정하여 쉘모양을 바꿔보자.

쉘변수 확인은 env명령어로 실행.
현재 쉘모양 확인은 

echo $PS1

으로 확인할 수 있다.


초기 설정상태이다.

쉘모양이라 함은 위에 사진처럼 
[root@localhost sbin] 
이 틀을 말하는 것이다.

[ : 그냥 기호
\u : 사용자
@ : 그냥 기호
\h : 현재호스트
 \W : 현재 위치의 저대 경로가운데 현재 디렉토리명만 출력
] : 기호
\$ : UID가 0이면 #(root이면) 나머지는 $로 표시

이 의미가 되겠다. 

이러한 상태를 변경한다면 쉘모양이 좀더 생산적으로 바뀔 수 있을 것 같다.
명령어를 친 시간을 본다던가, 다른 정보를 추가한다던가 하는 것이다. 

쉘변수를 조정하여 원하는 모양을 내보자.

쉘모양을 윈도우와 유사하고, 날짜와 시계, 그리고 절대경로 전체를 보여주는 형식을 만들고 싶다.
그렇다면 아래와 같이 바꿀 수 있다.(자세한 변수설정값은 링크로)

\u@\h \w \d \t >

변경하려는 이 모양을 PS1에 대입하도록 하자.

export PS1="\u@\h \d \t \w>"



export 명령 실행후 바로 적용되어서 쉘모양이 바뀌었다. 
꺽쇠옆에 역슬래쉬는 지워야겠다..;

뭔가 밋밋한것 같아서 색상을 줘봐야겠다.

색상을 주고자하는 위치의 시작은 \033[색상코드(00;31)m
끝은 \033[00m 입력.

계정정보와 호스트는 파랑색 글자 
시간은 노랑색 글자, 현재위치는 그대로 하려면

그러면 

export PS1="\033[00;33m\u@\h\033[00m \033[00;32m\d \t\033[00m \w >"


이런식이 되었다. 뭔가 된장묻은 상추같아서 또 바꿔야겠다.

이렇게 변수에 값을 저장하는 것은 로그아웃되고 나면 초기화가 이뤄진다. 
해서 아에 설정을 하는 방법을 알아보자.

PS1같은 쉘사용환경을 결정하는 설정이 담긴 .bashrc라는 파일을 변경하기로 하자.
이 파일을은 사용자들의 홈디렉토리에 존재한다. 
현재 root로 작업중이니 디렉토리 위치는 /root 이다.
vi로 파일을 열어보자.

vi ~/.bashrc


이 파일 마지막 줄에 PS1 내용을 추가해주고 저장하며 다음에 또 root로 로그인하면 해당 모양이된다.

PS1="\033[00;33m\u@\h\033[00m \033[00;32m\d \t\033[00m \w >"

만약 모든 사용자가 같은 방식으로 보길 원한다면 
왠만한 설정파일들이 다 모인 /etc의 bashrc 파일을 아래와 같은 위치에 저장하면 된다.
주의할 것은 앞쪽에 있는
[ "$PS1" = "\\s-\\v\\\$  "]  && 
이 부분 뒤에 있는 게 설정이다.  
앞쪽에 있는 저 문자열이 조금이라도 틀리면 적용이 안된다. 
문서 내에 하단에 적힌 것이 있으니 참고하고 적어도 된다.



만약 개인 홈디렉토리 하위에 .bashrc 에 값이 있다면 /etc/bashrc는 무시된다.

그리고 파일내에 기술한 내용이 잘못되면 에러와 함께 아래와같은 그림으로 나오게 되니 꼭 확인하고 저장해야겠다.