情景
互聯(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)鍵字來搜索命令。
man -k
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可以縮小你鎖定的范圍直奋,甚至直接幫助你確定命令。‘
實(shí)例
以曾經(jīng)寫過的兩篇文章為例:
既然想要獲取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)程的運(yùn)行目錄
由文章可知船逮,相關(guān)的關(guān)鍵字有“進(jìn)程”、“運(yù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é)
其實(shí)加袋,apropos的使用包含但不局限于上面的使用場景。
在我看來抱既,apropos好處多多职烧,簡直就是單機(jī)版命令搜索引擎:
- 在孤立無援(不能借助網(wǎng)絡(luò)、請教別人、翻閱工具書的情況)時蚀之,它能給你指明方向蝗敢,縮小范圍。
- 即使有網(wǎng)絡(luò)足删,當(dāng)你遇到問題時寿谴,順手就可以使用下它,有益無害失受。
- 給它一個關(guān)鍵字讶泰,它給你返回包含這個關(guān)鍵字的相關(guān)命令。比起漫無目的地學(xué)習(xí)命令拂到,有針對性地學(xué)習(xí)命令效果會更好痪署。
- 使你更加關(guān)注命令的英文描述,不僅可以幫助你精準(zhǔn)地知道命令的含義兄旬,還無形地幫助你提高英文狼犯。
- 忘記了怎么拼寫的命令,不妨用它來幫你鎖定下范圍领铐。
- 以極小的成本讓你增長見識辜王。
實(shí)不相瞞,我在知道了這個命令后罐孝,經(jīng)常有意無意地使用它呐馆,在有意無意中解決了許多實(shí)際問題,也在有意無意中掌握了很多極為實(shí)用的命令莲兢。
一點(diǎn)經(jīng)驗(yàn):
- 返回結(jié)果過多時汹来,可以調(diào)整關(guān)鍵字,也可以借助grep和正則表達(dá)式進(jìn)一步過濾改艇。
- 鎖定命令的范圍后收班,結(jié)合man命令,效果更佳谒兄。