歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux終端命令行提示符的藝術--PS1進階

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.2cto.com/os/201307/228131.html。   2)轉義符及顏色。這個我就不再羅嗦了,google一下“Linux 命令行 顏色”會有很多答案的。   3)PROMPT_COMMAND,這個是實時命令行的關鍵,這個變量的內容會在顯示bash提示符前執行,所以上面用到的實時內容需要它。   4)特殊字符顯示不了怎麼辦?你可以將它轉換為字符編碼,可以在http://0xcc.net/jsescape/進行轉義,在Plain text欄輸入你要轉義的字符,在\OOO欄就是你想要的字符編碼。
Copyright © Linux教程網 All Rights Reserved