$ PS1 변수에 대한 완전한 참조는 어디에서 찾을 수 있습니까?


20

내 컴퓨터의 기본 PS1 변수 (Kubuntu 13.10)는 다음과 같습니다.

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

최소한 $ PS1 변수가 어떻게 작동하여 최소한 위의 PS1 변수를 이해할 수 있는지에 대한 참조를 찾고 있습니다.


@ RaduRădeanu 나는 그것을 별도의 답변으로 옮겼습니다.
Mark Raymond

일반적 PS1으로 터미널에서 의 값을 설정하여이 문제를 해결할 수 있습니다 ( 예 :) PS1="How r u, \u?". 변경 사항은 터미널을 닫을 때까지만 지속됩니다.
djvg

답변:


24

참고 문헌

지금까지 Bash 프롬프트에 들어갈 수있는 모든 것에 대한 단일 참조는 없었지만 수십 년에 걸쳐 진화했으며 아마도 배포판마다 다를 수있는 기능이므로 아마도 너무 많이 요구 될 수 있습니다. 여기서 가장 유용한 것을 요약하려고 노력했습니다.

이 방법 은 가장 완전하지만 매우 길고 엉망입니다. 더 유용한 섹션 중 일부 :

  • 2.42.5 은 (인쇄 가능) 이스케이프 문자를 포함하여 PS1 설정의 기본 사항을 설명합니다.
  • 3.4 절에\[그리고 \]필요한지 설명 되어 있습니다.
  • 6 장 에서는 프롬프트 색상과 xterm 창의 제목 설정을 포함하여 사용할 수있는 모든 주요 (인쇄 불가능한) 이스케이프 시퀀스를 설명합니다.

이 가이드${}일반적으로 Bash에서 작동 하는 방식을 설명하고 Ask Ubuntu 질문 은 작동 방식에 대해 조금 더 설명합니다 debian_chroot.

그 사이에 기본 Ubuntu PS1 변수의 모든 문자가 설명되어 있다고 생각합니다.

우분투 프롬프트 설명

프롬프트에는 세 부분이 있습니다.

  • \[\e]0;\u@\h: \w\a\] xterm 창의 제목 표시 줄을 설정합니다 :

    • \[ 인쇄 할 수없는 문자의 섹션을 시작합니다
    • \e]0; 'set xterm title'의 이스케이프 시퀀스입니다 (0을 제외한 숫자는 다른 xterm 속성을 설정한다고 생각하지만 테스트하지는 않았습니다)
    • \u@\h: \w사용할 제목 ( 및 \u, 아래 참조 )\h\w
    • \a 제목의 끝을 표시
    • \] 인쇄 할 수없는 문자의 끝을 표시
  • ${debian_chroot:+($debian_chroot)}$ debian_chroot가 설정된 경우 괄호 안의 $ debian_chroot 값으로 확장됩니다. $ debian_chroot에 대한 자세한 내용은 이 질문 을 참조하십시오 .
  • \u@\h:\w\$ 프롬프트 자체입니다.

    • \u 현재 사용자 이름으로 확장
    • \h 현재 호스트 이름으로 확장
    • \w 현재 작업 디렉토리로 확장
    • \$#루트 및 $다른 모든 사용자로 확장

6

에 따르면 배쉬 참조 설명서 , PS1이다 :

기본 프롬프트 문자열 기본값은 \s-\v\$입니다. 이전에 확장 된 이스케이프 시퀀스의 전체 목록 이 표시 되면 프롬프트 제어를 참조하십시오 PS1.

다른 좋은 참고 자료는 다음과 같습니다.


배쉬 설명서 완전히 PS1 이스케이프 시퀀스를 설명 gnu.org/software/bash/manual/bashref.html#Printing-a-Prompt
글렌 잭맨

@Radu-고마워요. 전보다 더 나아졌습니다. 아직도 안으로 들어갈 수 있는지에 관한 정보가 거의 것 같다 \[\]해당에 대한 참조를해야합니까 - 비록,?
Mark Raymond

@MarkRaymond 그것은 내가 당신에게 준 두 개의 링크로 설명되어 있습니다 ( Linux / Unix에 대해 설명 된 프롬프트PS1 프롬프트 인쇄 ) : \[-터미널 제어 순서를 프롬프트에 포함시키는 데 사용할 수있는 일련의 비 인쇄 문자를 시작하십시오. \]– 비 인쇄 문자 순서를 종료합니다. 그냥 시간을내
어주의

내가의 참조를 찾고 있었다 - 네, 읽었 무엇을 그 비 인쇄 문자가 않습니다. 내가 명확하지 않으면 죄송합니다!
Mark Raymond


5

ss64.com 은 내가 찾은 최고의 참조 자료를 가지고있는 것 같습니다.

다음 변수를 설명합니다.

\d   The date, in "Weekday Month Date" format (e.g., "Tue May 26"). 

\h   The hostname, up to the first . (e.g. deckard) 
\H   The hostname. (e.g. deckard.SS64.com)

\j   The number of jobs currently managed by the shell. 

\l   The basename of the shell's terminal device name. 

\s   The name of the shell, the basename of $0 (the portion following 
    the final slash). 

\t   The time, in 24-hour HH:MM:SS format. 
\T   The time, in 12-hour HH:MM:SS format. 
\@   The time, in 12-hour am/pm format. 

\u   The username of the current user. 

\v   The version of Bash (e.g., 2.00) 

\V   The release of Bash, version + patchlevel (e.g., 2.00.0) 

\w   The current working directory. 
\W   The basename of $PWD. 

\!   The history number of this command. 
\#   The command number of this command. 

\$   If you are not root, inserts a "$"; if you are root, you get a "#"  (root uid = 0) 

\nnn   The character whose ASCII code is the octal value nnn. 

\n   A newline. 
\r   A carriage return. 
\e   An escape character. 
\a   A bell character.
\\   A backslash. 

\[   Begin a sequence of non-printing characters. (like color escape sequences). This
     allows bash to calculate word wrapping correctly.

\]   End a sequence of non-printing characters.

\[ ... \]비 인쇄 문자를 연속으로 정의합니다. 커서 위치를 정확하게 추적해야합니다.

\e프롬프트 시작에서 이스케이프 시퀀스. 더 많은 사람들에 여기 (해당 페이지의 노트 "ESC"를이다 \e순서).

  • 참고 : 나는 이스케이프 시퀀스를 좋아하지 않았습니다. tput이스케이프 코드를 얻는 데 사용하십시오 .

${debian_chroot:+($debian_chroot)}매개 변수 확장입니다. 여기를 참조 하십시오

  • 그것은 쓰는 ($debian_chroot)경우 $debian_chroot그렇지 않으면 아무것도 설정되지 않습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.