Linux

[PS1] Prompt 표시 형식 변경

비번변경 2021. 12. 10. 21:35
프롬프트; prompt
컴퓨터 터미널 또는 터미널 에뮬레이터의 CLI(커맨드 라인 인터페이스)의 명령줄 대기모드

 

현재 테스트 목적으로 사용하는 서버는 프롬프트를 아래 사진처럼 Username@Hostname 형식으로 표시한다.

프롬프트

AWS EC2는 기본적으로 호스트네임을 IP에 기반해 생성하는데, 서버가 많은 경우에는 IP 주소 기반 호스트네임을 표시하는 것보다 인스턴스명이나 별도 별칭을 표시하는 게 가독성이 좋다.

 

이 글에서는 이 프롬프트 설정을 수정하는 방법을 정리한다. 서버 설정인 hostname은 수정하지 않을 것이다.

 

PS1

프롬프트 형식은 PS1이라는 이름의 환경 변수 값에서 표현된다.

 

현재 설정 확인

# 현재 적용된 환경 변수 출력
env
env | grep PS1

# 또는
echo $PS1

echo $PS1

 

기호 및 의미

기호 의미
\u 사용자 이름
\h hostname
\W 현재 디렉터리 표시
전체 절대경로 중 마지막 디렉터리만 표시한다.

예시)
/etc/fonts/conf.d/ -> conf.d
\$ 현재 사용자가 root(uid 0)인 경우, #을 표시
현재 사용자가 일반 사용자인 경우, $ 표시
\n 개행 문자

이 외에 시간, 현재 사용 중인 쉘, 명령어 히스토리 번호 등을 표시하는 기호들도 존재한다.

 

 

PS1 값 변경

환경 변수 파일 인식 순서

기본적으로 각 파일의 하단에 실행 코드를 추가한다고 했을 때, 인식 순서는 아래와 같다.

  1. /etc/profile.d/test.sh
  2. /etc/profile
  3. /etc/bashrc
  4. ~/.bashrc
  5. ~/.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

 

리눅스 PS1 - 쉘프롬프트 모양 변경하기

현재 사용자의 시스템 사용환경을 개별적으로 사용할 수 있도록 지원하는 사용자별 시스템환경변수를 쉘변수라 한다. 쉘변들 가운데 PS1 이라는 쉘변수가 있는데 이 쉘변수는 우리가 사용하는

webdir.tistory.com

https://zetawiki.com/wiki/Profile_bashrc_bash_profile_%EC%8B%A4%ED%96%89_%EC%88%9C%EC%84%9C

 

profile bashrc bash profile 실행 순서 - 제타위키

✔️ 페도라 11 (Leonidas)에서 테스트하였습니다. bash 쉘 초기화 파일 실행 순서 profile bashrc bash_profile 실행 순서 profile bashrc bash_profile 호출 순서 1 실행순서 (간단히 정리)[ | ] 기본 설정에서 실행 순

zetawiki.com