명령 줄 (bash) 프롬프트를 줄이려면 어떻게해야합니까?


답변:


241

현재 터미널 인스턴스에 대해서만 변경하려면

그냥 입력 PS1='\u:\W\$ '하고 Enter를 누르십시오.


"영구적으로"변경하려면

당신의에서 ~/.bashrc, 다음 섹션을 찾을 수 있습니다 :

[ "$ color_prompt"= 예] 인 경우; 그때
    PS1 = '$ {debian_chroot : + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \] : \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
그밖에
    PS1 = '$ {debian_chroot : + ($ debian_chroot)} \ u @ \ h : \ w \ $'
fi

를 제거하고 대문자로 바꾸면 @\h다음 \w과 같이 \W됩니다.

[ "$ color_prompt"= 예] 인 경우; 그때
    PS1 = '$ {debian_chroot : + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \] : \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
그밖에
    PS1 = '$ {debian_chroot : + ($ debian_chroot)} \ u : \ W \ $'
fi

터미널을 저장, 종료, 닫은 후 다른 터미널을 시작하여 결과를보십시오.


더 많은 옵션!

  • 더 많은 옵션과 함께 더 광범위한 하우투를 보려면 여기 를 참조 하십시오
  • 디렉토리 구조가 깊을 때만 단축이 발생하도록 프롬프트를 설정하기 위해 작은 Python 스크립트를 사용하려면 이 답변 을 참조하십시오 .

1
또한 많은 정보를 얻을 수 있습니다 ... 그리고 unix.stackexchange.com/q/88780/10043
Michael Durrant

이것을 세계화하는 방법이 있습니까? 다시 말해서, 다른 사용자에게 sudo 인 경우이 설정을 계속 수행하지만 본인 만 사용할 수 있습니까?
ctote

나는 이후로 전환 한 리눅스와 OSX 모두에서 작동하는 공유의 .bashrc가하기 위해 unix.stackexchange.com/a/127800/10043
마이클 듀런트

즉, HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>'
Michael Durrant

그러나 실제 코드 사용에 대한 답변을 참조하십시오.
마이클 Durrant

104

현재 터미널에서이 코드를 실행하십시오.

PROMPT_DIRTRIM=3

이제 bash 프롬프트는 마지막 3 개의 디렉토리 이름 만 표시합니다. 1을 선택하여 현재 디렉토리 만 표시 할 수 있습니다. 자세한 내용은 GNU 설명서를 참조하십시오 .

그 효과:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

영구적으로 만들려면 ~/.bashrc처음에 다음 줄을 추가하십시오 .

PROMPT_DIRTRIM=3

또는 0보다 큰 다른 숫자.


7
참고 사항 : Bash 4가 필요합니다.
Stefan Lasiewski 2016 년

니스 ... 나는 ( promptdir() { PROMPT_DIRTRIM=$1; }쉬운) 라이브를 더 쉽게하기
위해이

18

이것이 내가 선호하는 프롬프트 설정입니다.

에 추가 ~/.bashrc

PS1='[\u@\h \W]\$ '    

다음과 같이 보입니다 :

[user@hostname dirname]$

( $표지 뒤에 공백이 있음 )


각 단어 사이에 공백을 어떻게 추가합니까? 또한 색칠해도 되나요?
Daniel Springer

6

개인적으로 나는 bash 프롬프트에서 현재 폴더 만 보는 것을 선호합니다. 다음 명령 으로이 작업을 수행 할 수 있습니다.

PS1='\W\$ '

각 시작 후에 적용하려면 ~ / .bashrc에 위 명령을 추가하십시오.


1

나는 이것이 매우 오래되었다는 것을 알고 있지만 아무도 별칭을 만들 것을 제안하지 않았기 때문에 내가 게시 할 것이라고 생각했습니다. Bash Prompt Escape Sequences를 사용 하여 별칭을 만들었습니다.shorten

에서 ~/.bash_aliases여기에 당신은 당신이 생략하거나 Lite 버전 호출 할 때 나는 또한 터미널을 취소 기본 설정에 따라 변경할 수있는 프롬프트 색상을 설정 $ 블루 VAR을 알 수 있습니다.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

OP의 원하는 프롬프트 문자열을 얻으려면

alias shorten='PS1="$USER:\W$ "'

https://wiki.archlinux.org/index.php/Color_Bash_Prompt 에서 ~/.bashrc복사하여 붙여 넣은 색상을 정의했습니다 . 사이드 코드에는 ANSI 코드 색상이 무엇입니까? 나는 그것을보고 혼란스러워합니다.

Blue='\e[0;34m'         # Blue

이것에 대한 단계별 가이드는 .bash_aliases에 도착하는 방법을 모르기 때문에 매우 유용합니다. 감사합니다
Kayote

2
"." 접두사는 숨겨진 디렉토리 또는 파일을 나타냅니다. 물결표 "~"는 $ HOME 변수의 짧은 형식입니다. 따라서 "~ / .bash_aliases"는 "/home/$USER/.bash_aliases"의 짧은 형식입니다. ".bash_aliases"를 열려면 터미널을 열고 "gedit /home/$USER/.bash_aliases"또는 "gedit ~ / .bash_aliases"를 입력하거나 홈 디렉토리에 ctrl-h를 입력하여 숨겨진 파일을 표시하고 파일을 직접여십시오. . 희망이 도움이됩니다. 유용한 별칭을 Google에서 검색 할 수도 있습니다.
Allie Carver

0

나는 함수 쓴 당신은 당신의 요구에 맞게 수정할 수 있습니다 :

function termprompt() {
    PS1="${PS1//@\\h/}"     # Remove @host
    PS1="${PS1//\\w/\\W}"   # Change from full directory to last name
}

선이 완전히 계산 된 후이 함수를 맨 아래 또는 맨 아래에 배치 ~/.bashrc하십시오 PS1.

당신은 당신이 termprompt당신의 프롬프트를 단축하거나 영구성을 위해 termprompt바닥에서 전화 할 때마다 입력 합니다 ~/.bashrc.

다른 많은 답변에 비해이 기술의 장점은 네 가지 방식 (xterm + no-color, xterm + color, no-xterm + no-color, no-xterm + color)으로 .bashrc설정할 수 있다는 것 PS1입니다. 이 답변은 현재 네 가지 방법과 아마도 미래의 방법을 모두 지원합니다.

또 다른 장점은이 방법이 변경을 삽입하기 위해 통과해야하는 제어 코드가 덜 복잡하다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.