在linux中,我們在編輯時(shí)需要對文檔編輯或者一些信息的顯示加上顏色,增強(qiáng)閱讀的效果
比如網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
格式: echo -e "\033[字體顏色;字背景顏色m字符串\033[0m"
要顯示什么顏色,優(yōu)先是先判斷位置,按語法上來說,應(yīng)該是先字體色,然后是背景色,但是字體色的地方數(shù)值為43,所以判斷為背景的顏色,而在后面的31本應(yīng)該是背景色,結(jié)果數(shù)值31位字體的顏色,所以顯示的效果是字體的顏色為紅色,而不是背景紅色,假設(shè)這個(gè)31是數(shù)值41,則表示背景的為紅色,整體的效果就是紅色背景,字體處沒有顏色,為默認(rèn)的白色,且效果是閃爍。
其中設(shè)置顏色的格式為:\033[ ; m …… \033[0m,其中ascii code是對顏色調(diào)用的始末.也可以表示為\e[F;Bm…….\e[0m
字背景顏色范圍: 40--49? ? ? ? ? ? ? ? ? 字顏色: 30--39
例如顯示紅色,其中紅色^[[31mred^[[0m其中^[是在插入編輯模式下按鍵進(jìn)去額ctr+v+[這三個(gè)按鍵輸入的。
假設(shè)寫在文檔tt1寫入對應(yīng)的語句來查看,通過cat ?tt1驗(yàn)證效果
^[[31mred^[[0m :表示對應(yīng)的字是紅色字體,沒有底色,如下截圖
^[[31mred^[[44m:表示紅色字體,底色為紫紅色。假設(shè)寫在文檔tt1,后面cat tt1.這個(gè)屏幕底色都是藍(lán)色,字都是紅色如下截圖
^[[31;44mred^[[0m:表示紅色字體,字和屏幕的底色為藍(lán)色,背景沒有底色,和^[[31mred^[[44m效果一樣。如下截圖
^[[31;44mred^[[44m:表示紅色字體,底色都是藍(lán)色
在命令行里輸入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果
PS1是Linux終端用戶的一個(gè)環(huán)境變量,用來說明命令行提示符的設(shè)置。在終端輸入命令:echo $PS1,就會輸出PS1的定義:
默認(rèn)的PS1變量值為 : PS1="[\u@\h \W]$"
PS1的定義中個(gè)常用的參數(shù)的含義如下:
給PS1賦值如下:
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
這里需要注意,顏色的結(jié)束調(diào)用符號,要放在最后面,否則當(dāng)使用命令history查看歷史命令時(shí),會出現(xiàn)各種異常的顯示
正確的結(jié)果得到的結(jié)果如下圖
當(dāng)把結(jié)束符調(diào)整到$前面,如PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\[\e[0m\\$",使用history查找的時(shí)候出現(xiàn)了如下的異常顯示
注意,這里賦值的時(shí)候要用單引號才能得到要的效果,只是單純改變顏色,其他值不改變,如果賦值用雙引號,如下
錯(cuò)誤寫法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"
得到的效果如下:
如果是root時(shí),提示符為:# ,普通用戶則為:$,但是雙引號后root的提示符為$,是不對的
解決辦法:如果用雙引號,需要再\$前再加一個(gè)\,語句如下
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\] \W]\\$\[\e[0m"
賦值為PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'
效果如下截圖
這個(gè)例子,我們可以明顯看出,\e[顏色值m這個(gè)是說明接下來的顏色從這里開始是什么顏色,\e[0m說明的是顏色的結(jié)束位置,
這里需要注意的是,如果沒有通過\[ ? \]對每一個(gè)顏色進(jìn)行界定,使用過程,如上翻歷史頁,就會出現(xiàn)顯示異常。
將設(shè)置好的PS1變量寫到家目錄下的.bashrc 里面,這樣后面開啟的終端都有效。
$ vim .bashrc
打開后添加一行
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"
保存退出再次登錄時(shí)顯示的顏色也會是我們設(shè)定的值了。
1打開文件,添加如下一段話? ??? ??
??vim?~/.bashrc ??
? ?alias?grep='grep?--color'??
2退出保存
source?~/.bashrc ?
只有執(zhí)行g(shù)rep命令搜索的時(shí)候,關(guān)鍵字就會有顏色了
也可以臨時(shí)查詢的時(shí)候,添加顏色
ps -ef | grep --color "timer" ? ?
我們使用Linux的時(shí)候,經(jīng)常需要使用命令行。Linux命令行的背景默認(rèn)是白色的,字體默認(rèn)是黑色,14像素的。那么我們?nèi)绾胃鶕?jù)自己的喜好配置Linux命令行的字體和背景顏色呢?下面我給大家分享一下。
工具/材料
Linux Terminal
配置字體
首先進(jìn)入Linux系統(tǒng)以后點(diǎn)擊左上角的Applications,然后選擇Terminal選項(xiàng),如下圖所示
接下來在打開的命令行中點(diǎn)擊頂部的Edit菜單,然后選擇Profile Preferences選項(xiàng),如下圖所示
進(jìn)入Profile Preferences設(shè)置界面以后,定位到General頁,去掉使用系統(tǒng)字體的復(fù)選框,然后點(diǎn)擊Font后面的按鈕,如下圖所示
在彈出的選擇命令行字體界面中我們選擇自己喜歡的字體,然后設(shè)置字體大小即可,如下圖所示
配置背景
背景的配置需要首先定位到Colors頁卡,然后去掉系統(tǒng)背景的復(fù)選框,如下圖所示
接下來點(diǎn)擊Background Color后面的按鈕進(jìn)行背景色的配置,如下圖所示
在彈出的選擇命令行背景顏色的界面中我們選擇一個(gè)自己喜好的顏色,點(diǎn)擊Select按鈕即可,如下圖所示
最后回到命令行界面,我們就可以看到背景顏色已經(jīng)發(fā)生了改變,如下圖所示
對于Linux管理員來說,grep是日常最常用的命令,可以把匹配的字符輸出,同樣可以輸出顏色。
# grep --color 'test' /var/log/maillog
無聊練功:?用perl 實(shí)現(xiàn)grep --color
# vi colorgrep
#!/usr/bin/perl
use Term::ANSIColor;
my $test;
if (@ARGV != 2){
die "Please use (colorgrep 'some key word' filename)\n";
}
$test = shift @ARGV;
while(){
if(/$test/i){
print "$`";
print color "bold red";
print "$";
print color 'reset';
print "$'";
}
}
這里調(diào)用了Term::ANSIColor 函數(shù) color 有以下的參數(shù):
clear, reset, dark, bold, underline, underscore, blink, reverse, concealed, black, red, green, yellow, blue, magenta, cyan, white, on_black, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan, and on_white
還有以下的簡化使用方法
2) use Term::ANSIColor qw(:constants);
如果使用這種方法,可以直接把顏色屬性放在要輸出的問題前面,從而簡化輸出步驟。這些顏色屬性有:
CLEAR, RESET, BOLD, DARK, UNDERLINE, UNDERSCORE, BLINK, REVERSE, CONCEALED, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, ON_BLACK, ON_RED, ON_GREEN, ON_YELLOW, ON_BLUE, ON_MAGENTA, ON_CYAN, and ON_WHITE
等。
例如:
print BOLD BLUE ON_WHITE “Text”, RESET, “\n”;
如果你打印完之后想清除掉字符串的格式,一定要記得在最后加上一個(gè)RESET的屬性值。
例如:
use Term::ANSIColor qw(:constants);
print BOLD, BLUE, “This text is in bold blue.\n”, RESET;
3) $Term::ANSIColor::AUTORESET = 1;
對于2)的方法,如果你不想在每條打印語句后面加上RESET的話,你可以直接把$Term::ANSIColor::AUTORESET的值設(shè)為true。這樣每次打印完字符,只要你的屬性值之間沒有逗號,系統(tǒng)將自動幫你清除掉顏色屬性。
看一個(gè)完整的例子:
use Term::ANSIColor qw(:constants);
$Term::ANSIColor::AUTORESET = 1;
print BOLD BLUE “This text is in bold blue.\n”;
print “This text is normal.\n”;
這三種方法,使用起來各有千秋,可根據(jù)要打印的復(fù)雜程度選用。