首頁  >  文章  >  運維  >  bash基礎特性是什麼

bash基礎特性是什麼

王林
王林轉載
2023-05-14 23:07:101579瀏覽

#bash基礎特性之命令別名
bash在shell進程中可以為指令本身或指令加上選項設定別名,設定後可以直接輸入別名的方式呼叫其功能。
設定指令別名的方式為:~]# alias NAME=COMMAN。
撤銷指令別名的方式為:~]# unalias NAME
查看目前bash中已經設定的指令別名方式為:~]# alias
注意1:此方式設定的指令別名生命週期只是當前shell進程。退出目前shell再登陸即已經失效。若要在shell啟動後自動生效,需要設定bash的環境變數相關設定檔。
注意2:如果指令別名和指令名相同,則直接呼叫別名定義的指令其功能。如需直接呼叫該指令本身功能而非別名,可使用「~]# \COMMAND。

##bash基礎特性之指令歷史
bash在shell進程會自動儲存其會話中使用者曾經執行過的命令,在shell運行中該記錄存儲在內存空間中,shell進程結束時通過將其存儲在“歷史文件”來持久保存先前執行過的命令,每次shell進程啟動都會讀取該檔案內容到記憶體空間中,每個使用者都有自己專用的歷史檔案。
歷史相關參數的變數
HISTSIZE:SHELL程序的緩衝區保留的歷史指令的條數
~]# echo $HISTSIZE 可查看其大小
~]# export HISTSIZE=# 可設定其大小
HISTFILESIZE:命令歷史檔案可儲存的歷史指令的條數
~]# echo $HISTFILESIZE 可查看其大小
~]# export HISTFILESIZE=# 可設定其大小
HISTFILE:目前使用者的命令歷史檔案
~]# echo $HISTFILE 可查看檔案名稱和位址
HISTCONTROL:目前使用者記錄指令歷史的方式
~]# echo $HISTCONTROL 可查看檔案名稱和位址
~]# export HISTCONTROL=方式名可設定記錄指令歷史的方式
共有三種方式:
ignoredups:忽略重複的命令;重複是指連續且相同的命令;
ignorespace:以空白字元開頭的命令不記入歷史;
ignoreboth:上述兩者同時生效;
查看和管理命令歷史的相關指令
查看指令歷史清單:~]# history 
指令用法:
history -c:清除指令歷史;
history -d:OFFSET:刪除指定的條目;
-a        將目前緩衝的歷史行追加到歷史文件中
-n        從歷史文件中讀取所有未曾讀取的行
-r        讀取歷史文件上在上的內容中讀取至歷卷#呼叫指令歷史列表中的指令以重執行之目的:
!#:再一次執行歷史清單中的第#條指令;
!!:再一次執行上一條指令;
!STRING :再一次執行指令歷史清單中最近一個以指定的STRING開頭的指令;
                
#呼叫上一條指令的最後一個參數:
快速鍵:ESC,兩個鍵)
     Alt .(同時按下這兩個鍵)
     !$:給定的上一個指令的參數
              ”#        
##bash基礎特性之快速鍵 
Ctrl a:遊標跳至命令列首;
Ctrl e:遊標跳至命令列尾;

Ctrl k:刪除遊標所在處至尾部的內容;

Ctrl u:刪除行首至遊標所在處的內容;



##bash的特性之命令列展開:
把命令列的給定的特殊符號自動替換為對應字串的機制;
~: 自動替換為使用者家目錄;
~USERNAME:自動替換為指定使用者的家目錄;

{ }:可承載一個以逗號分隔的路徑列表,能夠將其展開為多個獨立路徑;

範例:/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的基礎特性:命令補全和路徑補全
命令補全:
shell程式在接收到用戶執行命令補全的請求後(單擊Tab),最左側字符串將被當作指令去查找;
其查找機制:
    1):找出內部
    2):找出外部指令:去$PATH變數所指定的各路徑下,自左而右逐個搜尋各目錄下的檔名;
查找完成後,給定的打頭的字串如果能惟一標識某指令程式檔的檔名,則直接自動補全為該指令,不能惟一標識,再擊tab可給予清單;如果或沒有反應則表示錯誤,沒有任何指令可被此打頭字串標識;
路徑補全:
在給定的起始路徑的上級目錄下,以對應路徑下的打頭字串來逐一匹配上級目標下的每個檔案:如果是惟一標識,Tab補全;不能惟一標識:tab, tab給出列表;錯誤路徑:沒有回應。

#bash的特性之glob
glob:檔案名稱通配;快速引用多個檔案;檔案名稱整體匹配度偵測
*:符合任意長度的任意字元
? :符合任意單一字元
[ ]:符合指定集合內的任一字元 
[a-z]:表示所有的字母,不區分大小寫
[0-9]:表示所有數字
[a-z0-9]:所有字母加上數字
[[:upper:]]:所有大寫字母
[[:lower:]]:所有小寫字母
[[:digit:]] :所有數字
[[:alpha:]]:表示所有字母
[[:alunm:]]:表示所以字母加數字
[[:space:]]:表示空白字元
[[:punct:]]:表示所有標點符號
[^ ]:取反

以上是bash基礎特性是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除