问题描述
我经常看到类似的东西
read
man xyz
For more information read xyz’s man page.
seeinfo xyz
所以我想知道:
-
我通常如何获得有关终端命令的帮助?
-
这些手册和信息页面到底是什么?
-
我如何找到和查看它们?
最佳方法
什么是手册页?
手册页(手册页的缩写)是Unix-like操作系统(如Ubuntu)上软件文档的传统形式。对于绝大多数命令和程序,都有一个手册页,其中列出了其选项并解释了其用法。
如何查找和查看手册页?
在终端中离线
手册页及其描述的命令会自动安装在您的系统上。要查看和搜索手册页,请使用命令man
:
man mv
在显示时显示mv
的手册页
man -k mv
在所有已安装手册页的名称和简短描述中搜索字符串mv
。允许使用POSIX扩展正则表达式,这是一种搜索,因此也可以找到例如git-mv
和semver
,如果要精确搜索mv
,请改用^mv$
。
请参见What is the difference between `man` and `man (#)`?以了解有关手册页的内容。有关更多信息,请阅读man
的手册页。 😉
我如何影响手册页的显示方式?
显示手册页的默认程序是less
。此so-called寻呼机提供了有用的搜索功能,只需输入/
,然后输入搜索项即可,例如
/--version
然后按Enter
。这将标记每个发现并滚动到第一个发现。按N
转到下一个发现,按⇧ Shift
+ N
转到上一个(请参阅How can I search within a manpage?)。有关命令列表,请按H
,要退出less
,请按Q
。
除了less
之外,还有其他可用的寻呼机:pg
,most
和w3m
仅列出三个。我推荐most
:它带有非常有用的关键字着色,使手册页更易于阅读和浏览,请亲自看看:
要使用不同于默认寻呼机的方式查看手册页,请使用-P
选项,例如:
man -P most mv
如果要更改默认的寻呼机手册页,则有两个选项:
-
仅更改
man
的默认寻呼机export MANPAGER=most
要使更改永久生效,请将此命令添加到您的
~/.bashrc
文件。 -
更改整个系统的默认寻呼机
sudo update-alternatives --config pager
风扇甚至可以(ab)将vim
用作MANPAGER
,请参阅muru编写的this article。
手册页以终端仿真器设置中指定的字体显示。如果您定期使用终端,则可能需要更改此字体。我只能推荐Hack – a typeface designed for source code,请看上面的截图以了解它的美丽。
通过GUI脱机
预装的yelp
程序是使用简单的GUI显示手册页的一种好方法。要使用yelp
开始手册页,请执行yelp man:PROGRAM
或gnome-help man:PROGRAM
,例如:
yelp man:mv
您也可以使用首选的浏览器查看手册页,请参见How do I make man pages open in a web browser?,例如适用于firefox
中的man mv
:
man -Hfirefox mv
最后但并非最不重要的一点是,您可以将手册页转换为PDF并使用首选的PDF查看器进行查看,请参阅:Is there a way to print info/man pages to PDF?
Online
http://manpages.ubuntu.com
您可以通过速记URL manpg.es/PROGRAM
来查看当前每个受支持的Ubuntu版本的存储库中可用程序的手册页,例如http://manpg.es/mv。这将打开mv
的手册页,以获取最新的Ubuntu版本,您可以在顶部栏中选择其他版本。要搜索手册页,您可以使用例如http://manpages.ubuntu.com/cgi-bin/search.py?q=mv。
如上所述,man
只能显示系统上安装的软件的手册页。要使用终端寻呼机从http://manpages.ubuntu.com查看手册页,bikeshed
软件包中提供了dman
。
其他来源
当您从其他在线资源阅读文档时,最好注意程序的版本。大多数程序都有一个--version
选项,该选项显示相关程序的版本,例如
$ mv --version
mv (GNU coreutils) 8.25
有很多网站致力于使手册页变得容易使用,我只介绍最喜欢的两个:
尚未链接源:https://wiki.ubuntuusers.de/man/
次佳方法
基本知识已经介绍过了,但是我认为一个非常有用的网站https://explainshell.com可以告诉您命令的用途,该网站将命令分解为各个部分,并显示每个位的作用。
第三种方法
什么是信息页面?
并排
man program-name
通常也有
info program-name
有时它们是相同的(重复项),但有时其中一个页面包含更多信息。例如
info ddrescue
包含的信息超过
man ddrescue
和
info date
包含的信息超过
man date
man
和info
之间的平衡取决于维护特定程序[程序包]的人员的策略。
有关更多详细信息,请参见此链接,
unix.stackexchange.com/questions/19451/difference-between-help-info-and-man-command
第四种方法
什么是help
命令?
help
显示有关bash
内置命令的有用信息。它仅对bash shell命令提供帮助。您可以使用type
来确定命令是否像内置这样,例如type echo
与type rm
的比较。
它以模式作为参数来调用:
help if
显示if
命令的帮助页面。如果您仅对命令的语法感兴趣,请使用-s
选项,如果您希望help
以man
页面格式生成输出,请使用-m
。为了方便地查看较长的帮助文本,您可以将输出通过管道传送到首选的寻呼机(请参阅this answer的“我如何影响”部分):
help -m if | less
与man
和info
的比较
您可以运行并比较以下命令:
help echo # for the bash built-in command `echo`
man echo # for the program `/bin/echo`
info echo # for the program `/bin/echo`
像本示例一样,有些程序既可以作为内置来使用,也可以作为常规程序来使用(请参见Why is there a /bin/echo and why would I want to use it?),在这种情况下,手册页通常包含一个说明。
有关更多详细信息,请参见此链接:Difference between help, info and man command · U&L
程序的选项-h
和/或--help
通常,至少可以通过以下选项之一在程序本身中获得内置的帮助:-h
,--help
或-?
:
PROGRAM -h
PROGRAM --help
PROGRAM -?
如果两个选项-h
和--help
都存在,则它们通常是等效的,但有时您会在--help
,-H
,--longhelp
,--help-all
或类似命令上获得“更多帮助”。该行为记录在程序的man
/info
页面中。
通常,通过man
和info
提供更多信息,但有时通过-h
提供排他信息。运行并比较输出
man lsblk
和
lsblk -h
诸如df
,tar
和rsync
之类的某些程序将-h
选项用于其他用途。每个程序的man
/info
页面中对此进行了描述。
同样,您可以将输出通过管道传送到您的首选寻呼机,例如:
lsblk -h | less
第五种方法
什么是教程,如何找到有用的教程
当您对Linux有一定的了解时,手册页,信息页和帮助选项将非常有用。但是从一开始,它们可能很难理解。您需要更详细的帮助才能上手。
您可以在教程中找到详细的帮助,
-
详细说明如何使用命令
-
例子
通常,您会通过Internet找到教程,有时在手册页或信息页中会找到有用的教程。
-
例如,当您使用网络浏览器的搜索引擎时,请尝试一些搜索字符串
-
寻找指定工具
-
纳米教程
-
sed教程
-
imagemagick教程
-
rsync教程
-
-
寻找任务(并找到各种工具的教程)
-
linux文本模式编辑器教程
-
Linux批处理模式图片编辑器教程
-
-
简要查看找到的一些链接,然后开始使用适合您需要的教程。
-
man rsync
足够详细,可供我用作教程,但您可能需要更多详细信息(并通过Internet查找教程)。 -
info ddrescue
有一个不错的内置教程。
第六种方法
tldroid:一个Android应用,可提供有关Linux /unix /mac命令的快速信息
https://play.google.com/store/apps/details?id=io.github.hidroh.tldroid