[Linux] bashrc를 이용한 쉘 프롬프트 환경 변경
리눅스의 CLI 환경을 바라보다 보면 pwd를 입력하지 않아도 '내 현재 디렉토리를 출력하거나 현재 날짜와 시간을 볼 수 있으면 좋겠다.' 하는 생각이 들 때가 있다. 그럴 때를 위해 있는 것이 바로 bashrc라는 파일이다.
이 파일을 이용해 PS1이라는 변수를 수정하여 프롬프트의 출력을 바꿀 수 있는데 계정별로 확인하려면 파일이 숨겨져 있기 때문에 ls -a 명령어를 사용하여 확인해야 한다.
사용자 별 .bashrc 파일 내용
cat .bashrc
# .bashrc
...
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
이 파일은 사용자 별로 개별적으로 설정하는 파일이라 해당 계정만 파일 내 설정 값이 적용된다.
하지만 파일 내용을 보면 기본적으로는 /etc/bashrc를 source 하여 적용한다.
그렇기 때문에 전체 계정을 적용하려면 /etc/bashrc의 PS1을 수정하면 된다.
/etc/bashrc 파일 내용
cat -n /etc/bashrc
...
41 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "
41번 줄을 확인해 보면 현재 전체 계정에서 적용될 PS1의 설정이 되어 있다. 이 줄을 수정하면 명령 프롬프트의 모양이 바뀐다.
기본 형태의 이미지를 보면 다음과 같다.:
위 사진과 같이 아주 밋밋하고, diroec라는 디렉토리의 하위 디렉토리가 어디인지 확인하기가 힘들다. 그렇기 때문에 나는 다음과 같이 설정했다.:
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="\e[1;32m[\D{%Y-%m-%d} \t \w]\e[0m\n[\u@\h \W]\\$ "
기본 형태의 위에 한 줄을 추가하여 현재 날짜와 시간, 내가 위치한 디렉토리 정보가 출력되도록 설정했다. 직관성이 매우 높아진 것을 확인할 수 있다.
이러한 설정을 위해 PS1에 등록할 수 있는 옵션은 다음과 같다.:
\t | 현재 시각을 24시간 기준 HH:MM:SS로 표시 |
\T | 현재 시각을 12시간 기준 HH:MM:SS로 표시 |
\@ | 현재 시각을 12시간 기준 오전/오후로 표시 (06:24 PM) |
\d | 현재 날짜를 요일, 월, 일 형식으로 표시 (Fri Dec 16) |
\u | 사용자명 표시 |
\! | 사용한 명령어의 history 번호 표시 |
\\$ | 사용자의 uid가 0이면 '#'을 표시하고 그 외에 '$' 표시 |
\s | 현재 사용중인 쉘의 이름 표시 (/bin/bash) |
\w | 현재 디렉토리의 전체 경로 표시 |
\W | 현재 디렉토리 표시 |
\# | 입력 시마다 번호를 부여 |
\e | 색 입력을 위해 사용 (PS 변수 설정 맨 앞에 '\e1;32m'를 추가하면 프롬프트의 색이 초록색으로 변경) |
\n | 줄바꿈 |
이것보다 더 많은 옵션이 있지만 보통 많이 쓰는 옵션만 적었다.
마지막으로 특정 계정의 프롬프트만 변경하기 위해서는 다음과 같이 수정해주면 된다.:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export PS1="\e[1;32m[\D{%Y-%m-%d} \t \w]\e[0m\n[\u@\h \W]\\$ "
위 설정으로 환경변수 PS1을 수정해 줌으로써 특정 계정의 프롬프트만 변경이 가능하게 된다.
logout 후 다시 로그인해보면 프롬프트 환경이 변경된 것을 확인할 수 있다.
프롬프트 디자인 변경만으로 pwd를 입력하지 않아도 바로 디렉토리 경로를 표시할 수 있고, 현재 날짜 및 시간을 확인할 수 있으면 직관성이 굉장히 좋아지고 그에 따라 일의 능률도 아주 조금이지만 더 좋아질 수 있다.
사내 환경이 아닌 개인 환경이라면 본인 시스템의 프롬프트 환경을 바꿔 보는 것을 추천한다.
'IT > 리눅스' 카테고리의 다른 글
[Linux] 디렉토리 삭제 방법, rmdir 명령어 사용 방법 (0) | 2022.12.26 |
---|---|
[Linux] 디렉토리 생성 방법, mkdir 명령어 사용방법 (0) | 2022.12.25 |
[Linux] 리눅스 cd 사용법, 디렉토리 이동 방법 (0) | 2022.12.25 |
[Linux] bash 쉘 스크립트 if 조건문 사용법과 비교식 (0) | 2022.12.18 |
[Linux] grep 명령어 사용법, 리눅스 문자열 검색 (0) | 2022.12.18 |