Linux Shell的輸入彩色字型

derekzhan發表於2010-08-23

echo -e "\033[32;49;1m [DONE] \033[39;49;0m"
輸出結果
     :
[DONE]

###########################

文字終端的顏色可以使用“ANSI非常規字元序列”來生成。舉例:

  echo -e "\033[44;37;5m ME \033[0m COOL"

以上命令設定背景成為藍色,前景白色,閃爍游標,輸出字元“ME”,然後重新設定螢幕到預設設定,輸出字元 “COOL”。“e”是命令 echo 的一個可選項,它用於啟用特殊字元的解析器。“\033”引導非常規字元序列。“m”意味著設定屬性然後結束非常規字元序列,這個例子裡真正有效的字元是 “44;37;5” 和“0”。

修改“44;37;5”可以生成不同顏色的組合,數值和編碼的前後順序沒有關係。可以選擇的編碼如下所示:

編碼    顏色/動作
0       重新設定屬性到預設設定
1       設定粗體
2       設定一半亮度(模擬彩色顯示器的顏色)
4       設定下劃線(模擬彩色顯示器的顏色)
5       設定閃爍
7       設定反向圖象
22      設定一般密度
24      關閉下劃線
25      關閉閃爍
27      關閉反向圖象
30      設定黑色前景
31      設定紅色前景
32      設定綠色前景
33      設定棕色前景
34      設定藍色前景
35      設定紫色前景
36      設定青色前景
37      設定白色前景
38      在預設的前景顏色上設定下劃線
39      在預設的前景顏色上關閉下劃線
40      設定黑色背景
41      設定紅色背景
42      設定綠色背景
43      設定棕色背景
44      設定藍色背景
45      設定紫色背景
46      設定青色背景
47      設定白色背景
49      設定預設黑色背景

 

其他有趣的程式碼還有:

\033[2J          清除螢幕
\033[0q          關閉所有的鍵盤指示燈
\033[1q          設定“滾動鎖定”指示燈 (Scroll Lock)
\033[2q          設定“數值鎖定”指示燈 (Num Lock)
\033[3q          設定“大寫鎖定”指示燈 (Caps Lock)
\033[15:40H     把關閉移動到第15行,40列
\007              發蜂鳴生beep

#######################

RedHat的字型和背景顏色的改變方法:

命令:
PS1="[\e[32;1m\u@\h \W]\\$"

export PS1="[\e[32;1m\u@\h \W]\\$" 兩者的區別請檢視環境變數的相關資料

解釋:

\e[32;1m:這就是控制字型和背景顏色的轉義字元,30~37是字型顏色、40~47是背景顏色

例子中的32;1m數字的位置是可以對調的如\e[1;32m,如果是在X環境下可以更換一下1的範圍0~10,可能有的沒用處:0或者不寫(\e [0;32m或\e[;32m)顯示淺顏色,1:顯示高亮 4:加下劃線.....如果改後的效果不好,但是又還原不了,那就不寫m前面的數字,如\e[32;m,或者直接登出再登陸

\u \h \W:這是一些轉義字元,下面詳細解釋:

\d :代表日期,格式為weekday month date,例如:"Mon Aug 1"

\H :完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux

\h :僅取主機的第一個名字,如上例,則為fc4,.linux則被省略

\t :顯示時間為24小時格式,如:HH:MM:SS

\T :顯示時間為12小時格式

\A :顯示時間為24小時格式:HH:MM

\u :當前使用者的賬號名稱

\v :BASH的版本資訊

\w :完整的工作目錄名稱。家目錄會以 ~代替

\W :利用basename取得工作目錄名稱,所以只會列出最後一個目錄

\# :下達的第幾個命令

\$ :提示字元,如果是root時,提示符為:# ,普通使用者則為:$

\n :新建一行

字型並不侷限於一個顏色,可以有多個顏色:
PS1="[\e[32;1m\u@\e[35;1m\h \e[31;1m\W]\\$"

以上兩個命令在登出後再登陸就失效了,用下面方法使其永久生效:
vi /etc/profile
在“export PATH .....”下面新增一行:export PS1="[\e[32;1m\u@\h \W]\\$"
登出再登陸,就成功了,如果沒生效,使用source /etc/profile 命令試試,或者直接重啟機器。

相關文章