因此,我了解到有一些man
页面可以在互联网不可用或需要高级使用时获取文档,但是如果我离线并且不知道需要什么工具怎么办?有没有可以让我看到每个程序/命令和简短说明的命令?
因此,我了解到有一些man
页面可以在互联网不可用或需要高级使用时获取文档,但是如果我离线并且不知道需要什么工具怎么办?有没有可以让我看到每个程序/命令和简短说明的命令?
Answers:
您可以使用内置的bash(1) compgen
compgen -c
将列出您可以运行的所有命令。compgen -a
将列出您可以运行的所有别名。compgen -b
将列出您可以运行的所有内置插件。compgen -k
将列出您可以运行的所有关键字。compgen -A function
将列出您可以运行的所有功能。compgen -A function -abck
一口气列出以上所有内容。上面的命令根据用户的权限集列出了用户可用的所有命令。我禁用了网络并测试了上述命令,即使禁用,它也可以工作。但是,就简短描述而言,据我所知,一旦获得命令,就可以查看手册页。
可用于查看有关命令说明的其他一些命令是,
apropos
whatis
less
groff
参考文献
apropos -s1
似乎是一个更好的答案,因为它包含了每个命令的作用的单行描述。答案确实是别名,函数等的列表,但由于对它们的解释不多,IMO的使用受到限制。
一般而言:不,某些程序没有文档。
但是,apropos
可能正是您需要的。
例如apropos ssh
,在我的情况下,将列出与ssh相关的手册页:
authorized_keys (5) - OpenSSH SSH daemon
git-shell (1) - Restricted login shell for Git-only SSH access
rlogin (1) - OpenSSH SSH client (remote login program)
rsh (1) - OpenSSH SSH client (remote login program)
slogin (1) - OpenSSH SSH client (remote login program)
ssh (1) - OpenSSH SSH client (remote login program)
ssh-add (1) - adds private key identities to the authentication agent
ssh-agent (1) - authentication agent
ssh-argv0 (1) - replaces the old ssh command-name as hostname handling
ssh-copy-id (1) - use locally available keys to authorise logins on a remote machine
ssh-keygen (1) - authentication key generation, management and conversion
ssh-keyscan (1) - gather ssh public keys
ssh-keysign (8) - ssh helper program for host-based authentication
ssh-pkcs11-helper (8) - ssh-agent helper program for PKCS#11 support
ssh_config (5) - OpenSSH SSH client configuration files
sshd (8) - OpenSSH SSH daemon
sshd_config (5) - OpenSSH SSH daemon configuration file
XAllocClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XGetClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XSetClassHint (3) - allocate class hints structure and set or read a window's WM_CLASS property
XtIsShell (3) - obtain and verify a widget's class
你可以看到一些网页出现超过一次,原因是rsh
slogin
与ssh
具有相同的手册页。像往常一样,也存在误报。
apropos -s1
,这将提取man
第1节中的所有命令,并且仅提取那些命令,这似乎是OP想要的。
您可以使用whatis
以下命令阅读许多命令的简短描述:
$ whatis pwd
pwd (1p) - return working directory name
pwd (1) - print name of current/working directory
pwd (n) - Return the absolute path of the current working directory
您可以要求几个命令:
$ whatis pwd ls ps
pwd (1p) - return working directory name
pwd (1) - print name of current/working directory
pwd (n) - Return the absolute path of the current working directory
ls (1p) - list directory contents
ls (1) - list directory contents
ps (1) - report a snapshot of the current processes.
ps (1p) - report process status
因此,您可以尝试通过结合whatis
使用来生成所有命令的描述列表compgen
:
$ whatis $(compgen -c)
ping
仍会被列为可执行文件,但对您没有多大帮助。另外,这不是基于用户的current$PATH
,这意味着如果命令不在名为搜索路径的目录之一中,它将永远不会显示出来?