要想Linux命令列玩的溜,還得apropos!此文運維必看

語言: CN / TW / HK

​玩Linux的朋友有沒有這種體會,就是Linux非常棒,但是就是命令多,記不住,有時候碰到不會的命令還得百度或者谷歌,極大的影響了工作效率。

有沒有一種辦法,能夠在記不住某個命令或者記不全某個命令的時候不用上網查或者翻手冊就能找到這個命令?

答案是:當然有!

下面就給大家介紹一下對於記性不太好的朋友的福音命令:apropos

apropos基本介紹

apropos在所有手冊頁中搜索帶有在命令列中傳遞給它的關鍵字的命令,這些關鍵字可以是命令名稱的一部分或與其功能描述相關,當不帶引數使用時,apropos命令的功能與man -k命令完全相同。

apropos語法

apropos keywords

比如想看下跟cpu相關命令的有哪些:

apropos cpu

apropos引數

apropos有以下引數:

我們分別來解釋一下:

  • -d:列印除錯資訊
  • -v:列印詳細的警告訊息
  • -r:正則表示式
  • -w:萬用字元
  • -e:精確匹配關鍵詞
  • -a:顯示與所有提供的關鍵字匹配的命令
  • -l:在輸出中生成完整的行
  • -s:僅搜尋給定的man部分
  • -m:訪問其他作業系統的man
  • -M:指定man路徑
  • -L:本地環境變數
  • -C:使用自定義配置檔案
  • -h:列印幫助資訊並退出
  • -V:顯示版本資訊

下面我們結合例子介紹幾個比較重要的引數!

案例

檢視find相關的命令有哪些?

apropos find

輸出:

我們可以很清晰的看到跟find相關的命令有這麼多,並且命令後面還有一些簡單的解釋。

這個時候我想精確的查詢find命令怎麼辦?

那當然用-e引數了:

apropos find

這樣列舉出來的都是跟find相關的命令,是不是很簡單?

多個命令

上面的例子是針對的是單個命令,那麼如果遇到多個命令怎麼辦?

舉個例子:

apropos find which

這個時候將顯示至少一個匹配的關鍵詞的所有命令。

再觀察一下下面的命令:

apropos 'network add'

apropos後面跟著引號,引號內關鍵詞用空格間隔,會列舉出與之匹配的命令,假如不匹配就無法查出任何命令:

apropos 'network tool'

剛剛說了apropos find which命令會將包含find或者which所有的命令都會列舉出來,假如我們只想列舉與它們都相關的命令,應該怎麼輸入呢?

加個-a引數,只是它們沒有交集:

還是上面的apropos 'network tool',這個時候我們加上-a的引數:

apropos -a network tool

不知道大家有沒有注意到一個現象,就是通過apropos命令匹配到的命令,假如描述文字太長的話就會被省略,比如:

apropos which

git-sparse-checkout (1)這項描述太長,末尾被省略了,但是此時我們想要看全一點的描述怎麼辦?

加上-l引數即可!

即:

apropos -l which

總結

apropos命令對於經常使用Linux的工程師簡直就是福音,大家在記憶模糊的情況下,這條命令可以很快的幫助你找到你想要的命令。希望大家可以好好練習一下,有了這個神器,真的會方便好多!​