1. 程式人生 > >Linux的Shell中echo改變輸出顯示樣式

Linux的Shell中echo改變輸出顯示樣式

有趣 名稱 一個 contex 轉義字符 nbsp 日期 第一個 margin

  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 命令試試,或者直接重啟機器。

  ********************************************************************

  有些時候,需要為Linux服務的配置截個圖,然後打印出來,結果在字符界面下就只有黑色背景,白色字體,打印出來費墨~~改改背景可能好點。

  首先要知道在linux中,一些常用的顏色代碼:(這些顏色是ANSI標準顏色)
前景色:30黑 31紅 32綠 33黃 34藍 35紫 36青 37白
背景色:40黑 41紅 42綠 43黃 44青 45藍 46青 47白

  #前景顏色各數字是對應背景顏色減去10.

  命令: echo -e "\033[background_number;foreground_numberm"
如設置白色背景黑色前景字體應該是 echo -e "\033[47;30m"

  background_number=背景色
foreground_number=前景色
m要緊跟foreground_number,沒有空格。

  (說是白色背景,黑色字體。字體顏色我同意,可背景色咋看也不像是白色呀?o(∩_∩)o...)

  \033 即退出鍵<esc>的ascii碼(27),所以上面的命令也可寫成如下形式
echo "^[[47;30m" 其中的“^[”是先按ctrl-V,然後再按<esc>鍵(就是鍵盤左上角的鍵)產生的。

  這種方法只能暫時改變一下,logout一下就沒有了。不過可以vi /root/.bashrc, 在後面加上剛才的命令。

  echo -e ‘\033[47;30m‘

  ************************************************************************

  用的是終端控制字符,比如這個,就是光標跳到第60列,然後顯示一個OK

  echo -en ‘\033[60G ‘ && echo OK

  \033[就是終端轉義字符開始,60G是命令。
echo的-e選項就是讓echo不自己處理終端轉義字符

Linux的Shell中echo改變輸出顯示樣式