Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息。它们可以帮助你发现你没有意识到的命令。

手册页提供了关于 Linux 命令的基本信息,很多用户经常参考它,但手册页的内容比我们很多人意识到的要多得多。

你总是可以输入一个像 man who 这样的命令,然后得到 who 命令的工作原理的漂亮描述,但是探索你可能不知道的命令可能会更有启发。例如,你可以使用 man 命令来帮助找到一些处理非常具有挑战性的任务的命令,或者显示一些选项,这些选项可以帮助你以新的更好的方式使用你已经知道的命令。

让我们来浏览一些选项,看看最终的结果是什么。

用 man 去识别命令

man 命令可以帮助你按主题查找命令。例如,如果你要找一个计算文件中的行数的命令,你可以提供一个关键字。在下面的例子中,我们把关键字 “count” 放在了引号中,并添加了空格,这样我们就不会得到与 “accounts” 或 “accounting” 相关的命令,而是得到那些可以为我们做一些计算的命令。

$ man -k ' count '

anvil (8postfix) - Postfix session count and request rate control

cksum (1) - checksum and count the bytes in a file

sum (1) - checksum and count the blocks in a file

timer_getoverrun (2) - get overrun count for a POSIX per-process timer

为了显示与新用户账户相关的命令,我们可以尝试使用这样的命令。

$ man -k "new user"

newusers (8) - update and create new users in batch

useradd (8) - create a new user or update default new user information

zshroadmap (1) - informal introduction to the zsh manual The Zsh Manual, …

需要说明的是,上面的第三项只是提到 “new users” 类似的内容,并不是设置、删除或配置用户账号的命令。man 命令只是在命令描述中匹配了一些词,作用很像 apropos 命令。注意上面列出的每个命令后面的括号中的数字。这些数字与包含这些命令的手册页的分区有关。

确定手册页的分区

man 命令的分区将其内容划分为不同的类别。要列出这些类别,请键入 man man,并查看类似下面的描述。你的系统中很可能没有第 9 分区的命令。

1:可执行程序或 shell 命令

2:系统调用(内核提供的函数)

3:库调用(程序库内的函数)

4:特殊文件(通常在可以 /dev 中找到)

5:文件格式和惯例,例如 /etc/passwd

6:游戏

7:杂项(包括宏包和约定),例如 man(7)、groff(7)

8:系统管理命令(通常只由 root 用户使用)

9:内核例程(非标准)

手册页涵盖了比我们通常认为的“命令”更多的内容。从上面的描述中可以看到,它们涵盖了系统调用、库调用、特殊文件等等。

下面的列表显示了 Linux 系统中的手册页的实际存储位置。这些目录上的日期会有所不同,因为随着更新,其中一些分区会有新的内容,而另一些则不会。

$ ls -ld /usr/share/man/man?

drwxr-xr-x 2 root root 98304 Feb 5 16:27 /usr/share/man/man1

drwxr-xr-x 2 root root 65536 Oct 23 17:39 /usr/share/man/man2

drwxr-xr-x 2 root root 270336 Nov 15 06:28 /usr/share/man/man3

drwxr-xr-x 2 root root 4096 Feb 4 10:16 /usr/share/man/man4

drwxr-xr-x 2 root root 28672 Feb 5 16:25 /usr/share/man/man5

drwxr-xr-x 2 root root 4096 Oct 23 17:40 /usr/share/man/man6

drwxr-xr-x 2 root root 20480 Feb 5 16:25 /usr/share/man/man7

drwxr-xr-x 2 root root 57344 Feb 5 16:25 /usr/share/man/man8

注意,为了节省空间,手册页文件一般都是 gzip 压缩的。每当你使用 man 命令时,man 命令会根据需要解压。

$ ls -l /usr/share/man/man1 | head -10

total 12632

