<s id="2e0qm"><div id="2e0qm"></div></s>
<div id="2e0qm"><button id="2e0qm"></button></div>
<small id="2e0qm"></small>
<div id="2e0qm"></div>
<div id="2e0qm"><s id="2e0qm"></s></div>
<div id="2e0qm"><button id="2e0qm"></button></div>
主頁 > 知識庫 > 服務器 > Linux/BSD >

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

來源:中國IT實驗室 作者:佚名 發表于:2013-07-17 14:15  點擊:
話不多說,先瞅瞅我的命令行提示符(有點大): 圖中命令行解釋: ┌[陽歷日期/農歷日期 時間] ├[當前目錄下目錄數+當前目錄下文件數][當前絕對目錄] └[用戶名@主機名-第幾個終端 ╰_╯] 相關配置文件 全局配置文件:/etc/bash.bashrc或者/ect/bashrc 單用
話不多說,先瞅瞅我的命令行提示符(有點大):
    
   
    
   圖中命令行解釋:
   ┌[陽歷日期/農歷日期 時間]
   ├[當前目錄下目錄數+當前目錄下文件數][當前絕對目錄]
   └[用戶名@主機名-第幾個終端 ╰_╯]
   
   相關配置文件
   
   全局配置文件:/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實現陽歷轉農歷
   
   2)轉義符及顏色。這個我就不再羅嗦了,google一下“Linux 命令行 顏色”會有很多答案的。
   
   3)PROMPT_COMMAND,這個是實時命令行的關鍵,這個變量的內容會在顯示bash提示符前執行,所以上面用到的實時內容需要它。
   
   4)特殊字符顯示不了怎么辦?你可以將它轉換為字符編碼,可以在http://0xcc.net/jsescape/進行轉義,在Plain text欄輸入你要轉義的字符,在\OOO欄就是你想要的字符編碼。

    有幫助
    (0)
    0%
    沒幫助
    (0)
    0%
    真人女荫道口100种图片
    <s id="2e0qm"><div id="2e0qm"></div></s>
    <div id="2e0qm"><button id="2e0qm"></button></div>
    <small id="2e0qm"></small>
    <div id="2e0qm"></div>
    <div id="2e0qm"><s id="2e0qm"></s></div>
    <div id="2e0qm"><button id="2e0qm"></button></div>