bash 쉘에서 명령 프롬프트는 입력 프롬프트가 표시 될 때 표시되는 텍스트입니다. 대부분의 시스템에서 다음과 같이 보입니다.

프롬프트에서 명령을 실행하기 전에 정보를 얻을 수 있습니다. 예를 들어, 위의 프롬프트는 다음을 보여줍니다.
- 누구인지 (사용자라는 사용자 )
- 당신이있는 곳 ( myhost 라는 컴퓨터)
- 당신의 작업 디렉토리는 ( ~, 당신의 홈 디렉토리의 약어입니다)
아마도 가장 중요한 것은 달러 기호 ( " $ ")입니다.이 기호는 루트가 아닌 사용자로 로그인했음을 나타내는 특수 문자입니다. 현재 루트로 로그인 한 경우이 문자는 대신 파운드 기호 ( " # ")가됩니다.
프롬프트를 나타내는 문자열은 PS1 이라는 특수 환경 변수에 저장됩니다. 위의 프롬프트에서 값은 다음과 같습니다.
"\ [전자 메일 보호] \ h : \ W \ $"
이 문자열에는 \ u, \ h, \ W, \ $의 네 가지 특수 문자가 있습니다. 이것은 이스케이프 된 문자 시퀀스이며 프롬프트가 표시 될 때마다 실제 값으로 대체됩니다.
특수 문자
아래 표에 나열된 특수 문자 시퀀스는 bash 쉘 프롬프트에서 사용할 수 있습니다.
문자 순서 | 번역 대상 |
---|---|
\에이 | "알람"문자. 삐 소리 또는 화면 플래시 트리거 |
\디 | Weekday Month Date 형식으로 표시된 현재 날짜 (예 : 5 월 13 일 수요일 ). |
\ D { 형식 } | 현재 날짜와 시간은 strftime에 의해 해석 된 형식에 따라 표시됩니다. 형식을 생략하면 \ D {}에 현재 12 시간 AM / PM 시간 (예 : 07:23:01 PM )이 표시됩니다. |
\이자형 | 이스케이프 문자 (ASCII 27) |
\ e [ 번호 m | 색상으로 표시 할 시퀀스의 시작을 나타냅니다. number는 숫자 또는 숫자 쌍으로, 사용할 색상과 스타일을 지정합니다. 색상 및 번호 쌍 목록은 아래를 참조하십시오. |
\여자 이름 | 시퀀스의 끝을 컬러로 표시합니다. |
\ h | 시스템의 호스트 이름 (첫 번째 " . "까지) 예를 들어 시스템의 호스트 이름이 myhost.mydomain 인 경우 \ h 는 myhost |
\ H | 시스템의 전체 호스트 이름. |
\ j | 쉘이 관리하는 작업 수. |
\엘 | 쉘의 터미널 장치 식별자. 대개 한 자리 숫자입니다. |
\엔 | 개행 문자 |
\아르 자형 | 캐리지 리턴 |
\에스 | 쉘 이름 (현재 bash 세션을 시작한 프로세스의 기본 이름). |
\티 | 현재 시간은 24 시간 HH : MM : SS 형식으로 표시됩니다 (예 : 19:23:01 ). |
\티 | 현재 시간은 12 시간 HH : MM : SS 형식으로 표시됩니다 (예 : 07:23:01 ). |
\ @ | 현재 시간은 12 시간 HH : MM : SS AM / PM 형식 (예 : 07:23:01 PM )으로 표시됩니다. |
\에이 | 24 시간 HH : MM 형식의 현재 시간 (예 : 19:23 ). |
\유 | 현재 사용자의 사용자 이름입니다. |
\V | Bash 버전 번호 (예 : 4.3 ). |
\V | Bash 버전과 패치 번호 (예 : 4.3.30 ). |
\ w | 현재 디렉토리. 사용자의 홈 디렉토리는 물결표 ( " ~ ")로 축약됩니다. 예 : / usr / bin, ~ 또는 ~ / documents |
\ W | 현재 작업 디렉토리의 기본 이름 (예 : bin, ~ 또는 documents ). |
\! | 현재 명령의 기록 번호입니다. |
\ # | 현재 명령의 명령 번호 (명령 번호는 히스토리 번호와 같지만 새 bash 세션을 시작할 때 0으로 재설정됩니다). |
\ nnn | 8 진수 값이 nnn 인 ASCII 문자입니다. |
\\ | 백 슬래시 |
\ [ | 터미널 제어 코드와 같은 인쇄 할 수없는 문자 시퀀스의 시작을 표시합니다. |
\] | 비 인쇄 순서의 끝을 표시합니다. |
\ $ | UID가 0 (수퍼 유저)이면 #를 출력 하고 0보다 크면 다른 사람에게 $를 인쇄합니다. |
현재 세션의 프롬프트 변경
명령. 양식 NAME = VALUE 와 함게 bash에서 다른 변수와 마 y 가지로 PS1 환 경 변수를 설정할 수 있습니다. 표준 프롬프트를 설정하려면 명령 행에 다음을 입력하십시오.
PS1 = "\ [전자 메일 보호] \ h : \ W \ $"
... 그리고 당신의 프롬프트는 즉시 바뀔 것입니다. 프롬프트 뒤에 추가 공백을 표시하기 위해 문자열에 달러 기호 다음에 나오는 마지막 공백을 알면 입력 한 명령을 프롬프트에서 쉽게 구별 할 수 있습니다. 여분의 공간은 필요하지 않지만 권장됩니다.
명령에서 PS1, = 및 문자열 사이에는 공백이 없습니다.
이후의 모든 세션에 대한 프롬프트 변경
새로운 세션마다 프롬프트를 변경하려면 bash 시작 파일을 편집해야합니다. 터미널 세션을 시작할 때마다 다음 파일이있는 경우 해당 파일을 읽고 스크립트로 실행합니다.
/ etc / profile ~ / .bash_profile ~ / .bash_login
~ / .profile
첫 번째 파일 인 / etc / profile 은 bash 세션을 시작하는 시스템의 모든 사용자를위한 시작 스크립트입니다. 모든 사용자에 대한 프롬프트를 변경하려면이 파일을 편집해야하며 이렇게하려면 수퍼 유저 권한이 필요합니다.
sudo vi / etc / profile
예를 들어 위의 명령은 암호를 묻는 프롬프트를 표시하고 sudoers 목록에있는 경우 vi 편집기를 사용하여 수퍼 유저로 범용 bash 시작 파일을 엽니 다.
다른 세 파일은 위의 순서대로 찾고 / etc / profile 다음에 실행 됩니다 . 이 세 파일은 홈 디렉토리에 있으므로 사용자를 위해서만 실행됩니다. 그들은 PS1을 여러 곳에서 정의 할 수 있습니다. 따라서 파일을 신중하게 읽어야 시스템에서 어떻게 구성되는지 확인할 수 있습니다. 예를 들어, 많은 시스템이 터미널이 색상을 지원하는지 여부에 따라 다른 PS1 값을 사용합니다.
세 파일 중 하나라도 존재할 수 있고 bash 세션에 사용될 수 있지만 둘 이상인 경우 나열된 순서대로 실행됩니다.
시작 파일의 줄을 삭제하거나 변경하지 않으려면 새 PS1 = 문을 파일 중 하나의 끝에 추가하여 사용자 지정 프롬프트를 적용 할 수도 있습니다.
프롬프트에 색상 추가하기
색상을 지원하는 터미널을 사용하고 있다면 프롬프트에 색상을 추가 할 수 있습니다. 색상은 다음 형식을 따르는 특수 문자 시퀀스를 사용하여 추가됩니다.
\ e [ 번호 m | 채색 된 부분을 시작합니다. 숫자 값은 색상을 지정하는 특수 숫자 또는 숫자 쌍입니다. |
\여자 이름 | 착색 부분의 끝을 나타냅니다. 기본 색상으로 재설정합니다. |
예를 들어, 프롬프트 문자열 :
PS1 = "\ e [1; 35m 이것은 밝은 보라색입니다. \ e [0; 35m ... 그리고 이것은 진한 자색입니다. \ e [m"
다음과 같은 프롬프트를 생성합니다 :

다음은 사용할 수있는 색상 목록과 그 색상을 지정하는 숫자입니다.
번호) | 색상 / 스타일 | 번호) | 색상 / 스타일 |
---|---|---|---|
0; 30 | 검은 | 1; 30 | 짙은 회색 |
0; 31 | 빨간 | 1; 31 | 밝은 빨간색 |
0; 32 | 녹색 | 1; 32 | 밝은 녹색 |
0; 33 | 갈색 | 1; 33 | 노랑 |
0; 34 | 푸른 | 1; 34 | 밝은 파랑 |
0; 35 | 자 | 1; 35 | 밝은 보라색 |
0, 36 | 시안 | 1; 36 | 밝은 청록색 |
0; 37 | 회색 | 1; 37 | 화이트 |
4; 30 | 검정색, 밑줄 | 40 | 배경 : 어두운 회색 |
4; 31 | 빨간색, 밑줄 | 41 | 배경 : 빨간색 |
4; 32 | 녹색, 밑줄 | 42 | 배경 : 녹색 |
4; 33 | 갈색, 밑줄 | 43 | 배경 : 노란색 |
4; 34 | 파란색, 밑줄 | 44 | 배경 : 파랑 |
4; 35 | 자주색, 밑줄 | 45 | 배경 : 보라색 |
4, 36 | 시안, 밑줄 | 46 | 배경 : 시안 |
4; 37 | 회색, 밑줄 | 47 | 배경 : 회색 |
다음은 몇 가지 예와 그 모습입니다.
PS1 = "\ e [0; 32mGreen \ e [0; 33mBrown \ e [0; 34mBlue \ e [0; 35mPurple \ e [0; 36mCyan \ e [0; 37mGray \ e [m"
PS1 = "밑줄 친 : \ e [4; 31mRed \ e [4; 32mGreen \ e [4; 33mBrown \ e [4; 35mPurple \ e [4; 36mCyan \ 엠"

PS1 = "\ e [44m \ e [1; 35m 파란색 배경에 보라색 \ e [m"
