新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > Unix使用技巧:如何讓提示符中包含當前路徑

Unix使用技巧:如何讓提示符中包含當前路徑

——
作者: 時間:2006-03-25 來源: 收藏
    用慣了DOS的伙計剛用Unix時最想干的事情就是想把Unix搞得像DOS一些,
其中的一條就是把Unix的提示符設置成$p$g那樣的。下面就說一說做的方法。
 
    不同的SHELL設置的方法不同,比較方便的是GNU bash(Bourne Again Shell)
和ksh(Korn Shell)以及tcsh(csh的增強版,Linux中的csh就是到tcsh的一個
符號連接)。普通的sh(Bourne Shell)和csh設置比較羅嗦。下面就一個一個的
說各種Shell的設置方法:
 
ksh:
    由于ksh把提示符變量PS1作為一個特殊的變量看待,cd的時候ksh會自動更
    新PS1的值所以只要簡單的把當前路徑對應的環(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提供了一些特殊的變量來支持提示符的設置,w表示當前路徑,并把
    等同于$HOME的部分替換成~,以縮短提示符的長度。
 
        PS1=’w $ ’
 
    Linux中是把hostname也加上了:


        PS1=’h:w $ ’          # h 表示hostname
 
    為了更象DOS,可以把不同的命令分得更清楚,我通常加上一個換行符:
 
        PS1=’
        h:w $ ’
 
tcsh:
    tcsh的做法類似于bash,只不過變量的名字不同:
 
        set prompt=’%~ ’        # %~ 表示當前路徑



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