Unix使用技巧:如何讓提示符中包含當(dāng)前路徑
——
其中的一條就是把Unix的提示符設(shè)置成$p$g那樣的。下面就說一說做的方法。
不同的SHELL設(shè)置的方法不同,比較方便的是GNU bash(Bourne Again Shell)
和ksh(Korn Shell)以及tcsh(csh的增強(qiáng)版,Linux中的csh就是到tcsh的一個
符號連接)。普通的sh(Bourne Shell)和csh設(shè)置比較羅嗦。下面就一個一個的
說各種Shell的設(shè)置方法:
ksh:
由于ksh把提示符變量PS1作為一個特殊的變量看待,cd的時候ksh會自動更
新PS1的值所以只要簡單的把當(dāng)前路徑對應(yīng)的環(huán)境變量$PWD加到PS1里就行了:
PS1=’$PWD $ ’
sh:
由于Bourne Shell只把PS1作為一個普通的變量,而且不支持別名,因此無
法完美地實現(xiàn)DOS中相同的功能,解決的方法是重新定義一個命令(比如xcd)
將其實現(xiàn)為一個函數(shù):
xcd() { cd $* ; PS1="`pwd` $ "; }
然后每次用xcd切換目錄。
csh:
csh雖然不對提示符變量$prompt作特殊處理,但它支持別名,可以修改一下
cd的語義,使其自動修改提示符:
alias setprompt ’set prompt="${cwd}% "’
setprompt# to set the initial prompt
alias cd ’chdir !* && setprompt’
bash:
bash提供了一些特殊的變量來支持提示符的設(shè)置,w表示當(dāng)前路徑,并把
等同于$HOME的部分替換成~,以縮短提示符的長度。
PS1=’w $ ’
Linux中是把hostname也加上了:
PS1=’h:w $ ’ # h 表示hostname
為了更象DOS,可以把不同的命令分得更清楚,我通常加上一個換行符:
PS1=’
h:w $ ’
tcsh:
tcsh的做法類似于bash,只不過變量的名字不同:
set prompt=’%~ ’ # %~ 表示當(dāng)前路徑
評論