使用手册页查找命令

使用手册页查找命令

我们用man foo它来搜索命令foo。了解它是什么、它的任务是什么,并找到所有开关。

但关键是当你想做 foo而您不知道该命令是什么。我希望在手册页中查找与此相关的命令?

我的问题 :

有什么方法可以猜出是什么适合您需要的命令无需访问互联网和谷歌搜索?只需通过终端即可找到它们?

答案1

没有找到命令的固定方法。但man -k可能会对你有所帮助。

根据man man

man -k printf
       Search the short descriptions and manual page names for the keyword
       printf  as  regular expression.  Print out any matches.  Equivalent
       to apropos -r printf.

例如,如果我想搜索版本控制系统,我可能会尝试

man -k 'version control'|grep ' (1)'

这表明

bzr (1)              - Bazaar next-generation distributed version control

但它没有显示git,因为它的简短描述是

git (1)              - the stupid content tracker

与正则表达式“版本控制”不匹配。

答案2

如果您知道您的命令与什么相关,则可以使用以下命令apropos

xenon-lornix:~> apropos change directory

alphasort (3)        - scan a directory for matching entries
apt-listchanges (1)  - Show new changelog entries from Debian package archives
avahi-set-host-name (1) - Change mDNS host name
basename (1)         - strip directory and suffix from filenames
basename (1posix)    - return non-directory portion of a pathname
besside-ng-crawler (1) - filter EAPOL frames from a directory of capture files.
bindtextdomain (3)   - set directory containing message catalogs
BN_swap (3ssl)       - exchange BIGNUMs
brk (2)              - change data segment size
can_change_color (3ncurses) - curses color manipulation routines
can_change_color_sp (3ncurses) - curses screen-pointer extension
cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chage (1)            - change user password expiry information
chattr (1)           - change file attributes on a Linux file system
chcon (1)            - change file security context
chdir (2)            - change working directory
chdir (3posix)       - change working directory
... and 400+ more ...

由于apropos默认为或者模式...所以任何匹配的change 或者 directory返回。呼!太多了!(虽然我在这里看到了我们想要的那个)

xenon-lornix:~> apropos --and change directory

cd (1posix)          - change the working directory
chacl (1)            - change the access control list of a file or directory
chdir (2)            - change working directory
chdir (3posix)       - change working directory
chroot (2)           - change root directory
fchdir (2)           - change working directory
fchdir (3posix)      - change working directory
futimesat (2)        - change timestamps of a file relative to a directory file descriptor
git-stash (1)        - Stash the changes in a dirty working directory away
Linux::Inotify2 (3pm) - scalable directory/file change notification
mcd (1)              - change MSDOS directory
revpath (1)          - generate a relative path that can be used to undo a change-directory

这次,我们只得到了 12 个结果,好多了!而且你可以看到cd (1posix)可能有用的命令。 man cd或者man 1posix cd会显示手册页。如果你使用 shell bash(或者zsh或其他什么……),也一定要检查它们的手册页。 man bash搜索change将让你接近 bash 的内置 cd 命令的描述。(继续搜索!它就在那里!)

apropos从每晚建立的数据库(cronjob)获取信息,它实际上只搜索姓名描述手册页的部分。如果您确实想搜索关键字,请使用man -K(此处为大写 K):

xenon-lornix:~> man -K M_CHECK_ACTION

(should bring up the man page for mallopt(3))

请记住,这是一个暴力破解身体接触和搜查每一个系统上的手册页。这可能需要一段时间!不过,在所有内容都已读入并缓存后,速度会快得多。

只想要包含特定关键字的手册页列表吗?

xenon-lornix:~> man -K -w MALLOC_CHECK_

/usr/share/man/man3/malloc.3.gz
/usr/share/man/man3/malloc_get_state.3.gz
/usr/share/man/man3/mallopt.3.gz
/usr/share/man/man3/mcheck.3.gz

在那里的几页里找到的。(大写 Kay,小写 double-ewe)

看看man手册页中也有一些有趣的变化。

相关内容