IT科技

當前位置 /首頁/IT科技 > /列表

linux自動補全命令

linux系統下怎麼自動補全命令呢,下面是具體介紹。

輸入“命令的前幾個字符”,之後按TAB鍵即可自動補全命令。比如,想更改密碼,但只記得這個命令前幾個字母是pass。這時候,按Tab鍵,shell就自動輸出 passwd 命令,十分方便。

linux自動補全命令

拓展資料:

在shell命令行可以使用“Tab”鍵自動補全命令或文件名,這種功能其實可以在shell腳本中實現,使得使用“Tab”鍵可以自動補全自定義的shell函數,相關命令有三個,compgen、complete和compopt。

1、compgen:

compgen [option] [word]

compgen命令根據option生成與word可能匹配的補全,並打印到標準輸出中,這些選項可以是內建命令complete所支持的任何選項,但不能是“-p”和“-r”,如果使用了“-F”或“-C”,則由可程式補全功能設置的各個shell變量雖然仍可以使用,但它們的值卻沒什麼作用。補全條目以相同的方式生成,就好像可程式補全代碼用相同的補全選項直接生成了補全條目一樣,如果指定了word,則只顯示與之匹配的條目。

2、complete:

complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]

complete -pr [-DE] [name ...]

complete命令指定如何對各個名稱進行補全。如果指定了選項“-p”或者沒有指定任何選項,則把已有的補全方法用一種可以重新作為作為輸入的格式打印出來。選項“-r”用以刪除指定名稱的補全方法,不指定名稱時刪除所有的名稱的補全方法。選項“-D”的意思是其後的選項和動作將應用到默認命令補全,也就是説之前未定義的補全命令也可以補全。選項“-E”的意思是其後的選項和動作將應用到空命令補全,也就是説補全空白行。對於選項“-G”、“-W”、“-X”、“-P”和“-S”,應該使用括號進行保護,防止補全開始前被擴展。

“-o bashdefault”:如果沒有生成補全條目,就使用bash默認的其它補全。

“-o default”:如果沒有生成補全條目,就使用“readline”默認的文件名補全。

“-o dirnames”:如果沒有生成補全條目,就進行目錄名補全。

“-o filenames”:告訴“readline”生成文件名,以便進行與文件名相關的處理,例如在目錄名後面加上斜槓,引用特殊字符,去掉行尾的空格,目的是用於shell函數。

“-o noquote”:告訴“readline”不引用文件名,默認會進行引用。

“-o nospace”:告訴“readline”在補全的名稱後不添加空格,默認添加空格。

“-o plusdirs”:生成補全條目之後,還會進行目錄名補全並把結果添加到其它動作得到的結果中。

“-A alias”:別名,同選項“-a”。

“-A arrayvar”:數組變量名。

“-A binding”:“readline”鍵綁定名。

“-A builtin”:shell內建命令名,同選項“-b”。

“-A command”:命令名,同選項“-c”。

“-A directory”:目錄名,同選項“-d”。

“-A disabled”:不可用的shell內建命令名。

“-A enabled”:可用的shell內建命令名。

“-A export”:導出的shell變量名,同選項“-e”。

“-A file”:文件名,同選項“-f”。

“-A function”:shell函數名。

“-A group”:組名,同選項“-g”。

“-A helptopic”:內建命令help支持的幫助主題。

“-A hostname”:主機名,從shell環境變量HOSTFILE中獲取。

“-A job”:作業名,同選項“-j”。

“-A keyword”:shell保留字,同選項“-k”。

“-A running”:正在運行的作業名。

“-A service”:服務名,同選項“-s”。

“-A setopt”:內建命令set的選項“-o”可用的參數。

“-A shopt”:內建命令shopt可接受的選項名。

“-A signal”:信號名。

“-A stopped”:暫停的作業名。

“-A user”:用户名,同選項“-u”。

“-A variable”:所有的shell變量名,同選項“-v”。

“-C command”:在子shell中執行命令,並把其結果作為補全條目。

“-F function”:在當前的shell環境中執行函數function,執行時,參數“$1”表示那個參數正在進行補全的命令名,參數“$2”表示補全的名稱,參數“$3”表示補全的名稱前面的單詞,表示結束執行時,從數組變量COMPREPLY中獲取補全條目。

“-G globpat”:使用文件名擴展模式globpat進行擴展以生成可能的補全條目。

“-P prefix”:在所有的選項應用到補全結果後,在結果前添加前綴prefix。

“-S suffix”:在所有的選項應用到補全結果後,在結果後添加後綴suffix。

“-W wordlist”:使用特殊變量IFS中的字符拆分單詞列表wordlist,並擴展拆分後的每個單詞,結果中與待補全單詞

匹配的條目就是補全條目。

“-X filterpat”:filterpat是進行文件名擴展時使用的模式,它作用於通過前面的選項和參數生成的補全列表,並把每個與過濾模式匹配的條目刪除,模式中前導的歎號表示否定,這時會刪除與過濾模式不匹配的條目。

3、compopt:

compopt [-o option] [-DE] [+o option] [name]

compopt命令修改每個名稱指定的補全選項,如果沒有指定名稱則修改當前執行的補全的選項,如果也沒有指定選項,則顯示每個名稱或當前補全所用的選項。選項可能的取值就是上面的內建命令complete的有效選項。

以上就是小編今天的分享了,希望可以幫助到大家。

TAG標籤:命令 自動 補全 linux #