Linux 터미널 프롬프트에서 Bash 색상 및 콘텐츠를 사용자 정의하는 방법
오늘날 Bash는 대부분의 (전부는 아니지만) 최신 Linux 배포판의 기본 셸입니다. 그러나 터미널의 텍스트 색상과 프롬프트 내용은 배포판마다 다를 수 있습니다.
권장 자료: 가장 자주 사용되는 Linux용 오픈 소스 셸 5개
더 나은 접근성이나 단순한 변덕을 위해 이를 사용자 정의하는 방법이 궁금하신 경우 계속 읽으십시오. 이 기사에서는 이를 수행하는 방법을 설명합니다.
PS1 Bash 환경 변수
명령 프롬프트와 터미널 모양은 PS1
이라는 환경 변수에 의해 제어됩니다. Bash 매뉴얼 페이지에 따르면 PS1은 셸이 명령을 읽을 준비가 되었을 때 표시되는 기본 프롬프트 문자열을 나타냅니다.
PS1에서 허용되는 콘텐츠는 맨 페이지의 PROMPTING 섹션에 그 의미가 나열되어 있는 여러 개의 백슬래시 이스케이프 특수 문자로 구성됩니다.
설명을 위해 시스템에 PS1
의 현재 콘텐츠를 표시해 보겠습니다(귀하의 경우에는 다소 다를 수 있습니다).
echo $PS1
[\u@\h \W]$
이제 필요에 따라 PS1을 사용자 정의하는 방법을 설명하겠습니다.
PS1 형식 사용자 정의
매뉴얼 페이지의 PROMPTING 섹션에 따르면 각 특수 문자의 의미는 다음과 같습니다.
\u:
현재 사용자의 사용자 이름입니다.\h:
정규화된 도메인 이름의 첫 번째 점 (.)까지의 호스트 이름입니다.\W:
현재 작업 디렉토리의 기본 이름, $HOME은 물결표 (~)로 축약됩니다.\$:
현재 사용자가 루트이면 #을 표시하고, 그렇지 않으면 $를 표시합니다.
예를 들어, 현재 명령의 기록 번호를 표시하려면 \!
를 추가하고, 대신 FQDN을 표시하려면 \H
를 추가하는 것이 좋습니다. 짧은 서버 이름입니다.
다음 예에서는 이 명령을 실행하여 두 가지를 모두 현재 환경으로 가져옵니다.
PS1="[\u@\H \W \!]$"
Enter를 누르면 프롬프트 내용이 아래와 같이 변경되는 것을 볼 수 있습니다. 위 명령을 실행하기 전과 후의 프롬프트를 비교하십시오.
이제 한 단계 더 나아가 명령 프롬프트에서 사용자 및 호스트 이름의 색상(텍스트와 주변 배경 모두)을 변경해 보겠습니다.
실제로 프롬프트의 세 가지 측면을 사용자 정의할 수 있습니다.
Text Format | Foreground (text) color | Background color |
0: normal text | 30: Black | 40: Black |
1: bold | 31: Red | 41: Red |
4: Underlined text | 32: Green | 42: Green |
33: Yellow | 43: Yellow | |
34: Blue | 44: Blue | |
35: Purple | 45: Purple | |
36: Cyan | 46: Cyan | |
37: White | 47: White |
시작 부분에 \e
특수 문자를 사용하고 끝에 m
를 사용하여 뒤에 오는 색상 순서를 나타냅니다.
이 순서에서 세 가지 값(배경, 형식 및 전경)은 쉼표로 구분됩니다(값이 지정되지 않으면 기본값이 가정됩니다). .
권장 읽기: Linux에서 Bash 쉘 스크립팅 알아보기
또한 값 범위가 다르기 때문에 어느 값(배경, 형식, 전경)을 먼저 지정하는지는 중요하지 않습니다.
예를 들어, 다음 PS1
을 사용하면 프롬프트가 빨간색 배경에 노란색 밑줄이 그어진 텍스트로 표시됩니다.
PS1="\e[41;4;33m[\u@\h \W]$ "
보기에는 좋지만 이 사용자 정의는 현재 사용자 세션 동안에만 지속됩니다. 터미널을 닫거나 세션을 종료하면 변경 사항이 손실됩니다.
이러한 변경 사항을 영구적으로 적용하려면 배포판에 따라 ~/.bashrc
또는 ~/.bash_profile
에 다음 줄을 추가해야 합니다.
PS1="\e[41;4;33m[\u@\h \W]$ "
자신에게 가장 적합한 색상을 찾기 위해 자유롭게 색상을 시험해 보세요.
요약
이 글에서는 Bash 프롬프트의 색상과 내용을 사용자 정의하는 방법을 설명했습니다. 이 게시물에 대한 질문이나 제안 사항이 있는 경우 아래 댓글 양식을 사용하여 언제든지 문의해 주세요. 여러분의 의견을 기다리겠습니다!