Linux終端命令列提示符的藝術--PS1進階 話不多說,先瞅瞅我的命令列提示符(有點大): 圖中命令列解釋:┌[陽曆日期/農曆日期 時間]├[目前的目錄下目錄數+目前的目錄下檔案數][當前絕對目錄]└[使用者名稱@主機名稱-第幾個終端 ╰_╯] 相關設定檔 全域設定檔:/etc/bash.bashrc或者/ect/bashrc 單使用者設定檔:“~”目錄下的.bashrc隱藏檔案 代碼 對應於中的代碼如下(添加位置一般將原有的PS1覆蓋為準,即可以在原有的PS1上修改,也可以直接添加到設定檔的最後): get_ps1(){Date=$(date +%F) Time=$(date -R | cut -c 18-25 |sed 's/,//') Lunar=$(lunar `date +%Y\ %m\ %d` |grep '^Lunar\ :' |awk '{print $3}' |sed 's/^.....\(.*\)..$/\1/') dn=$(ls -l | grep ^d | wc -l);fn=$(expr $(ls | wc -l) - ${dn}) Num=$(echo $Lunar|wc -m)[ "$Num" = "5" ] && space=' '[ "$Num" = "4" ] && space=' ' PS1="\342\224\214[\[\e[01;32m\]${Date}/${Lunar} ${space}${Time}\[\e[00m\]]\n\\342\224\234[\[\e[01;34m\]${dn}\[\e[00m\]+${fn}][\[\e[01;34m\]\w\[\e[00m\]]\n\\342\224\224[${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u@\h-\l \[\e[00m\]\342\225\260\137\342\225\257]\$"}PROMPT_COMMAND=get_ps1 如果你覺的上面的命令列提示符太複雜,你也可以將它縮減。。。 你需要瞭解的 如果你想設計一個自己喜歡的並且夠炫的命令列提示符,你首先要瞭解以下一些東西。 1)裡面涉及到了農曆日期,在Ubuntu 12.04 LTS中可以從源中找到lunar軟體包,但在Fedora和CentOS中並沒有,為此我寫了一個陽曆轉農曆的shell指令碼,具體可以參見我的Linux shell實現陽曆轉農曆 http://www.bkjia.com/os/201307/228131.html。 2)轉義符及顏色。這個我就不再羅嗦了,google一下“Linux 命令列 顏色”會有很多答案的。 3)PROMPT_COMMAND,這個是即時命令列的關鍵,這個變數的內容會在顯示bash提示符前執行,所以上面用到的即時內容需要它。 4)特殊字元顯示不了怎麼辦?你可以將它轉換為字元編碼,可以在http://0xcc.net/jsescape/進行轉義,在Plain text欄輸入你要轉義的字元,在\OOO欄就是你想要的字元編碼。