쉘 프롬프트의 현재 디렉토리 약어 규칙

쉘 프롬프트의 현재 디렉토리 약어 규칙

때로는 쉘 프롬프트에서 현재 작업 디렉토리가 축약된 것으로 표시되기도 하고 그렇지 않은 경우도 있습니다.

예를 들어 또는 로 /usr/bin표시됩니다 . 다른 경우에는 완료로 표시되는 것을 보았습니다.bin$/folder1/folder2folder2$/folder1/folder2/folder1/folder2$

나는 기본 터미널 설정을 사용하고 있습니다(학습을 위해 Fedora 22 가상 머신을 사용하고 있지만 다른 배포판을 사용하는 다른 여러 튜토리얼 비디오에서도 이 사실을 발견했습니다).

어떤 규칙이 있나요?

답변1

경로를 줄이는 또 다른 방법은 쉘 변수를 \w사용하는 것 입니다. PROMPT_DIRTRIM데모:

jackman@b7q9bw1:/usr/local/share/doc $ echo "$PS1"
\u@\h:\w \$ 
jackman@b7q9bw1:/usr/local/share/doc $ pwd
/usr/local/share/doc
jackman@b7q9bw1:/usr/local/share/doc $ PROMPT_DIRTRIM=2
jackman@b7q9bw1:.../share/doc $ pwd
/usr/local/share/doc
jackman@b7q9bw1:.../share/doc $ 

답변2

기본 프롬프트에 표시되는 내용은 변수의 내용에 따라 결정됩니다 PS1. 다음은 bash 문서에서 발췌한 내용입니다.

\w     the current working  directory,  with  $HOME  abbreviated
       with  a tilde (uses the value of the PROMPT_DIRTRIM vari‐
       able)
\W     the basename of the current working directory, with $HOME
       abbreviated with a tilde

즉, 다음 을 PS1사용 \w하면\W

PS1내가 시도한 일부 임의의 Linux 기반 시스템의 기본값은 이지만 [\u@\h \W]\$이는 시스템마다 다릅니다.

답변3

이는 PS1 변수의 내용과 관련이 있습니다. 를 실행하여 PS1 변수를 확인할 수 있습니다 echo $PS1.

하나 있으면 \w전체 경로가 표시되고, 하나 있으면 \W마지막 폴더만 표시됩니다.

관련 정보