爱技术 & 爱分享
爱蛋蛋 & 爱生活

Linux下查看命令帮助

在学习命令帮助之前,我们先学习一下命令帮助的格式:

对于命令和参数大致有如下几种类型

没有任何修饰符参数 : 原生参数

  • <> : 占位参数
  • [] : 可选组合
  • () : 必选组合
  • | : 互斥参数
  • … : 可重复指定前一个参数
  • — : 标记后续参数类型

参数类型解读

原生参数

说明文档里的字符即为命令需要使用的字符,这种参数在使用时必需指定,且和说明文档里的一致

占位参数

表示方式:<>

和原生参数类似,都是必需指定的,只不过占位参数的实际字符是在使用时指定的,同时为了方便阅读会用一个描述词汇来表示,并以<>包围,比如

< paths>

表示路径,使用时可以指定为具体的路径,而paths只是起一个说明作用,有些帮助说明里也会用大写来表示占位参数,比如将以上参数说明写成PATHS

可选组合

表示方式: []

括号里的参数为可选参数,比如[-q],则-q为可选参数

可选项和占位参数也可以同时使用,如

[< commit>]

表示该参数可以指定某次提交,也可以不指定

必选组合

表示方式: ()

括号里的参数必需指定,通常里面会是一些互斥参数,比如

(--patch | -p)

表示--patch-p这两个参数必需指定一个

互斥参数

表示方式: |

互斥参数一般都在()和[]里,表示该参数只能指定其中一个,比如

[--mixed | --soft | --hard | --merge | --keep]

重复参数

表示方式: …

表示前一个参数可以被指定多个,比如

< paths>...

< paths>是一个占位参数,使用时必需指定为路径,…并表示可以指定多个路径。重复参数的一个

典型使用场景就是移动文件,将多个文件移动到一个目录下,比如如下命令

mv [<options>] <source>... <destination>

我们可以这样使用

mv -f a.cpp b.py dir

此时options对应为-f参数,source对应为a.cpp b.py,destination对应为dir

标记后续参数类型

表示方式: —

表示后续参数的某种类型,这是shell命令的一个通用方式,比如我们有一个文件名为-h,如果想删除这个文件,执行

rm -h

肯定是无法删除的,因为这时-h会被认为是rm的一个参数选项,应该使用

rm -- -h

这时shell会将-h解释为一个文件名传递给rm命令

命令执行方式以及命令文件的路径

一般Linux中的命令都带有帮助文件。

shell中的命令一般是这样执行的:当用户在终端上输入命令并按回车后,系统内核会在当前用户的环境变量PATH中去读取环境变量的值,变量的值就是命令的路径,命令路径不只一个,于是系统会从这些路径中从左至右的顺序匹配要查找的命令文件,直到找到并执行为止;

当这个命令被执行过已后,系统会把这个命令对应的文件路径保存在系统的哈希表中,以便下次用户执行命令时更快速的查找,查看当前用户的 hash 表。

可以执行系统内置命令 hash显示当前用户的哈希表。

要想获取命令文件的存储路径可以使用命令 which

# which 命令名

查看程序的搜索路径:

$whereis command

当系统中安装了同一软件的多个版本时,不确定使用的是哪个版本时,这个命令就能派上用场;

Linux内置命令与外部命令

在bash shell中,Linux的命令分为两种:

一种是系统shell自带的命令(builtin),这些我们叫作内置命令,通过执行 help 命令就能查看到当前系统所有内置命令;

二是外部命令,即在文件系统上的某位置有一个与命令名称对应的可执行文件。

三、命令帮助文档的获取方式

内置命令获取帮助文档的方式:
  判断一个命令是否是Linux内置的,可以用type命令,只有Linux的内置命令才能使用 help 命令获得帮助。

# type cd

输出:cd is a shell builtin

说明这个命令是系统自带的内置命令,那么就可以使用 help命令来获取帮助。

# help 命令名

外部命令获取帮助文档的方式:

(1) 第一种办法是使用 --help

格式:# 命令名 --help

例如:# mkdir --help

