情景linux--不借助网络如何找到你需要的命令

情景

互联网的高速发展给我们的工作和生活都带来了极大的便利。比如,工作中,当你在linux系统上,遇到一个难题,不知道用什么命令时,借助网络就可以轻松解决。

这是每个IT人都具备的能力了(搜索也是有方法论的,此处不做讨论)。

如果没有网络,该怎么办?或许,你还可以翻阅工具书,请教别人,等等。

但是,如果你只能借助你登录的系统本身,又该怎么办?

再或者,即便有网络,怎样更快地找到你想要的命令呢?

方案

linux有两个命令,支持通过关键字来搜索命令。

  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,并把结果出来。

所以,在不借助网络的情况下,使用apropos可以缩小你锁定的范围,甚至直接帮助你确定命令。

实例

以曾经写过的两篇文章为例:

情景linux—如何获取一个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

你看,文章中提到的uuidgendbus-uuidgen命令就在结果中呢。

BTW:一般情况下,apropos的结果中只看第二列为(1)的命令即可。

情景linux——获取一个进程的运行目录

由文章可知,相关的关键字有“进程”、“运行目录”等,所以不妨使用process、working等关键字尝试。

$ 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命中!根据pwdx的简介可知,apropos working也可以定位到它。

总结

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

在我看来,apropos好处多多,简直就是单机版命令搜索引擎

  1. 在孤立无援(不能借助网络、请教别人、翻阅工具书的情况)时,它能给你指明方向,缩小范围。
  2. 即使有网络,当你遇到问题时,顺手就可以使用下它,有益无害。
  3. 给它一个关键字,它给你返回包含这个关键字的相关命令。比起漫无目的地学习命令,有针对性地学习命令效果会更好。
  4. 使你更加关注命令的英文描述,不仅可以帮助你精准地知道命令的含义,还无形地帮助你提高英文。
  5. 忘记了怎么拼写的命令,不妨用它来帮你锁定下范围。
  6. 以极小的成本让你增长见识。

实不相瞒,我在知道了这个命令后,经常有意无意地使用它,在有意无意中解决了许多实际问题,也在有意无意中掌握了很多极为实用的命令。

一点经验:

  1. 返回结果过多时,可以调整关键字,也可以借助grep和正则表达式进一步过滤。
  2. 锁定命令的范围后,结合man命令,效果更佳。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,412评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 100,275评论 9 468
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,280评论 19 139
  • 我有一个妹妹。 她有乌黑的头发(稍微有一点偏黄),有非常的眉毛,有个有两个洞洞的小鼻子,有两个圆不溜秋的小眼睛,有...
    张渝婧阅读 2,523评论 0 1
  • 今天10度。 骤降的温度,窗外一年四季常绿的树叶在风中被风肆虐,哈一口气,有白雾。裹在被子里,从脚底窜上来的寒意依...
    Smithereens_J阅读 3,177评论 0 4

友情链接更多精彩内容