1. 程式人生 > >bash的顏色規則以及配置文件

bash的顏色規則以及配置文件

配置文件 應用程序 profile logout 執行文件

bash的顏色顯示規則:
ascii編碼對於顏色進行設置;

\033:Ctrl鍵
[:控制字符和顏色代碼之間的間隔字符
0m:關閉顏色屬性命令;
1m:加粗顯示文本字符;
4m:為文本字符加下劃線標識;
5m:使文本字符閃爍;
7m:將文本字符的背景色和前景色交換顯示;
8m:將文本字符的背景色和前景色設置為相同顏色;

30m-39m:設置文本字符的前景色;38m和39m暫時保留;
40m-49m:設置文本字符的背景色;48m和49m暫時保留;

例子:echo -e "\033[5;1;31;47mhello world\033[0m"

一個完整的程序,一般包括4類文件:
二進制文件(可執行文件)、頭和庫文件、幫助文件、配置文件;

bash——CLI(命令行接口)的一種
bash同樣屬於完整的應用程序,也有這四類文件:

bash的配置文件:
三類:
profile類:
為交互式登錄的shell進程實現功能初始化的配置文件;
bashrc類:
為非交互式登錄的shell進程實現功能啟動配置的配置文件;
logout類:
為交互式登錄的shell進程提供終止及清理類功能的配置文件;

shell的類型:
交互式登錄的shell:
1.直接通過某個終端輸入賬號和密碼後登錄打開的shell進程;
2.使用su - USERNAME或su -l USERNAME執行切換登錄打開的shell進程;

非交互式登錄的shell:
1.在圖形界面下,通過菜單或右鍵菜單打開的終端的shell進程;
2.使用su USERNAME執行切換登錄打開的shell進程;

bash的配置文件:
profile類:
全局:對所有用戶都生效的配置文件;
/etc/profile
/etc/profile.d/*.sh

註意:在RHEL或CentOS系列的操作系統中,通常情況下,如果一個配置文件內容很多,格式復雜,我們會將其切割成多個片段,將切割出來的片段統一的存放在"程序名稱.d"目錄中;在這樣目錄中所保存的片段文件,大多以統一的文件後綴名來命名;

用戶個人:僅僅只是針對某個用戶有效的配置文件;
~/.bash_profile

profile類配置的文件的作用:
1.用於定義用戶的環境變量;
2.用於運行腳本或執行命令;

bashrc類:
全局:
/etc/bashrc
用戶個人:
~/.bashrc

bashrc類配置的文件的作用:
1.用於定義本地變量;
2.用於定義命令的別名;
3.定義umask;

註意:只有超級用戶root可以修改全局類的配置文件;普通用戶只能修改其家目錄中的個人配置文件;

交互式登錄的shell進程,會按照順序加載下列配置文件:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登錄的shell進程,會按照順序加載下列配置文件:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

所有在命令行中執行的命令的操作,只要沒涉及到文件的修改的,一般都只是針對當前的shell生命周期有效;只要shell進程結束,所有的設置均失效;

配置文件的作用:使得我們賴以生存的配置信息可以長期有效,只要不修改配置文件中的內容, 每一次打開shell都會使曾經的配置生效;

讓配置文件中新定義的配置能夠立即生效的方式:
1.source命令:
source /PATH/TO/SOME_CONF_FILES
. /PATH/TO/SOME_CONF_FILES

2.exec命令:
exec /PATH/TO/SOME_CONF_FILES

bash中變量中存放的字符串處理方式:
弱變量:
1.無需事先定義即可使用;
2.沒有變量數據類型的硬性要求,默認是字符型;

1.字符串切片:
${#VAR}:返回字符串類型的變量VAR的長度;
${VAR:offset}:返回字符串變量VAR中第offset個字符後面的內容,不包括第offset個字符;offset的取值範圍為:0 ~ $[${#VAR}-1]
${VAR:offset:number}:返回字符串變量VAR中從第offset個字符後開始,長度為number的字符部分;
${VAR: -length}:取字符串最右側的length個字符;

2.基於模式取字串:
${VAR#*PATTERN}:自左而右,查找VAR變量所存儲的字符串中,第一次被PATTERN匹配的字符,刪除從字符串開始到PATTERN匹配的字符之間的所有字符;
${VAR##*PATTERN}:自左而右,查找VAR變量所存儲的字符串中,所有被PATTERN匹配的字符,刪除從字符串開始到最好一個PATTERN匹配的字符之間的所有字符;

${VAR%PATTERN*}:自右而左,查找VAR變量所存儲的字符串中,第一次被PATTERN匹配的字符,刪除從字符串結尾到PATTERN匹配的字符之間的所有字符;
${VAR%%PATTERN*}:自右而左,查找VAR變量所存儲的字符串中,所有被PATTERN匹配的字符,刪除從字符串結尾到最好一個PATTERN匹配的字符之間的所有字符;

3.查找替換:
${VAR/PATTERN/SUBSTRING}:在VAR變量中查找匹配PATTERN的內容,將其第一個匹配到的結果更換成SUBSTRING;
${VAR//PATTERN/SUBSTRING}:在VAR變量中查找匹配PATTERN的內容,將其所有匹配到的結果都更換成SUBSTRING;

${VAR/#PATTERN/SUBSTRING}:在VAR變量中查找行首匹配PATTERN的內容,將匹配的結果更換成SUBSTRING;
${VAR/%PATTERN/SUBSTRING}:在VAR變量中查找行尾匹配PATTERN的內容,將匹配的結果更換成SUBSTRING;

4.查找刪除:
${VAR/PATTERN}:在VAR變量中查找匹配PATTERN的內容,將其第一個匹配到的結果刪除;
${VAR//PATTERN}:在VAR變量中查找匹配PATTERN的內容,將其第一個匹配到的結果刪除;

${VAR/#PATTERN}:在VAR變量中查找匹配PATTERN的內容,將其行首匹配到的結果刪除;
${VAR/%PATTERN}:在VAR變量中查找匹配PATTERN的內容,將其行尾匹配到的結果刪除;

5.字符的大小寫轉換:
${VAR^^}:將VAR變量中的所有小寫字母轉換為大寫字母;
${VAR,,}:將VAR變量中的所有大寫字母轉換為小寫字母;

6.變量賦值:
${VAR:-value}:如果變量VAR為空或未被設置,那麽直接返回value的值;否則返回變量VAR的值;
${VAR:+value}:如果變量VAR不為空,則返回value;
${VAR:=value}:如果變量VAR為空或未被設置,那麽直接返回value的值,並且將value的值賦值給變量VAR;否則返回變量VAR的值;

7.變量的間接引用:
如果第一個變量的值恰好是第二個變量的變量名,從第一個變量引用第二個變量的值的方法,就稱為變量的間接引用,也稱為間接變量引用;
VAR1=VAR2
VAR2=value
bash提供了兩種格式的間接變量引用方式:
eval MYVAR=\$$VAR1
MYVAR=$(!VAR1)


本文出自 “12443570” 博客,謝絕轉載!

bash的顏色規則以及配置文件