溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

bash基礎(chǔ)特性是什么

發(fā)布時間:2022-01-07 22:37:46 來源:億速云 閱讀:174 作者:柒染 欄目:網(wǎng)絡(luò)安全

bash基礎(chǔ)特性是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

#bash基礎(chǔ)特性之命令別名
bash在shell進程中可以為命令本身或者命令加上選項設(shè)定別名,設(shè)定后可以直接輸入別名的方式調(diào)用其功能。
設(shè)定命令別名的方式為:~]# alias NAME=COMMAN。
撤銷命令別名的方式為:~]# unalias NAME
查看當(dāng)前bash中已經(jīng)設(shè)定的命令別名方式為:~]# alias
注意1:此方式設(shè)定的命令別名生命周期只是當(dāng)前shell進程。退出當(dāng)前shell再登陸即已經(jīng)失效。如需在shell啟動后自動生效,需要設(shè)置bash的環(huán)境變量相關(guān)配置文件。
注意2:如果命令別名和命令名相同,則直接調(diào)用別名定義的命令其功能。如需直接調(diào)用該命令本身功能而非別名,可使用“~]# \COMMAND。

#bash基礎(chǔ)特性之命令歷史
bash在shell進程會自動保存其會話中用戶曾經(jīng)執(zhí)行過的命令,在shell運行中該記錄存儲在內(nèi)存空間中,shell進程結(jié)束時通過將其存儲在“歷史文件”來持久保存此前執(zhí)行過的命令,每次shell進程啟動都會讀取該文件內(nèi)容到內(nèi)存空間中,每個用戶都有其自己專用的歷史文件。
歷史相關(guān)參數(shù)的變量
HISTSIZE:SHELL進程的緩沖區(qū)保留的歷史命令的條數(shù)
~]# echo $HISTSIZE 可查看其大小
~]# export HISTSIZE=# 可設(shè)置其大小
HISTFILESIZE:命令歷史文件可保存的歷史命令的條數(shù)
~]# echo $HISTFILESIZE 可查看其大小
~]# export HISTFILESIZE=# 可設(shè)置其大小
HISTFILE:當(dāng)前用戶的命令歷史文件
~]# echo $HISTFILE 可查看文件名和地址
HISTCONTROL:當(dāng)前用戶記錄命令歷史的方式
~]# echo $HISTCONTROL 可查看文件名和地址
~]# export HISTCONTROL=方式名 可設(shè)置記錄命令歷史的方式
共有三種方式:
ignoredups:忽略重復(fù)的命令;重復(fù)是指連續(xù)且相同的命令;
ignorespace:以空白字符開頭的命令不記入歷史;
ignoreboth:上述兩者同時生效;
查看和管理命令歷史的相關(guān)命令
查看命令歷史列表:~]# history 
命令用法:
history -c:清空命令歷史;
history -d:OFFSET:刪除指定的條目;
-a        將當(dāng)前緩沖的歷史行追加到歷史文件中
-n        從歷史文件中讀取所有未被讀取的行
-r        讀取歷史文件并將內(nèi)容追加到歷史列表中
                
調(diào)用命令歷史列表中的命令以重執(zhí)行之目的:
!#:再一次執(zhí)行歷史列表中的第#條命令;
!!:再一次執(zhí)行上一條命令;
!STRING:再一次執(zhí)行命令歷史列表中最近一個以指定的STRING開頭的命令;
                
調(diào)用上一條命令的最后一個參數(shù):
快捷鍵:ESC, .(先后按下這個兩個鍵)
     Alt + .(同時按下這兩個鍵)
     !$:給出的上一個命令的參數(shù)
                
顯示最近的n條件命令歷史:history  #


#bash基礎(chǔ)特性之快捷鍵 
Ctrl+a:光標(biāo)跳至命令行首;
Ctrl+e:光標(biāo)跳至命令行尾;
Ctrl+k:刪除光標(biāo)所在處至尾部的內(nèi)容;
Ctrl+u:刪除行首至光標(biāo)所在處的內(nèi)容;

#bash的特性之命令行展開:
把命令行的給定的特殊符號自動替換為相應(yīng)字符串的機制;
~: 自動替換為用戶家目錄;
~USERNAME:自動替換為指定用戶的家目錄;
{ }:可承載一個以逗號分隔的路徑列表,能夠?qū)⑵湔归_為多個獨立路徑;
示例:/tmp/{x,y,z} = /tmp/x  /tmp/y  /tmp/z
示例:/tmp/{x/y, m/{m,n}} = /tmp/x/y /tmp/m/m /tmp/m/n
示例:/tmp/{x,y}/z = /tmp/x/z  /tmp/y/z 

#bash的基礎(chǔ)特性:命令補全和路徑補全
命令補全:
shell程序在接收到用戶執(zhí)行命令補全的請求后(單擊一下Tab),最左側(cè)字符串將被當(dāng)作命令去查找;
其查找機制:
    1):查找內(nèi)部
    2):查找外部命令:去$PATH變量所指定的各路徑下,自左而右逐個搜索各目錄下的文件名;
查找完成后,給定的打頭的字符串如果能惟一標(biāo)識某命令程序文件的文件名,則直接自動補全為該命令,不能惟一標(biāo)識,再擊tab可給列表;如果還是沒有反應(yīng)則表示錯誤,沒有任何命令可被此打頭字符串標(biāo)識;
路徑補全:
在給定的起始路徑的上級目錄下,以對應(yīng)路徑下的打頭字符串來逐一匹配上級目標(biāo)下的每個文件:如果是惟一標(biāo)識,Tab補全;不能惟一標(biāo)識:tab, tab給出列表;錯誤路徑:沒有響應(yīng)。

#bash的特性之glob
glob:文件名通配;快速引用多個文件;文件名整體匹配度檢測
*:匹配任意長度的任意字符
?:匹配任意單個字符
[ ]:匹配指定集合內(nèi)的任意單個字符 
[a-z]:表示所有的字母,不區(qū)分大小寫
[0-9]:表示所有數(shù)字
[a-z0-9]:所有字母加數(shù)字
[[:upper:]]:所有大寫字母
[[:lower:]]:所有小寫字母
[[:digit:]]:所有數(shù)字
[[:alpha:]]:表示所有字母
[[:alunm:]]:表示所以字母加數(shù)字
[[:space:]]:表示空白字符
[[:punct:]]:表示所有標(biāo)點符號
[^ ]:取反

看完上述內(nèi)容,你們掌握bash基礎(chǔ)特性是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI