Bash PS1 프롬프트 설정 상세 해설
Linux 환경에서 터미널의 프롬프트는 PS1 변수로 제어된다.
제공된 코드는 color_prompt에 따라 색상 적용 여부가 달라지는 동적 프롬프트 구성을 보여준다.
아래는 코드와 함께 각 요소의 의미를 풍부하게 분석한 내용이다.
📌 전체 코드
if [ "$color_prompt" = yes ]; then
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\w\$ '
fi
🟩 1. 색상이 적용되는 경우 (color_prompt = yes)
✔️ 사용되는 PS1
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
🧩 구성 요소 해설
| 요소 | 의미 |
|---|---|
${debian_chroot:+($debian_chroot)} |
chroot 환경일 경우 (chroot명)을 표시 |
\[\033[01;32m\] |
밝은 녹색 시작(ANSI 컬러 코드) |
\u |
현재 사용자 이름 |
@ |
구분자 |
\[\033[00m\] |
색상 초기화 |
: |
구분자 |
\[\033[01;34m\] |
밝은 파란색 시작 |
\w |
현재 작업 디렉토리 경로 (상대/압축 표기) |
\[\033[00m\] |
색상 초기화 |
\$ |
일반 유저는 $, root는 # 표시 |
🎨 색상 설명 (ANSI 코드 요약)
| 코드 | 색상 |
|---|---|
\033[01;32m |
밝은 초록색 |
\033[01;34m |
밝은 파란색 |
\033[00m |
리셋 |
이 프롬프트 구성은 다음과 같은 형태로 표시된다:
username:/현재경로$
username은 초록색경로(w)는 파란색
주의: 원본에서는 \u@\h(사용자@호스트)였으나, 현재 설정에서는 호스트명을 제거해 \u@만 출력한다.
🟦 2. 색상이 적용되지 않는 경우 (color_prompt != yes)
✔️ 사용되는 PS1
PS1='${debian_chroot:+($debian_chroot)}\u@\w\$ '
🧩 구성 요소 해설
| 요소 | 의미 |
|---|---|
${debian_chroot:+($debian_chroot)} |
chroot 환경 표시 |
\u |
사용자명 |
@ |
구분자 |
\w |
현재 디렉터리 |
\$ |
권한에 따라 $ 또는 # 출력 |
📌 출력 예시
user:/home/user$
🛠 왜 주석 처리된 원본과 다르게 수정된 걸까?
원래 배포본의 일반 PS1은 다음 형태였다:
원본 컬러 버전
\u@\h:\w$
수정 버전에서 달라진 점은:
| 원본 | 수정본 | 차이 |
|---|---|---|
| \u@\h | \u@ | 호스트명 제거 |
디렉터리 앞에 : |
그대로 유지 | 동일 |
| 색상 코드 | 일부 수정 | 색상은 유지되나 호스트명 색이 사라짐 |
👉 이유(추정)
- 프롬프트가 너무 길어지는 것을 방지하려는 목적
- SSH 접속이 많지 않은 환경에서는 호스트 표시가 불필요
- 깔끔하고 짧은 프롬프트 선호
🪄 PS1 커스터마이징 팁
🌈 (1) 프롬프트에 Git branch 표시하기
PS1='\u@\w$(git branch 2>/dev/null | grep "*" | sed "s/*/ (/;s/$/)/")\$ '
🕒 (2) 프롬프트 앞에 시간 표시
PS1='[\t] \u@\w\$ '
💻 (3) 완전 minimal 스타일
PS1='\w\$ '
🔚 요약
color_prompt=yes일 때 ANSI 컬러 코드가 적용된 컬러 프롬프트 사용\u,\w,\h,\$등 Bash PS1 특수 문자로 사용자·디렉터리·호스트 정보 표시- 수정본은 **호스트명(h)**을 제거하여 더 단순한 형태로 구성
- 색상 없는 버전에서도 기본 데이터(사용자, 경로)는 동일하게 출력
- PS1은 사용자가 원하는 대로 자유롭게 확장·커스터마이징 가능