當(dāng)每次在Linux中使用回車(chē)執(zhí)行命令之后,都會(huì)回到最開(kāi)始的提示字符處,這個(gè)過(guò)程就是取用了set命令下自定義變量PS1的值。
成都創(chuàng)新互聯(lián)專(zhuān)注于鄞州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鄞州營(yíng)銷(xiāo)型網(wǎng)站建設(shè),鄞州網(wǎng)站制作、鄞州網(wǎng)頁(yè)設(shè)計(jì)、鄞州網(wǎng)站官網(wǎng)定制、微信小程序定制開(kāi)發(fā)服務(wù),打造鄞州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鄞州網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
此處的 [\u@\h \W]\$ 就是 [cadmin@localhost ~]$ 的通用格式,通過(guò)修改PS1變量可以達(dá)到修改提示字符的目的。在這之前,需要先了解此處用的符號(hào)含義:
經(jīng)過(guò)調(diào)整,自己最習(xí)慣的排列方式為 \u @ \h:\w\$
PS1中的顏色參數(shù)格式為\[\e[F;Bm\],F(xiàn)代表文本前景色,B代表背景色,這一串參數(shù)的位置就是這個(gè)顏色開(kāi)始生效的位置,且后出現(xiàn)的顏色參數(shù)會(huì)覆蓋前面的顏色參數(shù)。
例如 \[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 賦值給PS1后,提示字符變成:
在當(dāng)前shell里面的修改都只是暫時(shí)性的,只有將對(duì)應(yīng)變量的賦值加入到對(duì)應(yīng)用戶的.bashrc下,才能在啟動(dòng)時(shí)就生效。
在文件最后加上 PS1="\[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$" ,然后 source .bashrc 即可。
在linux中,我們?cè)诰庉嫊r(shí)需要對(duì)文檔編輯或者一些信息的顯示加上顏色,增強(qiáng)閱讀的效果
格式: echo -e "\033[字體顏色;字背景顏色m字符串\033[0m"
要顯示什么顏色,優(yōu)先是先判斷位置,按語(yǔ)法上來(lái)說(shuō),應(yīng)該是先字體色,然后是背景色,但是字體色的地方數(shù)值為43,所以判斷為背景的顏色,而在后面的31本應(yīng)該是背景色,結(jié)果數(shù)值31位字體的顏色,所以顯示的效果是字體的顏色為紅色,而不是背景紅色,假設(shè)這個(gè)31是數(shù)值41,則表示背景的為紅色,整體的效果就是紅色背景,字體處沒(méi)有顏色,為默認(rèn)的白色,且效果是閃爍。
其中設(shè)置顏色的格式為:\033[ ; m …… \033[0m,其中ascii code是對(duì)顏色調(diào)用的始末.也可以表示為\e[F;Bm…….\e[0m
字背景顏色范圍: 40--49? ? ? ? ? ? ? ? ? 字顏色: 30--39
例如顯示紅色,其中紅色^[[31mred^[[0m其中^[是在插入編輯模式下按鍵進(jìn)去額ctr+v+[這三個(gè)按鍵輸入的。
假設(shè)寫(xiě)在文檔tt1寫(xiě)入對(duì)應(yīng)的語(yǔ)句來(lái)查看,通過(guò)cat ?tt1驗(yàn)證效果
^[[31mred^[[0m :表示對(duì)應(yīng)的字是紅色字體,沒(méi)有底色,如下截圖
^[[31mred^[[44m:表示紅色字體,底色為紫紅色。假設(shè)寫(xiě)在文檔tt1,后面cat tt1.這個(gè)屏幕底色都是藍(lán)色,字都是紅色如下截圖
^[[31;44mred^[[0m:表示紅色字體,字和屏幕的底色為藍(lán)色,背景沒(méi)有底色,和^[[31mred^[[44m效果一樣。如下截圖
^[[31;44mred^[[44m:表示紅色字體,底色都是藍(lán)色
在命令行里輸入命令:echo -e '\e[43;31;4mmagedu\e[0m',得到如下的效果
PS1是Linux終端用戶的一個(gè)環(huán)境變量,用來(lái)說(shuō)明命令行提示符的設(shè)置。在終端輸入命令:echo $PS1,就會(huì)輸出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)用符號(hào),要放在最后面,否則當(dāng)使用命令history查看歷史命令時(shí),會(huì)出現(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í)候要用單引號(hào)才能得到要的效果,只是單純改變顏色,其他值不改變,如果賦值用雙引號(hào),如下
錯(cuò)誤寫(xiě)法:PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\$"
得到的效果如下:
如果是root時(shí),提示符為:# ,普通用戶則為:$,但是雙引號(hào)后root的提示符為$,是不對(duì)的
解決辦法:如果用雙引號(hào),需要再\$前再加一個(gè)\,語(yǔ)句如下
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è)是說(shuō)明接下來(lái)的顏色從這里開(kāi)始是什么顏色,\e[0m說(shuō)明的是顏色的結(jié)束位置,
這里需要注意的是,如果沒(méi)有通過(guò)\[ ? \]對(duì)每一個(gè)顏色進(jìn)行界定,使用過(guò)程,如上翻歷史頁(yè),就會(huì)出現(xiàn)顯示異常。
將設(shè)置好的PS1變量寫(xiě)到家目錄下的.bashrc 里面,這樣后面開(kāi)啟的終端都有效。
$ vim .bashrc
打開(kāi)后添加一行
PS1="[\[\e[31;40m\]\u\[\e[37;40m\]@\[\e[34;40m\]\h\[\e[37;40m\]\W]\[\e[0m\\$"
保存退出再次登錄時(shí)顯示的顏色也會(huì)是我們?cè)O(shè)定的值了。
先展示個(gè)人結(jié)果
PS1是Linux終端用戶的一個(gè)環(huán)境變量,用來(lái)定義命令行提示符的參數(shù)。
在終端輸入命令:
可得到當(dāng)前PS1的定義值:
PS1的常用參數(shù)以及含義:
所以linux默認(rèn)的命令行提示信息的格式
在PS1中設(shè)置字符顏色的格式為:[\e[F;Bm]........[\e[0m],其中“F“為字體顏色,編號(hào)為30-37,“B”為背景顏色,編號(hào)為40-47,[\e[0m]作為顏色設(shè)定的結(jié)束。
顏色對(duì)照表:
只需將對(duì)應(yīng)數(shù)字套入設(shè)置格式中即可。
經(jīng)過(guò)多次測(cè)試后,最終確定了一個(gè)適合我自己的格式:
但注意這樣的設(shè)置只是臨時(shí)性的.
上面的設(shè)置的作用域只有當(dāng)前終端的登陸有效,關(guān)閉終端或退出登錄即刻失效。要想永久性的保存設(shè)置,需要修改.bashrc配置文件。
鍵入命令:
現(xiàn)在可以看到.bashrc這個(gè)文件。
編輯.bashrc:
加入這一行:
保存退出。
重新加載bash配置文件:
即可立即并永久生效了。