当然有时候 -h也代表帮助信息的意思 ,不过很多时候也有 human readable 的意思,所以 --help 是比较通用的用法

(2)whatis 命令 获取简短的用途信息

格式 :# whatis [命令]

例如:# whatis ls

这个命令的原理也是要建立搜索的索引数据库,文档会经常更新(比如装新软件,软件的帮助文档也会放在特定位置),想要获取最新的文档可以用下面的命令更新数据库

makewhatis

当使用whatisapropos两个命令发生错误时,很可能就是whatis database没有建立

(3)apropos 命令 列出所有包含该文件的信息

格式: # apropos [文件名]

例如:# apropos services

(2) 想要获取命令的完整帮助可以使用 man 命令

格式:# man 命令名

例如:# man mkdir

man命令是调用了less工具显示文档,man的具体的操作方法和less是一样的。

man命令常用快捷键:

空格键:向文件尾部翻一屏;

b:向文件首部翻一屏;

回车键:向文件尾部翻一行;

k:向文件首部翻一行;

Ctrl+d:向文件尾部翻半屏;

Ctrl+u:向文件首部翻半屏;

1G:回到项部;

/keyword:向文件尾部搜索;

?keyword:向文件首部搜索;

n:跟搜索命令相同的方向(下一个);

N :跟搜索命令相反的方向(上一个);

q:退出;

man命令打印出的文档中的段落相关说明:

NAME: 简短的指令,数据名称的说明;

SYNOPSIS: 简短的指令下达语法(syntax)简介;

DESCRIPTION:较为完整的说明;

OPTIONS:针对SYNOPSIS部分中,有列举的所有可用的选项说明;

COMMANDS:当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令;

FILES:这个程序或数据所使用或参考或连结到的某些档案;

SEE ALSO:可以参考的,跟这个指令或数据有相关的其他说明;

EXAMPLE:一些可以参考的范例;

BUGS:是否有相关的漏洞;

一般看看EXAMPLE,再看看OPTIONS就可以,如果还不能解决问题,再SEE ALSO。

使用帮助中命令格式中的字符意义:

[]:可选的部分;

{a|b}:分组,a和b作为一个使用单元来使用;

|: 或者,只能选其一;

<>:必不能少的部分;

…:同类的内容可以出现多个;

man命令分段机制:

man命令可以加一个数字参数(1~8)查看相关命令的其它信息

数字”1″:可执行命令或shell命令

数字”2″: 系统调用(functions provided by the kernel)

数字”3″:C语言库函数

数字”4″:设备或特殊文件(通常在/dev下)

数字”5″:文件格式和规则(例如/etc/passwd)

数字”6″:游戏

数字”7″:杂项(宏、包及其他杂项)

数字”8″:系统管理员相关的命令(通常只给root)

数字”9″:跟kernel有关的文件

例如,使用man查看 passwd 命令5段的帮助内容

# man 5 passwd

查看某关键字在哪些段落中有使用帮助,可以使用whatis 命令获取简短的帮助信息;

# whatis passwd //提示:如果whatis的数据尚未生成,可以使用makewhatis手动进行;

或者

# man -f passwd //精确匹配和whatis结果一样

# man -k passwd //模糊查找

输出:

passwd (1) - update user's authentication tokens

passwd (5) - password file

passwd [sslpasswd] (1ssl) - compute password hashes

(3) info 命令可以获取在线帮助文档,通常 info 命令是作为 man 命令的补充,unix里没有,跟man差不多,用法一样,只是呈现信息的形式有所差异

# info passwd

(4) 应用程序自带的帮助文档,通常在存放在目录 /usr/share/doc

参考链接:

http://littlewhite.us/archives/408

http://blog.51cto.com/wubinary/1358575

https://blog.linuxeye.cn/381.html

http://linuxtools-rst.readthedocs.io/zh_CN/latest/base/01_use_man.html

https://abcfy2.gitbooks.io/linux_basic/content/first_sense_for_linux/command_learning/show_help.html

赞(0) 传送门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。墨影 » Linux下查看命令帮助