如何調教你的終端提示符?

  • 2020 年 3 月 31 日
  • 筆記

bashrc配置

每次我們登錄一個shell終端的時候,前面都有一些固定的顯示信息:

root@ubuntu:#  

這些顯示信息其實可以配置的。

我們打開用戶家目錄下的.bashrc文件,找到類似下面的關於PS1的內容:

if [ "$color_prompt" = yes ]; then      PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]W[33[00m]$ '  else      PS1='${debian_chroot:+($debian_chroot)}u@h:W$ '  fi  

這裡就是用來配置你的終端顯示的了。

有必要對裏面的一些信息進行解釋。例如[33[01;32m]中,01為前景色,32為背景色,顏色代碼如下:

前景色 背景色  30      40      黑色  31      41      紅色  32      42      綠色  33      43      黃色  34      44      藍色  35      45      紫紅色  36      46      青藍色  37      47      白色  

舉個例子:

$ echo -e "33[31m red color 33[0m"   red color  

而其他的符號什麼意思呢?

d :代表日期,  H :完整的主機名稱  h :僅取主機的第一個名字  t :顯示時間為24小時格式,如:HH:MM:SS  T :顯示時間為12小時格式  A :顯示時間為24小時格式:HH:MM  u :用戶名  v :BASH的版本信息  w :完整的工作目錄名稱  W :列出最後一個目錄  $ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$  

所以說白了,就是根據你自己的需要配置自己終端想要的信息。

這個時候我們再來看前面的其中一條簡單的配置:

'${debian_chroot:+($debian_chroot)}u@h:W$ '  

$debian_chroot這裡我們可以忽略,因為它是一個變量的值,我們完全可以自定義。 可以看到這裡有:

u 用戶名  h 主機名  W 最後一個目錄名  $ 提示字符  

而通過命令獲取的相關內容分別為:

$ whoami  root  $ hostname  ubuntu  $ basename `pwd`  公眾號編程珠璣  

所以我的終端最終顯示的是:

root@ubuntu:公眾號編程珠璣#  

通常來說,默認的配置就可以了,經常需要改動的可能就是默認它顯示了全路徑,這裡只需要將

w 替換為 W  

即可。

然後執行命令:

source ~/.bashrc  

讓配置生效即可。

再來梳理一下過程:

  • 根據需要修改PS1顯示項
  • 執行source .bashrc使其生效

這裡注意,Linux啟動過程中,配置文件加載是有順序的, 某用戶家目錄下的bashrc隻影響當前用戶,如果想要全系統修改生效,可以修改/etc/bash.bashrc(系統差異,可能不一樣)。

如何顯示當前git分支

其實到這裡你應該基本上已經明白了,無非就是將git當前分支的信息配置在PS1中罷了。

如何獲取當前git分支

我們都知道:

$ git branch    master  * testBranch  

可以查看分支信息,其中前面有*的表示當前所在分支,所以我們通過字符處理拿到即可。 或者直接通過命令:

$ git rev-parse --abbrev-ref HEAD  testBranch  

拿到。

將分支信息配置在PS1中

考慮到有的目錄下可能並不存在git項目,所以需要做是否為空的判斷,也要注意處理標準錯誤。因此將獲取git分支信息的部分寫成一個shell函數:

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文件結尾中,然後修改PS1的內容:

PS1='${debian_chroot:+($debian_chroot)}u@h:W$(git_branch)$ '  PS1='${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]W$(git_branch)[33[00m]$ '  

修改完成後保存,執行:

$ source ~/.bashrc  

當前裏面的顏色你可以根據自己的需要自定義。再來看看之前的效果,是不是覺得沒那麼難配置了?

總結

實際上就是根據自己的需要去配置終端顯示罷了,可以自己選擇顏色,變量內容等等。