Bash | 自定義命令行提示符

命令行提示符.png

為什么別人的命令行提示符都是辣么酷!辣么吊!辣么漂亮!
為什么我裝完機(jī)之后,命令行提示符只是簡單的一個“$”或“#”?
怎樣才能把我的命令行提示符也弄的實用(裝13)點(diǎn)?

命令行提示符可以自定義,用$PS1變量實現(xiàn)。
比如:

export PS1="\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[33;44m\]\h\[\e[m\]\[\e[32m\]\W\[\e[m\] "

就可以實現(xiàn)上圖那樣的提示符樣式。
甚至可以在進(jìn)入Git目錄的時候,自動顯示分支記錄。比如我的是這樣的:

命令行提示符-Git-status.png

)
代碼如下(不用記,待會兒告訴您怎么找):

# get current branch in git repo
function parse_git_branch() {
    BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
    if [ ! "${BRANCH}" == "" ]
    then
        STAT=`parse_git_dirty`
        echo "[${BRANCH}${STAT}]"
    else
        echo ""
    fi
}

# get current status of git repo
function parse_git_dirty {
    status=`git status 2>&1 | tee`
    dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
    untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
    ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
    newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
    renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
    deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
    bits=''
    if [ "${renamed}" == "0" ]; then
        bits=">${bits}"
    fi
    if [ "${ahead}" == "0" ]; then
        bits="*${bits}"
    fi
    if [ "${newfile}" == "0" ]; then
        bits="+${bits}"
    fi
    if [ "${untracked}" == "0" ]; then
        bits="?${bits}"
    fi
    if [ "${deleted}" == "0" ]; then
        bits="x${bits}"
    fi
    if [ "${dirty}" == "0" ]; then
        bits="!${bits}"
    fi
    if [ ! "${bits}" == "" ]; then
        echo " ${bits}"
    else
        echo ""
    fi
}

export PS1="\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[33;44m\]\h\[\e[m\]\[\e[32m\]\W\[\e[m\]\[\e[33m\]\`parse_git_branch\`\[\e[m\] "

自定義命令行提示符自助網(wǎng)站.png

網(wǎng)址
對照網(wǎng)站上的提示,一步步操作,還可以預(yù)覽。滿意之后,把文本框中的代碼全部復(fù)制粘貼到自己電腦上的~/.bash文件。
source ~/.bashrc
還可以再參考一下這篇文章:
Linux Bash 提示符的一些騷操作
在 Linux 上自定義 bash 命令提示符

其中代碼部分版權(quán)歸原網(wǎng)站作者所有。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,744評論 0 5
  • 2017年8月14日,如是家人蓮花遍智,種種子第14天 發(fā)心:我今不僅僅是為了我個人而聞思修,更是為了六道輪回一切...
    吳宗澤閱讀 335評論 0 0
  • Rx指的是ReactiveX,也是Reactive Extensions的縮寫,是一個使用可觀察數(shù)據(jù)流進(jìn)行異步編程...
    肖賽Soaic閱讀 1,463評論 6 25
  • 今天是周六,上座率比平常高一些?;顒拥男Ч皇呛苊黠@?;顒恿Χ韧Υ蟮?,還是宣傳不到位!今天上午去發(fā)了一圈宣傳單。目...
    樂平朝天門閱讀 73評論 0 0

友情鏈接更多精彩內(nèi)容