shell中使用echo命令改变输出显示样式
文本終端的顏色可以使用“ANSI非常規(guī)字符序列”來生成。舉例:
echo?-e?"\033[44;37;5m?ME?\033[0m?COOL"
以上命令設(shè)置背景成為藍(lán)色,前景白色,閃爍光標(biāo),輸出字符“ME”,然后重新設(shè)置屏幕到缺省設(shè)置,輸出字符?“COOL”。“e”是命令?echo?的一個可選項,它用于激活特殊字符的解析器。“\033”引導(dǎo)非常規(guī)字符序列。“m”意味著設(shè)置屬性然后結(jié)束非常規(guī)字符序列,這個例子里真正有效的字符是?“44;37;5”?和“0”。
修改“44;37;5”可以生成不同顏色的組合,數(shù)值和編碼的前后順序沒有關(guān)系。可以選擇的編碼如下所示:
編碼?顏色/動作
0?重新設(shè)置屬性到缺省設(shè)置
1?設(shè)置粗體
2?設(shè)置一半亮度(模擬彩色顯示器的顏色)
4?設(shè)置下劃線(模擬彩色顯示器的顏色)
5?設(shè)置閃爍
7?設(shè)置反向圖象
22?設(shè)置一般密度
24?關(guān)閉下劃線
25?關(guān)閉閃爍
27?關(guān)閉反向圖象
30?設(shè)置黑色前景
31?設(shè)置紅色前景
32?設(shè)置綠色前景
33?設(shè)置棕色前景
34?設(shè)置藍(lán)色前景
35?設(shè)置紫色前景
36?設(shè)置青色前景
37?設(shè)置白色前景
38?在缺省的前景顏色上設(shè)置下劃線
39?在缺省的前景顏色上關(guān)閉下劃線
40?設(shè)置黑色背景
41?設(shè)置紅色背景
42?設(shè)置綠色背景
43?設(shè)置棕色背景
44?設(shè)置藍(lán)色背景
45?設(shè)置紫色背景
46?設(shè)置青色背景
47?設(shè)置白色背景
49?設(shè)置缺省黑色背景
其他有趣的代碼還有:
\033[2J? 清除屏幕
\033[0q? 關(guān)閉所有的鍵盤指示燈
\033[1q? 設(shè)置“滾動鎖定”指示燈?(Scroll?Lock)
\033[2q? 設(shè)置“數(shù)值鎖定”指示燈?(Num?Lock)
\033[3q? 設(shè)置“大寫鎖定”指示燈?(Caps?Lock)
\033[15:40H?把關(guān)閉移動到第15行,40列
\007? 發(fā)蜂鳴生beep
#######################
RedHat的字體和背景顏色的改變方法:
命令:
PS1="[\e[32;1m\u@\h?\W]\\$"
或
export?PS1="[\e[32;1m\u@\h?\W]\\$"?兩者的區(qū)別請查看環(huán)境變量的相關(guān)資料
解釋:
\e[32;1m:這就是控制字體和背景顏色的轉(zhuǎn)義字符,30~37是字體顏色、40~47是背景顏色
例子中的32;1m數(shù)字的位置是可以對調(diào)的如\e[1;32m,如果是在X環(huán)境下可以更換一下1的范圍0~10,可能有的沒用處:0或者不寫(\e?[0;32m或\e[;32m)顯示淺顏色,1:顯示高亮?4:加下劃線.....如果改后的效果不好,但是又還原不了,那就不寫m前面的數(shù)字,如\e[32;m,或者直接注銷再登陸
\u?\h?\W:這是一些轉(zhuǎn)義字符,下面詳細(xì)解釋:
\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?:當(dāng)前用戶的賬號名稱
\v?:BASH的版本信息
\w?:完整的工作目錄名稱。家目錄會以?~代替
\W?:利用basename取得工作目錄名稱,所以只會列出最后一個目錄
\#?:下達的第幾個命令
\$?:提示字符,如果是root時,提示符為:#?,普通用戶則為:$
\n?:新建一行
字體并不局限于一個顏色,可以有多個顏色:
PS1="[\e[32;1m\u@\e[35;1m\h?\e[31;1m\W]\\$"
以上兩個命令在注銷后再登陸就失效了,用下面方法使其永久生效:
vi?/etc/profil
在“export?PATH?.....”下面添加一行:export?PS1="[\e[32;1m\u@\h?\W]\\$"
注銷再登陸,就成功了,如果沒生效,使用source?/etc/profile?命令試試,或者直接重啟機器。
********************************************************************
有些時候,需要為Linux服務(wù)的配置截個圖,然后打印出來,結(jié)果在字符界面下就只有黑色背景,白色字體,打印出來費墨~~改改背景可能好點。
首先要知道在linux中,一些常用的顏色代碼:(這些顏色是ANSI標(biāo)準(zhǔn)顏色)
前景色:30黑?31紅?32綠?33黃?34藍(lán)?35紫?36青?37白
背景色:40黑?41紅?42綠?43黃?44青?45藍(lán)?46青?47白
#前景顏色各數(shù)字是對應(yīng)背景顏色減去10.
命令:???echo???-e???"\033[background_number;foreground_numberm"??
如設(shè)置白色背景黑色前景字體應(yīng)該是???echo???-e???"\033[47;30m"
background_number=背景色
foreground_number=前景色
m要緊跟foreground_number,沒有空格。
(說是白色背景,黑色字體。字體顏色我同意,可背景色咋看也不像是白色呀?o(∩_∩)o...)
\033???即退出鍵<esc>的ascii碼(27),所以上面的命令也可寫成如下形式??
echo???"^[[47;30m"?????????其中的“^[”是先按ctrl-V,然后再按<esc>鍵(就是鍵盤左上角的鍵)產(chǎn)生的。
這種方法只能暫時改變一下,logout一下就沒有了。不過可以vi?/root/.bashrc,?在后面加上剛才的命令。
echo?-e?'\033[47;30m'
************************************************************************
用的是終端控制字符,比如這個,就是光標(biāo)跳到第60列,然后顯示一個OK
echo???-en????'\033[60G?'???&&???echo???OK
\033[就是終端轉(zhuǎn)義字符開始,60G是命令。
echo的-e選項就是讓echo不自己處理終端轉(zhuǎn)義字符
?
內(nèi)建命令echo?輸出他的參數(shù),以空格來分隔,以換行符來結(jié)束。返回值總為0。echo?使用的一
些選項:
-e:轉(zhuǎn)義反斜杠字符。
-n:禁止換行。
echo?命令使用的轉(zhuǎn)義序列
序列?意義
\a?鬧鈴
\b?退格
\c?強制換行
\e?退出
\f?清除屏幕
\n?新行
\r?Carriage?return.
\t?水平制表符
\v?垂直制表符
\\?反斜杠
$#傳遞到腳本的參數(shù)個數(shù)
$*傳遞到腳本的參數(shù),與位置變量不同,此選項參數(shù)可超過9個
$$腳本運行時當(dāng)前進程ID號,常用作臨時變量的后綴。如hash.$$
$!后臺運行的&最后一個進程的ID號
$@與$#相同,使用時加引號,并在引號中返回參數(shù)的個數(shù)
$-上一個命令的最后一個參數(shù)
$?最后命令的推出狀態(tài),0表示沒有錯誤。其他任何值表示有錯誤。
轉(zhuǎn)載于:https://www.cnblogs.com/Cherie/p/3309181.html
總結(jié)
以上是生活随笔為你收集整理的shell中使用echo命令改变输出显示样式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF:ListView数据绑定及Sty
- 下一篇: 一、cocos2dx概念简介