
대부분의 Linux 배포판은 Bash 프롬프트를 다음과 같이 구성합니다. username@hostname:directory$ . 그러나 원하는 것을 포함하도록 Bash 프롬프트를 구성하고 원하는 색상을 선택할 수도 있습니다.
여기 예제 단계는 Ubuntu 16.04 LTS에서 수행되었습니다. .bashrc 파일의 기본 Bash 프롬프트와 설정이 약간 다를 수 있지만 프로세스는 다른 Linux 배포판에서 동일해야합니다.
프롬프트 변수가 저장된 위치
Bash 프롬프트 구성은 사용자 계정의 .bashrc 파일에 저장됩니다. ~/.bashrc. 따라서 사용자 이름이 bob 인 경우 파일은 /home/bob/.bashrc.
파일을 열어 현재 Bash 변수를 볼 수 있습니다. vi, emacs 또는 다른 텍스트 편집기를 사용할 수도 있지만 nano를 예제 텍스트 편집기로 사용합니다. 터미널을 열고 다음을 실행하십시오.
nano ~/.bashrc

아래로 스크롤 PS1= 부분. 첫 번째 변수는 색상 정보를 포함하기 때문에 다소 복잡해 보입니다. 나중에 설명하겠습니다. 색상 정보가없는 두 번째 변수는 다음과 같습니다.
${debian_chroot:+($debian_chroot)}u@h:w$

이것은 여전히 약간 복잡하기 때문에 ${debian_chroot:+($debian_chroot)} 비트. 이것들은 Bash에게 데비안 chroot 환경을 사용하고 있고 일반적으로 표시되지 않을 것인지 알려줍니다. 이를 무시하고 Bash 프롬프트 변수의 기본 구조는 다음과 같습니다.
u@h:w$
u 사용자 이름을 나타냅니다. @ @ 기호를 나타냅니다. h 호스트 이름 (컴퓨터 이름)을 나타냅니다. : : 문자를 나타냅니다. w 작업 디렉토리를 나타내고 $ 일반 사용자 계정 인 경우 $, 루트 인 경우 #을 나타냅니다. 모든 것을한데 모으면 username@hostname:working_directory$.
Bash 프롬프트를 변경하려면 PS1 변수에서 특수 문자를 추가, 제거 또는 재 배열하면됩니다. 그러나 기본 변수보다 더 많은 변수를 사용할 수 있습니다.
나노에서는 텍스트 편집기를 그대로두고 종료하려면 Ctrl + X를 누르십시오. 실제로 .bashrc 파일에 새 변수를 작성하기 전에 변수를 실험하는 방법을 보여줍니다.
Custom 사용자 정의 Bash 프롬프트 생성 방법
Bash 프롬프트 구성은 PS1 변수에 저장됩니다. PS1 변수의 내용을 새 변수에 저장하려면 다음 명령을 실행하십시오.
DEFAULT=$PS1
이제 PS1 변수를 다른 값으로 설정하여 실험 할 수 있습니다. 예를 들어, 여기에서 첫 번째 줄은 프롬프트를 기본“user $”프롬프트로 설정하고 두 번째 줄은 프롬프트를 기본“user : working_directory $”프롬프트로 설정합니다.
PS1="u$ " PS1="u:w$ "
기본 프롬프트로 돌아가려면 다음 명령을 실행하십시오.
PS1=$DEFAULT
Bash는 이전에 기본 설정을 저장했기 때문에 기본 프롬프트로 복원됩니다. 여기서 변경 한 내용은 현재 Bash 세션에 대해서만 일시적이므로 터미널 창에서 항상 로그 아웃 한 후 다시 로그인하거나 닫았다가 다시 열어서 기본 프롬프트로 돌아갈 수 있습니다. 그러나 위의 줄을 사용하면 창을 로그 아웃하거나 닫는 번거 로움없이 쉽게 기본 Bash 프롬프트로 돌아갈 수 있습니다.

변수에 문자 나 텍스트를 추가 할 수 있습니다. 따라서 기본 프롬프트 앞에 “Hello World”를 붙이려면 다음을 사용할 수 있습니다.
PS1="Hello World u@h:w$ "

