Bash 프롬프트 형식을 변경하는 방법은 무엇입니까?

Bash 프롬프트 형식을 변경하는 방법은 무엇입니까?

내 Gnu/Linux 시스템은 Red Hat이고 xshell에서 ssh를 사용합니다. 명령 프롬프트 형식은 다음과 같습니다.

[[email protected] /home/qihang.gqh/online/h5_reco/user_level_1.0]
$vi dn_click.py

현재 작업 사전이 다음과 같이 명령 앞에 있는 또 다른 형식이 있다는 것을 기억합니다.

user_level_1.0# *****(command)

형식을 전환하는 방법은 무엇입니까?

답변1

다음은 프롬프트 환경 변수에 대한 간단한 설명입니다(bash 매뉴얼 페이지에서 가져옴).

PS0 – 이 매개변수의 값은 PS1처럼 확장되며 명령을 읽은 후 명령이 실행되기 전에 대화형 셸에 표시됩니다.

PS1 – 이 매개변수의 값은 확장되어(아래 프롬프트 참조) 기본 프롬프트 문자열로 사용됩니다. 기본값은 \s-\v\$입니다.

PS2 – 이 매개변수의 값은 PS1처럼 확장되며 보조 프롬프트 문자열로 사용됩니다. 기본값은 >

PS3 – 이 매개변수의 값은 명령 선택을 위한 프롬프트로 사용됩니다.

PS4 – 이 매개변수의 값은 PS1에서와 같이 확장되며 추적 실행 중에 각 bash 명령이 표시되기 전에 인쇄됩니다. PS4의 첫 번째 문자는 여러 수준의 간접지정을 나타내기 위해 필요한 만큼 여러 번 복사됩니다. 기본값은 +

다음은 형식에 사용할 수 있는 몇 가지 변수입니다.

\a: ASCII 벨 문자(07)

\d: "월요일" 형식의 날짜(예: "5월 26일 화요일")

\D{format}: 형식을 strftime(3)에 전달하고 결과를 프롬프트 문자열에 삽입합니다. 빈 형식은 로케일별 시간 표현을 생성합니다. 중괄호가 필요합니다

\e: ASCII 이스케이프 문자(033)

\h: 첫 번째 "." 앞의 호스트 이름

\H: CPU 이름

\j: 현재 쉘에서 관리하고 있는 작업 개수

\l: 쉘 터미널 장치 이름의 기본 이름

\n: 새로운 팀

\r: 입력하다

\s:쉘 이름, $0의 기본 이름(마지막 슬래시 다음 부분)

\t: 24시간 형식의 현재 시간 HH:MM:SS

\T: 12시간 형식의 현재 시간(HH:MM:SS)

\@:현재 시간(오전/오후 12시간 형식)

\A: 24시간 형식 HH:MM의 현재 시간

\u: 현재 사용자의 사용자 이름

\v: bash 버전(예: 2.00)

\V: bash 릴리스, 버전 + 패치 수준(예: 2.00.0)

\w: 현재 작업 디렉터리, $HOME은 물결표로 축약됩니다.

\W: 현재 작업 디렉터리의 기본 이름인 $HOME은 물결표로 축약됩니다.

\!: 명령의 과거 번호

\#: 명령의 명령 번호

\$: # 유효 UID가 0이면 $, 그렇지 않으면

\nnn: 8진수 nnn에 해당하는 문자

\\: 백슬래시

\[: 터미널 제어 시퀀스를 프롬프트에 포함하는 데 사용할 수 있는 비인쇄 문자 시퀀스를 시작합니다.

\]: 인쇄되지 않는 문자 시퀀스를 종료합니다.

그래서: 간단한 예

PS1= "\h:\! \w \$"

bash를 볼 수 있는 추가 정보를 작성하세요.남성페이지

답변2

(현재 디렉토리의 마지막 부분) 다음에 파운드 기호를 보려면 다음을 사용할 수 있습니다.

PS1='\W# '

.bashrc이 줄을 홈 디렉터리의 파일에 넣으세요.

#루트가 아닌 프롬프트에서 사용 하지 말라고 경고하고 싶지만 , >루트가 아닌 프롬프트 문자열과 루트 프롬프트에서 이와 유사한 것을 사용하는 것이 관례이기 때문입니다.$#

인용하다:Bash 쉘 프롬프트

관련 정보