Linux/Unix中的命令提示字元prompt

來源:互聯網
上載者:User
用慣了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的值所以只要簡單的把當前路徑對應的環境變數$PWD加到PS1裡就行了: 

PS1='$PWD $ ' 

sh: 
由於Bourne Shell只把PS1作為一個普通的變數,而且不支援別名,因此無 
法完美地實現DOS中相同的功能,解決的方法是重新定義一個命令(比如xcd) 
將其實現為一個函數: 

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='%~ ' # %~ 表示當前路徑 

Sample: 
Solaris中的不同做法:如何在命令列顯示目錄?
用慣了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的值所以只要簡單的把當前路徑對應的環境變數$PWD加到PS1裡就行了:
        PS1='$PWD $ '
sh:
    由於Bourne Shell只把PS1作為一個普通的變數,而且不支援別名,因此無
    法完美地實現DOS中相同的功能,解決的方法是重新定義一個命令(比如xcd)
    將其實現為一個函數:
        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='%~ '        # %~ 表示當前路徑

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.