이제 기본 사항을 알아 냈으므로 모든 특수 문자가 무엇인지 알아야합니다. 아마도이 중 많은 것을 신경 쓰지 않을 것이지만 Bash 매뉴얼에 표시된 전체 목록은 다음과 같습니다.
- 종 캐릭터 :
a - “평일 월 날짜”형식의 날짜 (예 : “화 5 월 26 일”) :
d - 형식은 strftime (3)으로 전달되고 결과는 프롬프트 문자열에 삽입됩니다. 형식이 비어 있으면 로케일 별 시간 표현이 나타납니다. 괄호가 필요합니다 :
D{format} - 이스케이프 문자 :
e - 첫 번째‘.’까지의 호스트 이름 :
h - 호스트 이름 :
H - 현재 셸에서 관리하는 작업 수 :
j - 쉘 터미널 장치 이름의 기본 이름 :
l - 줄 바꿈 :
n - 캐리지 리턴 :
r - 쉘 이름, 기본 이름 $ 0 (마지막 슬래시 다음 부분) :
s - 24 시간 HH : MM : SS 형식의 시간 :
t - 12 시간 HH : MM : SS 형식의 시간 :
T - 오전 12시 / 오후 형식의 시간 :
@ - 24 시간 HH : MM 형식의 시간 :
A - 현재 사용자의 사용자 이름 :
u - Bash 버전 (예 : 2.00) :
v - Bash 버전 + 패치 레벨 (예 : 2.00.0) :
V - $ HOME이 물결표로 축약 된 현재 작업 디렉토리 ($ PROMPT_DIRTRIM 변수 사용) :
w - $ PWD의 기본 이름이며 $ HOME은 물결표로 축약됩니다.
W - 이 명령의 히스토리 번호 :
! - 이 명령의 명령 번호 :
# - 유효 uid가 0이면 #, 그렇지 않으면 $ :
$ - ASCII 코드가 8 진수 값 nnn 인 문자 :
nnn - 백 슬래시 :
\ - 비 인쇄 문자 순서를 시작하십시오. 이것은 터미널 제어 시퀀스를 프롬프트에 포함시키는 데 사용될 수 있습니다.
( - 비 인쇄 문자 시퀀스를 종료하십시오.
)
따라서 Bash 프롬프트에 날짜와 시간을 추가하고 작업 디렉토리를 두 번째 줄에 명령하려면 다음 구성을 사용할 수 있습니다.
PS1="(d t) u@hnw$ "
여기서 대괄호는 전혀 필요하지 않지만 시각적으로 구분하여 줄을 쉽게 읽을 수 있도록 도와줍니다. 앞서 살펴본 것처럼 원하는 변수에 텍스트 또는 일반 문자를 추가 할 수 있으므로 원하는대로 사용하십시오.

알아야 할 또 하나의 강력한 트릭이 있습니다. 프롬프트에 명령의 출력을 추가 할 수 있습니다. 프롬프트가 나타날 때마다 Bash는 명령을 실행하고 현재 정보를 채 웁니다. 이렇게하려면 두 명령 사이에 실행할 명령을 포함 시키십시오. ` 문자. 아포스트로피가 아닙니다. 즉, 키보드의 Tab 키 위에 나타나는 억양입니다.
예를 들어, 프롬프트에서 Linux 커널 버전을보고 싶다고 가정 해 봅시다. 다음과 같은 줄을 사용할 수 있습니다.
PS1="u@h on `uname -s -r` w$ "

또 다른 예로, 시스템의 가동 시간 및로드 평균을보고 싶다고 가정 해 보겠습니다. uptime 명령. 다음 구성을 사용하면 나머지 프롬프트가 시작되기 전에 가동 시간을 자체 라인에 배치 할 수 있습니다.
PS1="(`uptime`)nu@h:w$ "

이상적인 명령 프롬프트를 구성하기 위해 다른 특수 문자와 명령을 자유롭게 실험하십시오.
배쉬 프롬프트에 색상을 추가하는 방법
원하는 메시지를 찾았 으면 색상을 추가 할 수 있습니다. 실제로는 매우 간단하지만보고있는 내용을 이해하지 못하면 변수가 엉망이고 복잡해 보입니다.
예를 들어, 이전의 기본 색상 프롬프트 변수는 다음과 같습니다.
${debian_chroot:+($debian_chroot)}( 33(01;32m)u@h( 33(00m):( 33(01;34m)w( 33(00m)$
또는 debian_chroot 비트를 다시 한 번 제거하십시오.
( 33(01;32m)u@h( 33(00m):( 33(01;34m)w( 33(00m)$

이것은 실제로 단지 u@h:w$ 색상 정보가 포함 된 이전의 변수입니다. 실제로 몇 개의 섹션으로 나눌 수 있습니다.
( 33(01;32m)u@h ( 33(00m): ( 33(01;34m)w ( 33(00m)$
첫 번째 섹션은 u@h 녹색으로 바뀌는 색상 정보가 앞에옵니다. 두 번째는 : 색상 정보를 앞에 붙여서 색상을 제거합니다. 세 번째는 w 비트는 파란색으로 바뀌는 색상 정보가 앞에옵니다. 네 번째는 $ 비트는 색을 제거하는 색상 정보가 앞에옵니다.

자신 만의 색상 태그를 구성하는 방법을 이해하면 원하는 색상을 Bash 프롬프트의 원하는 섹션에 추가 할 수 있습니다.
알아야 할 사항은 다음과 같습니다. ( 과 ) character에스. 태그 안에서는 다음 중 하나로 시작해야합니다 33( 또는 e( 이 정보가 Bash임을 Bash에 표시합니다. 양자 모두