返回列表 回復 發帖

Mac: 讓終端彩色化

在bash中,可以通過更改PS1環境變量的值來設置提示行。通常的提示符顏色單調,用戶可以通過在PS1中添加顏色代碼序列來設置提示符中不同信息以不同顏色顯示。

    添加顏色相當容易;第一步是設計不帶顏色的提示行。然後,我們所要做的只是添加終端(而不是bash)可識別的專用轉義序列,以使它以彩色顯示文本的某些部分。標準Linux終端和X終端允許用戶設置前景(文字)顏色和背景顏色,如果需要,還可以啟用"bold"字符。有八種顏色可供我們選擇。

    顏色是通過在PS1中添加專用序列來選擇的--基本上是夾在"e["(轉義開方括號)和"m"之間數字值。如果指定一個以上的數字代碼,則用分號將它們分開。

    下面是一個顏色代碼示例:
        "e[0m"

    如果將數字代碼指定為零,則它就會通知終端將前景、背景和加粗設置重置為它們的默認值。您可能會在提示行結束時使用這個代碼,以使您鍵入的文字成為非彩色的。現在,讓我們看一下這些顏色代碼。


顏色表

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


  代碼              意義
   -------------------------
   0                 OFF
   1                 高亮顯示
   4                 underline
   5                 閃爍
   7                 反白顯示
   8                 不可見


    要使用這個表,首先請查找您要使用的顏色,然後查找對應的前景編號(30-37)和背景編號(40-47)。例如,如果您喜歡黑底綠字,則可將編號分別設為32和40。然後打開您的提示行定義並在其中添加適當的顏色代碼。下面的定義:
        export PS1="w>; "
     變為:
        export PS1="e[32;40mw>; "

    到現在為止,提示行儘管已經很不錯了,但仍不太完美。在bash顯示出工作目錄以後,我們需要使用"e[0m"序列將顏色重新設置為正常值。
        export PS1="e[32;40mw>; e[0m"

    這個定義將顯示一個漂亮的綠色提示行,但我們仍需要做一些掃尾工作。我們不需要包括"40"這個背景顏色設置,因為它將背景設置為黑色,而黑色是默認顏色。此外,綠色還很暗;我們通過添加一個"1"顏色代碼來修正這個問題,這將啟用更亮的加粗文字。

    除了這個修改之外,我們還需要將全部非打印字符用專用的bash轉義序列"["和"]"括起來。這兩個序列通知bash,被括起來的字符不佔用行上的任何空間,這樣就使自動換行能夠繼續正常工作。沒有這兩個轉義序列,儘管您有了一個非常漂亮的提示行,但是如果您鍵入的命令恰好到達終端的最右端,就會造成顯示混亂。

    下面是我們最終的提示行:
        export PS1="[e[32;1m]w>; [e[0m]"

    別擔心在同一個提示行中使用幾種顏色,就像下面這樣:
        export PS1="[e[36;1m]u@[e[32;1m]H>; [e[0m]"
返回列表