linux命令自動補全, linux系統(tǒng)下如何命令自動補全?下面具體介紹一下。
輸入“命令的前幾個字符”,然后按TAB鍵自動完成。比如我想改密碼,但是我只記得這個命令的前幾個字母是pass。這時候按Tab鍵,shell會自動輸出passwd命令,非常方便。
擴展信息:
在shell命令行中,可以使用“Tab”鍵自動完成命令或文件名。這個功能其實可以在shell腳本中實現(xiàn),這樣使用“Tab”鍵就可以自動完成自定義shell功能。有三個相關的命令。
Compgen, finish and composite materials.
1. Compgen:
compgen [option] [word]
Compgen命令根據(jù)選項生成可能與word匹配的補全,并將它們打印到標準輸出中。這些選項可以是內(nèi)置命令complete支持的任何選項,但不能是“-p”和“-r”。如果使用“-F”或“-C ”,
仍然可以使用由可編程完成函數(shù)設置的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”或者沒有指定選項,那么現(xiàn)有的完成方法將以一種可以作為輸入重用的格式打印。選項“-r”用于刪除具有指定名稱的完成方法。
一種刪除所有名字而不指定名字的完成方法。選項“-D”意味著下面的選項和動作將應用于默認的命令完成,這意味著之前未定義的完成命令也可以完成。選項“-E”表示以下選項和操作將應用于空命令完成,
也就是說,填空行。選項"-G "、"-W "、"-X "、"-P "和"-S "應該用括號保護起來,以防止它們在完成之前被展開。
"-o bashdefault ":如果沒有生成完成條目,將使用bash默認的其他完成。
"-o default ":如果沒有生成完成條目,將使用默認文件名" readline "來完成。
"-o dirnames ":如果沒有生成完成條目,將完成目錄名。
"-o filenames ":告訴" readline "為與文件名相關的處理生成文件名,例如在目錄名后添加斜杠、引用特殊字符以及刪除shell函數(shù)行尾的空格。
"-o noquote ":告訴" readline "不要引用文件名,而是默認引用它。
“-o nospace”:告訴“readline”不要在完整名稱后添加空格,而是默認添加空格。
"-o plusdirs ":完成條目后,將完成目錄名,并將結果添加到其他操作獲得的結果中。
“-a別名”:別名,與選項“-A”相同。
“-A arrayvar”:數(shù)組變量名。
“-A binding”:“readline”鍵綁定名。
“-A builtin”:shell內(nèi)建命令名,同選項“-b”。
“-A command”:命令名,同選項“-c”。
“-A directory”:目錄名,同選項“-d”。
“-A disabled”:不可用的shell內(nèi)建命令名。
“-A enabled”:可用的shell內(nèi)建命令名。
“-A export”:導出的shell變量名,同選項“-e”。
“-A file”:文件名,同選項“-f”。
“-A function”:shell函數(shù)名。
“-A group”:組名,同選項“-g”。
“-A helptopic”:內(nèi)建命令help支持的幫助主題。
“-A hostname”:主機名,從shell環(huán)境變量HOSTFILE中獲取。
“-A job”:作業(yè)名,同選項“-j”。
“-A keyword”:shell保留字,同選項“-k”。
“-A running”:正在運行的作業(yè)名。
“-A service”:服務名,同選項“-s”。
“-A setopt”:內(nèi)建命令set的選項“-o”可用的參數(shù)。
“-A shopt”:內(nèi)建命令shopt可接受的選項名。
“-A signal”:信號名。
“-A stopped”:暫停的作業(yè)名。
“-A user”:用戶名,同選項“-u”。
“-A variable”:所有的shell變量名,同選項“-v”。
“-C command”:在子shell中執(zhí)行命令,并把其結果作為補全條目。
“-F function”:在當前的shell環(huán)境中執(zhí)行函數(shù)function,執(zhí)行時,參數(shù)“$1”表示那個參數(shù)正在進行補全的命令名,參數(shù)“$2”表示補全的名稱,參數(shù)“$3”表示補全的名稱前面的單詞,
表示結束執(zhí)行時,從數(shù)組變量COMPREPLY中獲取補全條目。
“-G globpat”:使用文件名擴展模式globpat進行擴展以生成可能的補全條目。
“-P prefix”:在所有的選項應用到補全結果后,在結果前添加前綴prefix。
“-S suffix”:在所有的選項應用到補全結果后,在結果后添加后綴suffix。
“-W wordlist”:使用特殊變量IFS中的字符拆分單詞列表wordlist,并擴展拆分后的每個單詞,結果中與待補全單詞
匹配的條目就是補全條目。
“-X filterpat”:filterpat是進行文件名擴展時使用的模式,它作用于通過前面的選項和參數(shù)生成的補全列表,并把每個與過濾模式匹配的條目刪除,模式中前導的嘆號表示否定,
這時會刪除與過濾模式不匹配的條目。
3、compopt:
compopt [-o option] [-DE] [+o option] [name]
compopt命令修改每個名稱指定的補全選項,如果沒有指定名稱則修改當前執(zhí)行的補全的選項,如果也沒有指定選項,則顯示每個名稱或當前補全所用的選項。
選項可能的取值就是上面的內(nèi)建命令complete的有效選項。
linux命令自動補全,以上就是本文為您收集整理的linux命令自動補全最新內(nèi)容,希望能幫到您!更多相關內(nèi)容歡迎關注。