프롬프트; prompt
컴퓨터 터미널 또는 터미널 에뮬레이터의 CLI(커맨드 라인 인터페이스)의 명령줄 대기모드
현재 테스트 목적으로 사용하는 서버는 프롬프트를 아래 사진처럼 Username@Hostname 형식으로 표시한다.
AWS EC2는 기본적으로 호스트네임을 IP에 기반해 생성하는데, 서버가 많은 경우에는 IP 주소 기반 호스트네임을 표시하는 것보다 인스턴스명이나 별도 별칭을 표시하는 게 가독성이 좋다.
이 글에서는 이 프롬프트 설정을 수정하는 방법을 정리한다. 서버 설정인 hostname은 수정하지 않을 것이다.
PS1
프롬프트 형식은 PS1이라는 이름의 환경 변수 값에서 표현된다.
현재 설정 확인
# 현재 적용된 환경 변수 출력
env
env | grep PS1
# 또는
echo $PS1
기호 및 의미
기호 | 의미 |
\u | 사용자 이름 |
\h | hostname |
\W | 현재 디렉터리 표시 전체 절대경로 중 마지막 디렉터리만 표시한다. 예시) /etc/fonts/conf.d/ -> conf.d |
\$ | 현재 사용자가 root(uid 0)인 경우, #을 표시 현재 사용자가 일반 사용자인 경우, $ 표시 |
\n | 개행 문자 |
이 외에 시간, 현재 사용 중인 쉘, 명령어 히스토리 번호 등을 표시하는 기호들도 존재한다.
PS1 값 변경
환경 변수 파일 인식 순서
기본적으로 각 파일의 하단에 실행 코드를 추가한다고 했을 때, 인식 순서는 아래와 같다.
- /etc/profile.d/test.sh
- /etc/profile
- /etc/bashrc
- ~/.bashrc
- ~/.bash_profile
/etc/ 아래의 설정 파일은 전체 사용자에 대한 설정 파일이고, 홈 디렉터리 아래에 있는 설정 파일은 해당 사용자에 대한 설정 파일이다. 경우에 따라 필요한 파일을 수정한다.
전체 사용자의 프롬프트 수정
/etc/profile 또는 /etc/bashrc 파일을 수정한다. 수정에는 root 권한이 필요하다.
이 글에서는 /etc/bashrc 하단에 아래 내용을 추가했다.
# /etc/bashrc
GREEN="\[$(tput setaf 2)\]" # 터미널에 컬러 적용
RESET="\[$(tput sgr0)\]" # Turn off all attributes
export PS1="${GREEN}\u@devOps3-EC2-test-Intellytics-01[\W]: ${RESET}"
적용은 source 명령어로 한다.
source /etc/bashrc
특정 사용자의 프롬프트 수정
프롬프트를 수정할 사용자의 홈 디렉터리 밑에 있는 .bash_profile 또는 .bashrc 파일을 수정한다.
이 글에서는 .bash_profile을 수정했다.
다른 사용자로 접속하는 경우에는 /etc/bashrc의 설정이 적용되어 있음을 확인할 수 있다.
프롬프트 일회성 수정
export PS1="<FORMAT>"를 터미널에서 실행한다. 재접속 또는 재부팅 시에 설정이 초기화된다.
참고 문서
https://webdir.tistory.com/105
https://zetawiki.com/wiki/Profile_bashrc_bash_profile_%EC%8B%A4%ED%96%89_%EC%88%9C%EC%84%9C