我想知道是否有一种方法可以找出 bash 中命令的所有可选参数,而无需打开手册页并浏览大量不需要的信息。
Eg:
Input: <some_command> cat
Output: -A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines, overrides -n
-e equivalent to -vE
-E, --show-ends display $ at end of each line
-n, --number number all output lines
-s, --squeeze-blank suppress repeated empty output lines
-t equivalent to -vT
-T, --show-tabs display TAB characters as ^I
-u (ignored)
-v, --show-nonprinting use ^ and M- notation, except for LFD and TAB
--help display this help and exit
--version output version information and exit
答案1
它绝不是通用的,但许多命令提供了使用摘要回应-h
或--help
论点例如
$ cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.
-A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines, overrides -n
-e equivalent to -vE
-E, --show-ends display $ at end of each line
-n, --number number all output lines
-s, --squeeze-blank suppress repeated empty output lines
-t equivalent to -vT
-T, --show-tabs display TAB characters as ^I
-u (ignored)
-v, --show-nonprinting use ^ and M- notation, except for LFD and TAB
--help display this help and exit
--version output version information and exit
Examples:
cat f - g Output f's contents, then standard input, then g's contents.
cat Copy standard input to standard output.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/cat>
or available locally via: info '(coreutils) cat invocation'
答案2
最佳方法取决于你正在运行的命令类型。你可以尝试-h
或--help
steeldriver 建议,但对于某些命令可能不会显示全部可用选项。理想情况下,所有选项都会显示出来;但即便如此,它们也可能不会全部解释清楚。官方文档,例如man
或者info
页面通常会显示并解释所有选项——或者至少是开发人员希望用户实际使用的所有选项。(有时确实存在未记录的选项。)
首先我建议检查命令是否是外部命令或shell 内置命令。您可以使用命令执行此type
操作。在bash
,你可以将-a
标志传递给type
命令,以显示什么会如果第一个匹配项不存在则运行:
ek@Io:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
对我来说(可能对你来说也是如此),ls
是一个别名。别名扩展是非递归的,因此ls
inls --color=auto
不使用别名,而是使用第二个列表/bin/ls
。这是一条路径到可执行文件,因此是一个外部命令。
因此,要查看ls
包括所有可用选项,我会跑man ls
。
有些情况,例如cat
,很简单:
ek@Io:~$ type -a cat
cat is /bin/cat
shell 的内置命令通常没有自己的手册页,但您可以使用help
内置命令来了解它们:
ek@Io:~$ type -a history
history is a shell builtin
ek@Io:~$ type -a help
help is a shell builtin
因此,您可以运行help history
以了解history
或help help
了解help
。
对于某些内置命令,例如compgen
,help
内置命令会显示所有选项,但不会解释其中大部分选项。每当您需要有关 shell 内置命令的更多信息时,您可以查阅bash
( ) 的手册页,或者您可以通过运行或man bash
来查阅更长更完整的文档info bash
在线访问. 你可能会发现内置部分特别有用。
一些命令既可以作为外部可执行文件使用和作为 shell 内建命令,这是使用type -a
first 会有帮助的另一个原因:
ek@Io:~$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
例如,如果你运行man printf
,你将看不到有关该-v
选项的任何信息,因为/usr/bin/printf
不支持它。bash
但是 shell 内建命令支持它,运行时显示的文本help printf
会列出并解释它。
最后,对于手册页,了解以下内容很有用你可以在线阅读。