lrwxrwxrwx 1 root root 9 Sep 5 06:38 [.1.gz -> test.1.gz

-rw-r--r-- 1 root root 563 Nov 7 05:07 2to3-2.7.1.gz

-rw-r--r-- 1 root root 592 Apr 23 2016 411toppm.1.gz

-rw-r--r-- 1 root root 2866 Aug 14 10:36 a2query.1.gz

-rw-r--r-- 1 root root 2361 Sep 9 15:13 aa-enabled.1.gz

-rw-r--r-- 1 root root 2675 Sep 9 15:13 aa-exec.1.gz

-rw-r--r-- 1 root root 1142 Apr 3 2018 aaflip.1.gz

-rw-r--r-- 1 root root 3847 Aug 14 10:36 ab.1.gz

-rw-r--r-- 1 root root 2378 Aug 23 2018 ac.1.gz

按分区列出的手册页

即使只看第 1 分区的前 10 个手册页(如上所示),你也可能会看到一些新的命令 —— 也许是 a2query 或 aaflip(如上所示)。

探索命令的更好策略是按分区列出命令,不查看文件本身,而是使用 man 命令向你显示命令并提供每个命令的简要说明。

在下面的命令中,-s 1 指示 man 显示第 1 分区中的命令信息。-k . 使该命令对所有命令都有效,而不是指定一个特定的关键字;如果没有这个,man 命令就会回过头来问:“你想要什么手册页?”所以,使用关键字来选择一组相关的命令,或者使用点来显示一个分区中的所有命令。

$ man -s 1 -k .

2to3-2.7 (1) - Python2 to Python3 converter

411toppm (1) - convert Sony Mavica .411 image to ppm

as (1) - the portable GNU assembler.

baobab (1) - A graphical tool to analyze disk usage

busybox (1) - The Swiss Army Knife of Embedded Linux

cmatrix (1) - simulates the display from "The Matrix"

expect_dislocate (1) - disconnect and reconnect processes

red (1) - line-oriented text editor

enchant (1) - a spellchecker

有多少手册页?

如果你对每个分区中有多少手册页感到好奇,可以使用以下命令按分区对它们进行计数:

$ for num in {1..8}

> do

> man -s $num -k . | wc -l

> done

2382

493

2935

53

441

11

245

919

确切的数量可能有所不同,但是大多数 Linux 系统的命令数量差不多。如果我们使用命令将这些数字加在一起,我们可以看到运行该命令的系统上有将近 7500 个手册页。有很多命令,系统调用等。

$ for num in {1..8}

> do

> num=`man -s $num -k . | wc -l`

> tot=`expr $num + $tot`

> echo $tot

> done

2382

2875

5810

5863

6304

6315

6560

7479 <=== total

阅读手册页可以学到很多东西,但是以其他方式浏览手册页可以帮助你了解系统上可能不知道的命令。

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux下dislocate命令用法,技术|在 Linux 中遨游手册页的海洋相关推荐

  1. Linux下dislocate命令用法,在 Linux 中遨游手册页的海洋 | Linux 中国

    原标题:在 Linux 中遨游手册页的海洋 | Linux 中国 Linux 系统上的手册页可以做的不仅仅是提供特定命令的信息.它们可以帮助你发现你没有意识到的命令. https://linux.cn ...

  2. Linux下dislocate命令用法,五个超酷Linux命令

    1.kibitz:交互对话-屏幕同时显示(师徒对话)(要求安装expect工具) kibitz是一个终端工具,它主要用于让一个"师父(master)"来帮助他/她的"徒弟 ...

  3. Linux下find命令用法详解

    Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录查找名称为test的 ...

  4. Linux 下 strace 命令用法总结

    Linux 下 strace 命令用法总结 1 功能说明 strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. str ...

  5. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

  6. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令

    linux下ftp命令使用详解---linux文件传输ftp命令 上一篇 / 下一篇  2010-12-18 09:15:35 / 个人分类:Linux ftp(file transfer proto ...

  7. linux下find命令用法

    一.Linux中find常见用法示例 ·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

  8. linux find ok用法,linux下find命令用法

    一.Linux中find常見用法示例·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

  9. Linux下addr2line命令用法

    Linux下addr2line命令用于将程序指令地址转换为所对应的函数名.以及函数所在的源文件名和行号.当含有调试信息(-g)的执行程序出现crash时(core dumped),可使用addr2li ...

  10. Linux下diff命令用法详解

    大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...

最新文章

  1. 强类型DataSet中的DBNull的处理
  2. CODEVS 1408 最长公共子序列
  3. linux shell for while if case break continue echo test 及算术运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符
  4. 并查集一般高级应用的理解
  5. 石油与天然气行业中数据报表分析
  6. JQUERY对RADIO,CHECKBOX,SELECT的操作常用方法大全
  7. javaScript = == ===的区别
  8. Rem实现自适应初体验
  9. 刚刚!中科院主导的国产编程语言木兰负责人回应了!承认32位机器上,是基于Python二次开发!...
  10. 计算机论文-中国免费,计算机硕士毕业论文免费
  11. 扫地机器人基本设计方案
  12. 永恒之蓝(ms17-010)漏洞简介及复现
  13. 计算机错误651是什么故障,宽带连接错误651是什么意思?
  14. Kubernetes 管理员认证(CKA)考试笔记(一)
  15. sql Mirroring
  16. 阿里云的云端实践有哪些?
  17. php反转图片颜色,PHP 图片处理类(水印、透明度、缩放、相框、锐化、旋转、翻转、剪切、反色)...
  18. 小屏隐藏大屏幕显示css,CSS 侧边栏在小屏设备中进行隐藏
  19. [移动硬盘]笔记本移动硬盘盒选择
  20. 无线攻击之Aircrack-ng破解无线密码(无线密码破解套件)

热门文章

  1. 文件查找工具locatfind
  2. 基于位置服务(Location Based Service)
  3. golang base64解码碰到的坑
  4. android 右边抽屉,android双抽屉:右抽屉切换
  5. 《白话大数据和机器学习》学习笔记1
  6. 前端的三种缓存技术cookie、localStorage、sessionStorage
  7. python星号直角三角形边长公式_直角三角形求边长公式图解
  8. 信息安全——密码学(下)
  9. Android隐藏app应用图标(隐式启动)
  10. webservice和jms的区别