리눅스 프롬프트 변경하기 (Customizing Linux Prompt)

리눅스 프롬프트 변경하기

리눅스의 셸 프롬프트는 사용자가 원하는 데로 변경이 가능합니다. 보통 우분투 등 Distro를 설치하면 기본이 username @ computer name / directory 와 같은 형식으로 디폴트 값이 설정되어 있습니다.

그 내용은 환경변수 $PS1에 저장되어 있는데요. 뭐 나쁘지 않은 프롬프트입니다만 커스텀 프롬프트를 원하는 경우 바꿀 수 있습니다.

현재의 프롬프트 정의는 echo $PS1 로 확인할 수 있습니다. 이건 WSL2의 기본 셋업인데 일반 유저와 루트의 프롬프트가 다릅니다. Distro마다 각자 프롬프트 정의가 되있으니 조금씩 다릅니다.

리눅스 프롬프트 환경변수 PS1
echo $PS1

이 포스팅에서는 현재 사용자의 프롬프트를 변경하는 방법을 알아보겠습니다.

프롬프트를 변경하는 방법은 쉽습니다. $PS1 변수의 내용에 \백슬레시로 시작하는 이스케이프코드들을 조합하면 됩니다. 근데 변경하면 기존의 프롬프트 정의가 없어지니까 일단 다른 변수에 백업해두는 것도 좋은 방법입니다.

셸에서 이렇게 입력하면 PS1에 있는 이스케이프 코드들이 PS1_BAK 변수로 입력됩니다. 임시로 생성한 변수라 로그아웃하면 사라지는 것에는 주의합니다.

PS1_BAK="$PS1"

우선 아무것도 없는 것으로 바꿔봅시다. \$는 일반 사용자는 $를 표시하고 super user는 #를 표시합니다.

PS1="\$ "

24시간과 $로 프롬프트를 조합해 보면 다음과 같습니다

PS1="\A \$ "
리눅스 프롬프트 환경변수 PS1

이런 식으로 이스케이프 코드를 넣어 여러가지 정보를 표시할 수 있습니다.

이스케이프 코드

이스케이프 코드는 다음과 같습니다.

이스케이프 코드표시되는 값
\d일, 월, 날짜 형식의 현재 날짜
\h로컬 컴퓨터의 호스트 이름에서 뒤쪽 도메인 이름을 뺀 값
\H전체 호스트 이름
\j현재 셸 세션에서 실행 중인 작업의 수
\l현재 단말 장치의 이름
\n줄 바꿈 문자
\r캐리지 리턴
\s셸 프로그램의 이름
\t24시간 시:분:초 형식의 현재 시간
\T12시간 형식의 현재 시간
\@오전/오후 12시간 형식의 현재 시간
\A24시간 시:분 형식의 현재 시간
\u현재 사용자의 사용자 아이디
\v셸의 버전 번호
\V셸의 버전 및 릴리스 번호
\w현재 작업 디렉터리 이름
\W현재 작업 디렉터리 이름의 마지막 부분입니다
\!현재 명령의 히스토리 번호
\#이 셸 세션 중에 입력한 명령의 수입니다.
\$수퍼유저 권한이 없으면 $ 문자가 표시
(root 사용자는 #을 표시)
\[인쇄되지 않는 하나 이상의 문자열의 시작
터미널을 조작하는 비인쇄 제어 문자 삽입
(color 변경 등에 사용)
\]인쇄되지 않는 문자열 시퀀스의 끝

위의 코드와 함께 사용하는 텍스트 색상 이스케이프 입니다. \[ 로 시작해서 비인쇄 제어 문자로 바꾼 후 마지막에 \]로 시퀀스를 빠져나와야 합니다.

이스케이프색상(color)이스케이프색상(color)
\033[0;30m)Black\033[1;30m)Dark Gray
\033[0;31m)Red\033[1;31m)Light Red
\033[0;32m)Green\033[1;32m)Light Green
\033[0;33m)Brown\033[1;33m)Yellow
\033[0;34m)Blue\033[1;34m)Light Blue
\033[0;35m)Purple\033[1;35m)Light Purple
\033[0;36m)Cyan\033[1;36m)Light Cyan
\033[0;37m)Light Gray\033[1;37m)White

위에 코드들을 조합해서 커스컴 셸 프롬프트를 만들어 봅니다.

PS1="\n\[\033[0;37m\][\H-\s-\v]\[\033[0m\] \[\033[0;36m\]\w\[\033[0m\]\n\[\033[0;33m\]\A\[\033[0m\] \[\033[0;32m\]<\u>\[\033[0m\] $ >>"

가독성이 좋게 가로세로 간격을 적당히 조절해줘도 좋습니다. 너무 헐렁하게 보일 수도 있는데 커스터마이즈 자체가 취향존중이니까요…

리눅스 프롬프트 변경하기

로그아웃하면 바뀌기 때문에 ~/.bashrc 의 맨 아랫줄에 스크립트를 박아놓습니다.

su vim ~/.bashrc
리눅스 프롬프트 커스텀 bashrc

그 다음에 source 명령어로 바로 변경할 수 있고 다음에 로그인 했을 때도 변경된 프롬프트를 사용할 수 있습니다.

source ~/.bashrc

*PS1 변수의 사용법은 이것이 전부는 아니지만 이 정도만 커스텀해서 사용해도 편리합니다.

Leave a Comment