홈페이지 » 어떻게 » 배쉬 프롬프트를 사용자 정의하고 색을 지정하는 방법

    배쉬 프롬프트를 사용자 정의하고 색을 지정하는 방법

    대부분의 리눅스 배포본은 Bash 프롬프트가 다음과 같이 보이도록 구성합니다. username @ hostname : directory $ . 하지만 Bash 프롬프트가 원하는대로 포함되도록 구성 할 수 있으며 원하는 색상을 선택할 수도 있습니다..

    예제 단계는 Ubuntu 16.04 LTS에서 수행되었습니다. .bashrc 파일의 기본 Bash 프롬프트와 설정은 약간 다를 수 있지만 프로세스는 다른 Linux 배포본에서 동일해야합니다..

    프롬프트 변수가 저장되는 위치

    Bash 프롬프트 설정은 사용자 계정의 .bashrc 파일에 저장됩니다. ~ / .bashrc. 따라서 사용자 이름이 bob 인 경우 파일은에 있습니다. /home/bob/.bashrc.

    이 파일을 열면 현재 Bash 변수를 볼 수 있습니다. vi, emacs 또는 기타 사용하기 쉬운 텍스트 편집기를 사용할 수도 있지만, 예제 텍스트 편집기로 nano를 사용합니다. 터미널을 열고 실행하십시오 :

    나노 ~ / .bashrc

    아래로 스크롤하여 PS1 = 섹션. 첫 번째 변수는 색상 정보를 포함하기 때문에 다소 복잡해 보입니다. 나중에 설명 드리겠습니다. 두 번째 변수는 색 정보가 없으면 다음과 같습니다.

    $ debian_chroot : + ($ debian_chroot) \ u @ \ h : \ w \ $

    이것은 여전히 ​​약간 복잡하기 때문에 $ debian_chroot : + ($ debian_chroot) 비트. 이것들은 Bash에게 당신이 데비안 chroot 환경을 사용하고 있다면 알려주고 보통은 나타나지 않을 것이라고 알려줍니다. 이를 무시하고 Bash 프롬프트 변수의 기본 구조는 다음과 같습니다.

    \ u @ \ h : \ w \ $

    \유 사용자 이름을 나타냅니다., @ @ 기호를 나타냅니다., \ h 호스트 이름 (컴퓨터 이름), : : 문자를 나타냅니다., \ w 작업 디렉토리를 나타냅니다. \ $ 당신이 평범한 사용자 계정이라면 $를, 루트 사용자라면 #를 나타냅니다. 그래서 모든 것을 하나로 합치면 username @ hostname : working_directory $.

    Bash 프롬프트를 변경하려면 PS1 변수에 특수 문자를 추가, 제거 또는 재정렬해야합니다. 그러나 기본 변수보다 더 많은 변수를 사용할 수 있습니다..

    텍스트 에디터를 nano로두고 Ctrl + X를 눌러 종료하십시오. .bashrc 파일에 실제로 새 변수를 작성하기 전에 변수를 실험하는 방법을 보여 드리겠습니다..

    사용자 정의 배시 프롬프트를 만드는 방법

    Bash 프롬프트 구성은 PS1 변수에 저장됩니다. PS1 변수의 내용을 새 변수에 저장하려면 다음 명령을 실행하십시오.

    기본값 = $ 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 매뉴얼에있는 전체 목록은 다음과 같습니다 :

    • 벨 문자 : \에이
    • 'Weekday Month Date'형식의 날짜 (예 : 'Tue May 26') : \디
    • 형식은 strftime (3)에 전달되고 결과는 프롬프트 문자열에 삽입됩니다. 빈 형식은 로케일 고유의 시간 표현을 생성합니다. 중괄호는 필수 항목입니다. \ D 형식
    • 이스케이프 문자 : \이자형
    • 첫 번째 호스트 이름 '.': \ h
    • 호스트 이름 : \ H
    • 현재 쉘이 관리하는 작업 수 : \ j
    • 쉘의 터미널 장치 이름의 기본 이름 : \엘
    • 줄 바꿈 : \엔
    • 캐리지 리턴 : \아르 자형
    • 쉘의 이름, $ 0의 기본 이름 (최종 슬래시 뒤에 나오는 부분) : \에스
    • 24 시간 HH : MM : SS 형식의 시간 : \티
    • 시간 (12 시간 HH : MM : SS 형식) : \티
    • 오전 12시 / 오후 형식의 시간 : \ @
    • 시간 (24 시간 HH : MM 형식) : \에이
    • 현재 사용자의 사용자 이름 : \유
    • Bash 버전 (예 : 2.00) : \V
    • Bash, version + patchlevel (예 : 2.00.0)의 출시 : \V
    • $ HOME이 물결표로 축약 된 현재 작업 디렉토리 ($ PROMPT_DIRTRIM 변수 사용) : \ w
    • $ PWD의 기본 이름. $ HOME은 물결표로 축약됩니다. \ W
    • 이 명령의 히스토리 번호 : \!
    • 이 명령의 명령 번호는 다음과 같습니다. \ #
    • 유효 UID가 0이면 #, 그렇지 않으면 $ : \ $
    • ASCII 코드가 8 진수 인 문자 nnn : \ nnn
    • 백 슬래시 : \\
    • 일련의 인쇄 할 수없는 문자를 시작하십시오. 터미널 제어 시퀀스를 프롬프트에 포함시키는 데 사용할 수 있습니다. \ [
    • 인쇄 할 수없는 문자 시퀀스 종료 : \]

    따라서 Bash 프롬프트에 날짜와 시간을 추가하고 작업 디렉토리를 두 ​​번째 라인의 command에 넣으려면 다음과 같이하십시오 :

    PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"

    대괄호는 전혀 필요하지 않지만 시각적으로 문제를 해결하고 행을 읽기 쉽게 만듭니다. 이전에 다뤘던 것처럼 원하는 텍스트에 임의의 텍스트 또는 일반 문자를 추가 할 수 있으므로 자유롭게 어떤 것이든지 사용할 수 있습니다.

    알아 두어야 할 또 하나의 강력한 트릭이 있습니다. 프롬프트에 명령의 출력을 추가 할 수 있습니다. 프롬프트가 나타나면 Bash는 명령을 실행하고 현재 정보를 입력합니다. 이렇게하려면 두 명령 사이에서 실행하려는 명령 만 포함하면됩니다. ' 문자. 이는 아포스트로피가 아닙니다. 이것은 키보드의 Tab 키 위에 나타나는 악센트입니다..

    예를 들어, 프롬프트에서 Linux 커널 버전을보고 싶다고 가정 해 봅시다. 다음과 같은 행을 사용할 수 있습니다.

    PS1 = "\ u @ \ h on 'uname -s -r'\ w \ $"

    또 다른 예로, 시스템의 가동 시간 및 평균 부하를 보려면 가동 시간 명령. 다음과 같은 구성을 사용할 수 있습니다. 즉, 프롬프트의 나머지 부분 전에 가동 시간을 자체 줄에 표시합니다..

    PS1 = "( '가동 시간') \ n \ u @ \ h : \ w $"

    다양한 특수 문자 및 명령을 사용해 자유롭게 실험하여 이상적인 명령 프롬프트를 조합하십시오..

    배시 프롬프트에 색상을 추가하는 방법

    원하는 프롬프트를 찾으면 색상을 추가 할 수 있습니다. 이것은 실제로 매우 간단하지만,보고있는 내용을 이해하지 못하면 변수가 너무 복잡하고 복잡해 보입니다..

    예를 들어 이전의 기본 색상 프롬프트 변수는 다음과 같습니다.

    $ [debian_chroot : \ ($ debian_chroot)] \ [\ 033 [01; 32m \] \ u h \ [\ 033 [00m \] : \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $

    또는 debian_chroot 비트를 다시 제거하십시오.

    \ [\ 033 [01; 32m \] \ u h \ [\ 033 [00m \] : \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $

    이것은 실제로는 \ u @ \ h : \ w $ 변수는 이전과 같지만 색상 정보가 있습니다. 정말로, 우리는 몇 가지 섹션으로 나눌 수 있습니다 :

    \ [\ 033 [01; 32m \]\ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \]\ w \ [\ 033 [00m \]\ $

    첫 번째 섹션은 \ u @ \ h 비트는 녹색으로 바뀌는 색상 정보 앞에 위치합니다. 두 번째는 : 문자 앞에 색상 정보가 표시됩니다. 세 번째는 \ w 비트 앞에는 파란색 정보가 표시됩니다. 네 번째는 \ $ 비트, 색상 정보를 앞에두고 착색을 제거합니다..

    자신 만의 색상 태그를 만드는 방법을 이해하면 Bash 프롬프트의 원하는 부분에 원하는 색상을 추가 할 수 있습니다.

    알아 두어야 할 사항은 다음과 같습니다. 전체 색상 코드 정보를 \ [  과 \] 캐릭터에스. 태그 내부에서 시작해야합니다. \ 033 [ 또는 \이자형[ 이것은 Bash에게 이것이 색 정보라는 것을 가리킨다. 양자 모두 \ 033 [\이자형[ 똑같은 일을해라.. \이자형[ 더 짧아서 사용하기가 더 쉬울 수도 있지만 \ 033 [ 여기서 기본적으로 사용되는 것과 일치합니다. 태그 끝 부분에서 끝내야합니다. 엠\ 색상 태그의 끝을 나타 내기 위해.

    이것을 깨고 여기에 모든 색상 태그가 표시됩니다. 유일한 차이점은 실제 색상을 정의하기 위해 COLOR 대신에 추가하는 정보입니다.

    \ [\ 033 [색깔엠\]

    Bash에서는 전경 텍스트의 색상을 변경하고 텍스트에 "굵게"또는 "밑줄"과 같은 속성을 추가하고 배경색을 설정할 수 있습니다.

    전경 텍스트의 값은 다음과 같습니다.

    • 검정 : 30
    • 파란색 : 34
    • 시안 : 36
    • 녹색 : 32
    • 보라색 : 35
    • 빨간색 : 31
    • 흰색 : 37
    • 노란색 : 33

    예를 들어 보라색 텍스트는 색상 코드 32이므로 \ [\ 033 [32엠\]  자주색 텍스트.

    텍스트의 속성을 지정할 수도 있습니다. 이 속성은 색상 번호 앞에 세미콜론 (;)으로 구분하여 추가해야합니다. 이러한 속성을 가진 텍스트는 다른 터미널 에뮬레이터에서 다르게 보일 것입니다.

    다음은 텍스트 속성 값입니다.

    • 일반 텍스트 : 0
    • 굵게 또는 옅은 텍스트 : 1 (터미널 에뮬레이터에 따라 다릅니다.)
    • 희미한 텍스트 : 2
    • 밑줄 친 텍스트 : 4
    • 텍스트 깜박임 : 5 (대부분의 터미널 에뮬레이터에서는 작동하지 않습니다.)
    • 반전 된 텍스트 : 7 (전경 및 배경색이 반전되므로 현재 텍스트가 검은 색 바탕에 흰색 텍스트 인 경우 흰색 배경에 검정색 텍스트가 표시됩니다.)
    • 숨겨진 텍스트 : 8

    실제로 일반 텍스트 속성을 포함 할 필요는 없습니다. 어쨌든 기본값입니다..

    예를 들어 빨간색 텍스트는 코드 31이고 굵은 텍스트는 코드 1이므로 \ [\ 033 [1; 31엠\] 대담한 빨간색 텍스트 용.

    배경색을 지정할 수도 있지만 배경색에 속성을 추가 할 수는 없습니다..

    다음은 배경색 값입니다.

    • 검정색 배경 : 40
    • 파란색 배경 : 44
    • 청록색 배경 : 46
    • 녹색 배경 : 42
    • 자주색 배경 : 45
    • 빨간색 배경 : 41
    • 흰색 배경 : 47
    • 노란색 배경 : 43

    예를 들어, 파란색 배경은 코드 44이므로, \ [\ 033 [44엠\] 파란색 배경을 지정합니다..

    전경색과 배경색 태그를 모두 지정할 수 있습니다. 예를 들어 42는 녹색 배경을 나타내고 31은 빨간색 텍스트를 나타냅니다. 따라서 기본 프롬프트를 녹색 배경에 빨간색 텍스트로 만들려면 다음을 사용하십시오.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h : \ w \ $ "

    우리는 하나의 배경색을 지정하고 여기에 하나의 전경 텍스트 색상을 지정합니다.이 색상은 프롬프트의 시작 부분에서 시작하여 프롬프트의 모든 텍스트에 적용됩니다. 그러나 변수에서 원하는만큼 많은 색상 태그를 지정하여 프롬프트의 다른 섹션에 색상을 지정할 수 있습니다.

    색상 코드 00을 지정하지 않으면 배경 및 전경 텍스트 색상이 계속 프롬프트를지나갑니다. 변수 내에서이 태그를 사용하여 프롬프트의 어딘가에 다시 서식을 다시 설정할 수도 있습니다. 예를 들어, 다음 행은 \ $ 캐릭터.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h : \ w \\ [\ 033 [00m \] \ $ "

    새 기본 프롬프트를 설정하는 방법

    색상을 실험 한 후에는 현재 세션에서 좋아하는 Bash 프롬프트가 있어야합니다. 그러나 새로운 프롬프트를 영구적으로 만들어서 모든 Bash 세션에서 자동으로 사용하도록하고 싶을 것입니다..

    이렇게하려면 이전에 살펴본 .bashrc 파일에서 PS1 변수의 내용을 변경하기 만하면됩니다..

    다음과 같이 원하는 텍스트 편집기에서 .bashrc 파일을 엽니 다.

    나노 ~ / .bashrc

    아래로 스크롤하여 PS1 = 섹션을 찾습니다. 기본 변수를 사용자 정의 된 변수로 바꾸십시오. 아마 당신은 $ debian_chroot : + ($ debian_chroot)  비트 혼자, 그러나 그들은 chroot 환경에 있지 않으면 나타나지 않을 것입니다..

    색깔있는 PS1 변수를 if [ "$ color_prompt"= yes]; 그때 선. 아래에 색상이없는 변수를 입력하십시오. 그밖에 선.

    파일을 저장하고 텍스트 편집기를 닫으십시오. 예를 들어 파일을 nano로 저장하려면 Ctrl + O를 누르고 Enter를 누른 다음 Ctrl + X를 눌러 종료하십시오..

    다음 번에 새 Bash 쉘을 시작할 때 (예 : 터미널에서 로그인하거나 새 터미널 창을 열면 사용자 정의 프롬프트가 표시됩니다).