新聞中心
之前有讀者問到,如何在終端顯示當(dāng)前的git分支,實際上這就是自定義終端顯示配置了。不過在直接介紹如何顯示當(dāng)前分支之前,來看看到底怎么回事。

不過在直接介紹如何顯示當(dāng)前分支之前,來看看到底怎么回事。
bashrc配置
每次我們登錄一個shell終端的時候,前面都有一些固定的顯示信息:
root@ubuntu:#
這些顯示信息其實可以配置的。 我們打開用戶家目錄下的.bashrc文件,找到類似下面的關(guān)于PS1的內(nèi)容:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
fi
這里就是用來配置你的終端顯示的了。 舉個例子:
$ echo -e "\033[31m red color \033[0m"
red color
如何自定義終端顯示配置如何自定義終端顯示配置
而其他的符號什么意思呢?
\d :代表日期,
\H :完整的主機名稱
\h :僅取主機的第一個名字
\t :顯示時間為24小時格式,如:HH:MM:SS
\T :顯示時間為12小時格式
\A :顯示時間為24小時格式:HH:MM
\u :用戶名
\v :BASH的版本信息
\w :完整的工作目錄名稱
\W :列出最后一個目錄
\$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$
所以說白了,就是根據(jù)你自己的需要配置自己終端想要的信息。
這個時候我們再來看前面的其中一條簡單的配置:
'${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
$debian_chroot這里我們可以忽略,因為它是一個變量的值,我們完全可以自定義。
可以看到這里有:
\u 用戶名
\h 主機名
\W 最后一個目錄名
\$ 提示字符
而通過命令獲取的相關(guān)內(nèi)容分別為:
$ whoami
root
$ hostname
ubuntu
$ basename `pwd`
公眾號編程珠璣
所以我的終端最終顯示的是:
root@ubuntu:公眾號編程珠璣#
通常來說,默認的配置就可以了,經(jīng)常需要改動的可能就是默認它顯示了全路徑,這里只需要將\w 替換為 \W即可。
然后執(zhí)行命令:
source ~/.bashrc
讓配置生效即可。
再來梳理一下過程:
-
根據(jù)需要修改PS1顯示項
-
執(zhí)行source .bashrc使其生效
這里注意,Linux啟動過程中,配置文件加載是有順序的,
某用戶家目錄下的bashrc只影響當(dāng)前用戶,如果想要全系統(tǒng)修改生效,可以修改/etc/bash.bashrc(系統(tǒng)差異,可能不一樣)。
如何顯示當(dāng)前git分支
其實到這里你應(yīng)該基本上已經(jīng)明白了,無非就是將git當(dāng)前分支的信息配置在PS1中罷了。
如何獲取當(dāng)前git分支
我們都知道:
$ git branch
master
* testBranch
可以查看分支信息,其中前面有*的表示當(dāng)前所在分支,所以我們通過字符處理拿到即可。
或者直接通過命令:
$ git rev-parse --abbrev-ref HEAD
testBranch
拿到。
將分支信息配置在PS1中
考慮到有的目錄下可能并不存在git項目,所以需要做是否為空的判斷,也要注意處理標(biāo)準錯誤。因此將獲取git分支信息的部分寫成一個shell函數(shù):
git_branch()
{
branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
if [ "${branch}" != "" ]
then
if [ "${branch}" = "(no branch)" ]
then
branch="(`git rev-parse --short HEAD`...)"
fi
echo "($branch)"
fi
}
將其加入到.bashrc文件結(jié)尾中,然后修改PS1的內(nèi)容:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W$(git_branch)\$ '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W$(git_branch)\[\033[00m\]\$ '
修改完成后保存,執(zhí)行:
$ source ~/.bashrc
當(dāng)前里面的顏色你可以根據(jù)自己的需要自定義。再來看看之前的效果,是不是覺得沒那么難配置了?
總結(jié)
實際上就是根據(jù)自己的需要去配置終端顯示罷了,可以自己選擇顏色,變量內(nèi)容等等。
當(dāng)前文章:用戶自定義終端顯示配置
標(biāo)題URL:http://www.dlmjj.cn/article/dhgodii.html


咨詢
建站咨詢
