hello

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은 사용자가 원하는 대로 자유롭게 확장·커스터마이징 가능