터미널에 표시되는 현재 디렉터리 경로를 어떻게 단축할 수 있나요?

터미널에 표시되는 현재 디렉터리 경로를 어떻게 단축할 수 있나요?

내가 깊은 디렉토리에 있다면 다음과 같이 말할 수 있습니다.

~/Desktop/Dropbox/School/2017/C/A3/

그런 다음 터미널을 열면 다음과 같이 표시됩니다.

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

그런 다음 주문을 적습니다. 이것은 매우 길며 터미널에 쓰는 모든 줄은 다음 줄로 이동합니다. 현재 디렉토리만 표시하도록 하는 방법이 있는지 궁금합니다. 나는 그것을 보여주고 싶다 :

bob@bob-ubuntu: A3/$

그렇게 하면 명확하고 항상 pwd전체 디렉토리를 볼 수 있습니다. 너무 많은 공간을 차지하기 때문에 전체 디렉토리가 터미널에 표시되는 것을 원하지 않습니다.

답변1

Bash 4부터 명령줄에서 디렉터리 깊이를 줄이는 것은 PROMPT_DIRTRIM파일 .bashrc. 터미널을 다시 여는 것을 잊지 마세요.

PROMPT_DIRTRIM=1

보다배쉬 매뉴얼더 많은 정보를 알고 싶습니다.

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

으로 정리될 것이다

bob@bob-ubuntu:.../A3/$

답변2

PS1셸 시작 파일(아마도 )을 수정해야 합니다 .bashrc.

이미 존재하는 경우 해당 설정이 포함되며 \w이것이 작업 디렉터리가 됩니다. \W(대문자) 로 변경하세요 . 파일의 행은 bashrc다음과 같습니다.

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '

로그아웃했다가 다시 로그인하거나 다음을 수행하십시오.

. .bashrc

또는 (다른 디렉토리에 있는 경우 접두사 "~/"를 추가해야 함)

source ~/.bashrc

(또는 귀하의 파일이 무엇이든).

존재하지 않는 경우 다음을 추가합니다.

PS1='\u@\h: \W:\$'

.bashrc무엇이든 . 더 많은 아이디어를 보려면 PS1매뉴얼 페이지를 확인하십시오 bash.

및 와 bash같은 여러 초기화 파일을 사용할 수 있으므로 시스템 전체에 설정 될 수 있습니다 . 하지만 자신의 파일 중 하나에서 이를 재정의할 수 있습니다..bashrc.bash_profilePS1

답변3

이는 sh모든 쉘에서 이식 가능합니다.

PS1셸 에 할당된 시작 파일 중 하나:

PS1='${PWD##*/} $ '

프롬프트는 다음과 유사합니다.

dir $

dir현재 디렉터리의 기본 이름은 어디에 있습니까?

$PWD변수는 현재 디렉터리 경로를 포함하며 ${PWD##*/}마지막 디렉터리까지 포함하여 해당 경로의 모든 항목을 삭제합니다./

작은따옴표는 쉘 형식이 할당 시 변수 대체( $PS1프롬프트가 표시될 때마다 평가되는 값)를 평가하는 것을 방지합니다.

PS1이 변수는 현재 셸에서만 사용되므로 내보내면 안 됩니다.

답변4

zsh프롬프트 문자열 에서 로 변경 하거나 로 변경하는 것과 %~같이 현재 작업 디렉터리로 확장합니다 . 그러나 다음과 같이 경로의 마지막 2개 구성 요소로 제한 하도록 변경할 수 있습니다 .$HOME~/home/user~usertcsh%2~

$ PS1='%n@%m:%2~$ '
me@here:~/bin$ cd /usr/local/share/man/man1
me@here:man/man1$

또는 를 사용하여 확장이 20개 열을 초과하지 않는지 %20<…<%~%<<확인 하고 잘림을 표시하도록 표시할 수 있습니다(있는 경우).%~

me@here:man/man1$ PS1='%n@%m:%20<…<%~%<<$ '
me@here:…ocal/share/man/man1$

관련 정보