情景l(fā)inux--不借助網(wǎng)絡(luò)如何找到你需要的命令

情景

互聯(lián)網(wǎng)的高速發(fā)展給我們的工作和生活都帶來了極大的便利。比如,工作中,當(dāng)你在linux系統(tǒng)上,遇到一個難題,不知道用什么命令時,借助網(wǎng)絡(luò)就可以輕松解決。

這是每個IT人都具備的能力了(搜索也是有方法論的,此處不做討論)。

如果沒有網(wǎng)絡(luò),該怎么辦?或許,你還可以翻閱工具書,請教別人,等等。

但是,如果你只能借助你登錄的系統(tǒng)本身,又該怎么辦?

再或者,即便有網(wǎng)絡(luò),怎樣更快地找到你想要的命令呢?

方案

linux有兩個命令,支持通過關(guān)鍵字來搜索命令。

  1. man -k
  2. apropos
$ man man
...(省略)...
-k     Equivalent to apropos.
...(省略)...

由此可見,man -k是完全等價于apropos的。

$ man apropos
NAME
       apropos - search the whatis database for strings
SYNOPSIS
       apropos keyword ...
DESCRIPTION
       apropos searches a set of database files containing short descriptions of system commands for keywords and displays the result on the standard output.
...(省略)...

由man手冊可知,apropos命令將在whatis database中查詢keyword,并把結(jié)果出來。

所以,在不借助網(wǎng)絡(luò)的情況下,使用apropos可以縮小你鎖定的范圍,甚至直接幫助你確定命令。

實例

以曾經(jīng)寫過的兩篇文章為例:

情景l(fā)inux—如何獲取一個UUID?

既然想要獲取UUID,那我們不妨以UUID來搜索一下:

$ apropos UUID
abrt-action-analyze-oops (1)  - Calculate and save UUID and duplicate hash for an oops dump directory DIR
dbus-uuidgen         (1)  - Utility to generate UUIDs
findfs               (8)  - Find a filesystem by label or UUID
uuidgen              (1)  - command-line utility to create a new UUID value

你看,文章中提到的uuidgen、dbus-uuidgen命令就在結(jié)果中呢。

BTW:一般情況下,apropos的結(jié)果中只看第二列為(1)的命令即可。

情景l(fā)inux——獲取一個進(jìn)程的運行目錄

由文章可知,相關(guān)的關(guān)鍵字有“進(jìn)程”、“運行目錄”等,所以不妨使用process、working等關(guān)鍵字嘗試。

$ apropos process | fgrep "(1)"
...(省略)...
procmail             (1)  - autonomous mail processor
ps                   (1)  - report a snapshot of the current processes
pstree               (1)  - display a tree of processes
pwdx                 (1)  - report current working directory of a process
refer                (1)  - preprocess bibliographic references for groff
renice               (1)  - alter priority of running processes
skill                (1)  - send a signal or report process status
...(省略)...

pwdx命中!根據(jù)pwdx的簡介可知,apropos working也可以定位到它。

總結(jié)

其實,apropos的使用包含但不局限于上面的使用場景。

在我看來,apropos好處多多,簡直就是單機(jī)版命令搜索引擎

  1. 在孤立無援(不能借助網(wǎng)絡(luò)、請教別人、翻閱工具書的情況)時,它能給你指明方向,縮小范圍。
  2. 即使有網(wǎng)絡(luò),當(dāng)你遇到問題時,順手就可以使用下它,有益無害。
  3. 給它一個關(guān)鍵字,它給你返回包含這個關(guān)鍵字的相關(guān)命令。比起漫無目的地學(xué)習(xí)命令,有針對性地學(xué)習(xí)命令效果會更好。
  4. 使你更加關(guān)注命令的英文描述,不僅可以幫助你精準(zhǔn)地知道命令的含義,還無形地幫助你提高英文。
  5. 忘記了怎么拼寫的命令,不妨用它來幫你鎖定下范圍。
  6. 以極小的成本讓你增長見識。

實不相瞞,我在知道了這個命令后,經(jīng)常有意無意地使用它,在有意無意中解決了許多實際問題,也在有意無意中掌握了很多極為實用的命令。

一點經(jīng)驗:

  1. 返回結(jié)果過多時,可以調(diào)整關(guān)鍵字,也可以借助grep和正則表達(dá)式進(jìn)一步過濾。
  2. 鎖定命令的范圍后,結(jié)合man命令,效果更佳。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,230評論 2 33
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,662評論 9 468
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,552評論 19 139
  • 我有一個妹妹。 她有烏黑的頭發(fā)(稍微有一點偏黃),有非常的眉毛,有個有兩個洞洞的小鼻子,有兩個圓不溜秋的小眼睛,有...
    張渝婧閱讀 357評論 0 1
  • 今天10度。 驟降的溫度,窗外一年四季常綠的樹葉在風(fēng)中被風(fēng)肆虐,哈一口氣,有白霧。裹在被子里,從腳底竄上來的寒意依...
    Smithereens_J閱讀 475評論 0 4

友情鏈接更多精彩內(nèi)容