Mac 終端 Termial 高亮配置(PS1變量配置)
操作環境:
- 系統:Mac 10.12
- 編輯器:vim
一、無腦配置:
1. 打開中端輸入:
vi ~/.bash_profile
2. 打開並編輯 .bash_profile 文件:
按鍵盤“i”,進入編輯模式
復制如下代碼:
export CLICOLOR=1 export PS1=‘\[\033[01;33m\]\u@\h\[\033[01;31m\] \W\$\[\033[00m\] ‘
按ESC——》按“w”再按“q”——》重啟終端——》完成!
二、高級操作:
轉義字符:
上面的例子中使用了反斜杠轉義的字符序列,通知bash用特定的值替換他們,bash可識別的轉義序列有下面這些:
- \u 用戶名
- \h 主機名第一部分
- \H 主機名全稱
- \w 當前工作目錄(如 “/home/username/mywork”)
- \W 當前工作目錄的“基名 (basename)”(如 “mywork”)
- \t 24 小時制時間
- \T 12 小時制時間
- \@ 帶有 am/pm 的 12 小時制時間
- \d “Sat Dec 18″ 格式的日期
- \s shell 的名稱(如 “bash”)
- \v bash 的版本(如 2.04)
- \V Bash 版本(包括補丁級別)
- \n 換行符
- \r 回車符
- \\ 反斜杠
- \a ASCII 響鈴字符(也可以鍵入 07)
- \e ASCII 轉義字符(也可以鍵入 33)
- \[ 這個序列應該出現在不移動光標的字符序列(如顏色轉義序列)之前。它使 bash 能夠正確計算自動換行。
- \] 這個序列應該出現在非打印字符序列之後。
知道了全部的轉義序列,就可以對自己的終端提示符進行定制了。
顏色配置:
我們設計好提示符內容之後就可以給他們添加顏色,添加顏色就是添加終端(而不是 bash)可識別的專用轉義序列,以使它以彩色顯示文本的某些部分。標準 Linux 終端和 X 終端允許您設置前景(文字)顏色和背景顏色,如果需要,還可以啟用 “bold” 字符。有八種顏色可供我們選擇(用數字表示)。
- ———————
- 前景 背景 顏色
- ———————
- 30 40 黑色
- 31 41 紅色
- 32 42 綠色
- 33 43 黃色
- 34 44 藍色
- 35 45 紫紅色
- 36 46 青藍色
- 37 47 白色
- ————————
- 代碼 含義
- ————————
- 0 OFF
- 1 高亮顯示
- 4 下劃線
- 5 閃爍 #閃爍這個選項在我機子上沒反應,所以就沒有驗證,不知道是否可以哈
- 7 反白顯示
- 8 不可見
舉例:
現在我們可以依據上面的顏色表為提示符添加顏色啦:
下面的定義:
PS1=”\w> ”
變為:
PS1=”\e[32;40m\w> "
到現在為止,提示行盡管已經很不錯了,但仍不太完美。在 bash 顯示出工作目錄以後,我們需要使用 "\e[0m" 序列將顏色重新設置為正常值。
PS1="\e[32;40m\w> \e[0m"
這個定義將顯示一個漂亮的綠色提示行,但仍需要做一些掃尾工作。有時我們不需要包括 "40" 這個背景顏色設置,因為它將背景設置為黑色,而黑色是默認顏色。此外,綠色還很暗;我們通過添加一個 "1" 顏色代碼來修正這個問題,這將啟用更亮的加粗文字。除了這個修改之外,還需要將全部非打印字符用專用的 bash 轉義序列 "\[" 和 "\]” 括起來。這兩個序列通知 bash,被括起來的字符不占用行上的任何空間,這樣就使自動換行能夠繼續正常工作。沒有這兩個轉義序列,盡管我們有了一個非常漂亮的提示行,但是如果鍵入的命令恰好到達終端的最右端,就會造成顯示混亂。下面是最終的提示行:
PS1=”\[\e[32;1m\]\w> \[\e[0m\]”
我們也不用擔心在同一個提示行中使用幾種顏色,就像下面這樣(我的顏色配置):
PS1=\[\e[36;1m\]\[email protected]:\[\e[32;1m\]\w\[\e[36;1m\]> \[\e[0m\]
但是,當我們把這個配置寫入.bashrc文件後,會發現一個問題,那就是terminal的標題欄變成了一個永恒不變的“Termianl”了,這可能並不是我們希望的,默認的顯示用戶名、主機名和當前工作路徑(我比較喜歡這個默認的哈),我們可能希望把他配回來。其實配置標題欄和上面說過的配置提示符內容差不多,只是要加上:
\e]2;…\a
中間省略號就可以加我們想讓標題欄顯示的內容了。
例如我們把 ”\e]2;This is my terminal:>\a” 加進PS1變量中(當然也需要用”\["和"\]“轉義序列括起來),標題欄中就會顯示 This is my terminal:>
我比較喜歡默認的方式哈,所以我就加進去了 “\e]2;\u@\h:\w\a”,最後配置完成的結果就是:
PS1=”\[\e]2;\u@\h:\w\a\]\[\e[36;1m\]\[email protected]:\[\e[32;1m\]\w\[\e[36;1m\]> \[\e[0m\]”
Mac 終端 Termial 高亮配置(PS1變量配置)