如何获得有关终端命令的帮助?


33

我经常看到类似的东西

阅读 有关更多信息,请阅读xyz的手册页。 看到man xyz

info xyz

所以我想知道:

  • 我通常如何获得有关终端命令的帮助?
  • 这些手册信息页到底是什么?
  • 我如何找到和查看它们?



我还要提及tldr.sh,这是为了简化和以更好的方式显示手册页。
不,没有显示我的真实姓名,

@ Nodon'tshownmyrealname您能写一个答案tldr吗?您还可以提及cheat,甚至可以提及cheat.sh
甜点

Answers:


44

什么是手册页

手册页(手册页的缩写)是类似Unix的操作系统(如Ubuntu)上软件文档的传统形式。对于绝大多数命令和程序,都有一个手册页,其中列出了其选项并解释了其用法。

如何查找和查看手册页?

在终端中离线

手册页及其描述的命令会自动安装在您的系统上。要查看和搜索手册页,请使用以下命令man

man mv

显示mvwhile 的手册页

man -k mv

在所有已安装的手册页的名称和简短描述中搜索字符串mv。允许使用POSIX扩展正则表达式,这是一个搜索,因此,如果您要搜索确切使用的话,还将找到eg git-mv和。semvermv^mv$

请参阅`man`和`man(#)`有什么区别?了解有关手册页部分的信息。有关更多信息,请阅读man的手册页。;)

我如何影响手册页的显示方式?

显示手册页的默认程序是less。所谓的寻呼机提供了有用的搜索功能,只需输入/搜索词,然后输入即可,例如

/--version

然后按Enter。这将标记每个发现并滚动到第一个发现。按此N按钮转到下一个搜索结果,按⇧ Shift+ N转到上一个搜索结果(请参阅如何在联机帮助页中进行搜索?)。有关命令列表,请按H,要退出,请lessQ

除了less其他寻呼机可供选择:pgmostw3m刚刚列出三个。我建议most:它带有非常有用的关键词颜色,使手册页易于阅读和浏览,亲自体验一下:

显示mv的联机帮助页的大多数屏幕截图

要使用不同于默认寻呼机的-P方式查看手册页,请使用以下选项,例如:

man -P most mv

如果要更改默认的寻呼机手册页,则有两个选项:

  • 仅更改默认寻呼机 man

    export MANPAGER=most
    

    要使更改永久生效,请将此命令添加到~/.bashrc文件中。

  • 更改整个系统的默认寻呼机

    sudo update-alternatives --config pager
    

粉丝们甚至可以滥用vimMANPAGER,请参阅muru撰写的这篇文章

手册页以终端仿真器设置中指定的字体显示。如果您定期使用终端,则可能需要更改此字体。我只能推荐Hack-专为源代码设计的字体,有关其美观,请参见上面的屏幕截图。

通过GUI脱机

预装程序是使用简单的GUI显示手册页的一种好方法yelp。要使用yelpexecute yelp man:PROGRAM或来启动手册页gnome-help man:PROGRAM,例如:

yelp man:mv

您还可以使用首选的浏览器查看手册页,请参阅如何在Web浏览器中打开手册页?,例如用于man mvfirefox

man -Hfirefox mv

最后但并非最不重要的一点是,您可以手册页转换为PDF并使用首选的PDF查看器进行查看,请参见:是否可以将信息/手册页打印为PDF?

线上

http://manpages.ubuntu.com

您可以使用速记URL manpg.es/PROGRAM(例如http://manpg.es/mv)通过当前每个受支持的Ubuntu版本的存储库查看可用程序的手册页。这会打开mv的手册页,以获取最新的 Ubuntu版本,您可以在顶部栏中选择其他版本。要搜索手册页,可以使用例如http://manpages.ubuntu.com/cgi-bin/search.py​​?q=mv

如上所述,man只能显示系统上安装的软件的手册页。要使用终端寻呼机从http://manpages.ubuntu.com查看手册页,dman请参见bikeshed软件包中的内容。

其他来源

当您从其他在线来源阅读文档时,最好注意程序的版本。大多数程序都有一个--version选项,用于显示相关程序的版本,例如

$ mv --version
mv (GNU coreutils) 8.25

有很多网站致力于使手册页变得容易使用,我只介绍最喜欢的两个:

  • man7.org带有有用的语法突出显示功能,但它仅包含程序的最新发行版
  • manpag.es托管Ubuntu版本的手册页

来源尚未链接:https : //wiki.ubuntuusers.de/man/


另一个有用的技巧(至少在您是程序员的情况下)是编写一个小的脚本,将人的输出转储到您选择的文本编辑器中。例如(\ n是换行符)#!/ bin / tcsh \ n设置名称= $ argv [$#argv] \ n设置文件=/tmp/man。$name.out\n/ usr / bin / man $ * | col -bx> $ file \ n(编辑器的路径)$ file \ n rm $ file \ n类似但特定于编辑器的宏将允许您从编辑器内部调用man,这非常有用。
jamesqf

@jamesqf有趣的是,您为什么这样做?何时使用它?由于编辑人员通常可以从stdin中读取内容,因此可以将其简化为eg man $*|col -bx|nano -man $*|col -bx|kate -i
甜点

@jamesqf如果您将手册页导出到文本文件以便于搜索或导航,那么您确实应该考虑看看 SUMPARY OF LESS COMMANDS”页面。可以通过在lessman使用less分页命令)中键入“ h”来打开它。因此也可以使用man
Ludovic Ronsin

@Ludovic Ronsin:我在编辑器中这样做,而不是出于两个原因。首先,因为我知道我的编辑器的命令(比起较少的命令要强大得多),而且不必费心学习另一组命令,这在不同的情况下我将不可避免地造成混淆。其次,因为我可以将编辑器版本挂接到按键(按Alt-m键),从而在具有手册页的任何函数调用上获得帮助。至于我为什么要这样做,我在20多年前就写了,而且效果很好。
jamesqf

@jamesqf只会设置PAGER =“ vim-”吗?
d33tah

13

基本知识已经介绍过了,但是我认为可以对您说出命令的作用的网站https://explainshell.com很有帮助。https://explainshell.com将命令分解为几个部分,并显示每个部分的作用。

在此处输入图片说明


1
+1绝对不是我写此问答时所追求的,但这是我不知道的宝贵资源–非常感谢!当其他答案故意涵盖一个主要主题时,也许您将答案扩展到涵盖了一般的在线工具?shellcheck.net浮现在脑海…
甜点

12

什么是信息页

并排

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


11

help命令是什么?

help显示有关bash内置命令的有用信息。它仅对bash shell命令提供帮助。您可以使用type以确定命令是否被这样的内置,如type echotype rm

它以模式作为参数来调用:

help if

显示if命令的帮助页面。如果您仅对命令的语法感兴趣,请使用该-s选项,如果您想helpman页面格式生成输出,请使用-m。为了方便地查看较长的帮助文本,您可以将输出通过管道传送到您的首选寻呼机(请参见此答案的“我如何影响”部分):

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`

像本示例一样,有些程序既可以作为内置程序使用,也可以作为普通程序使用(请参阅为什么有/ bin / echo以及为什么要使用它?),在这种情况下,手册页通常包含一个注意表示。

有关更多详细信息,请参见此链接:帮助,信息和手动命令之间的区别·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

某些程序,例如和dftarrsync使用选项-h进行其他操作。在每个程序的man/ info页中对此进行了描述。

同样,您可以将输出通过管道传送到您的首选寻呼机,例如:

lsblk -h | less

感谢您的提及--help,这通常是大多数命令所需要的,也是我尝试的第一件事。
JPhi1618

6

什么是教程,如何找到有用的教程

当您对Linux有一定的了解时,手册页,信息页和帮助选项将非常有用。但是从一开始,它们可能很难理解。您需要更详细的帮助才能上手。

您可以在教程中找到详细的帮助,

  • 详细说明如何使用命令
  • 例子

通常,您会通过Internet找到教程,有时在手册页或信息页中会找到有用的教程。

  • 例如,当您使用网络浏览器的搜索引擎时,请尝试一些搜索字符串

    • 寻找指定工具

      • 纳米教程
      • sed教程
      • imagemagick教程
      • rsync教程
    • 寻找任务(并找到各种工具的教程)

      • linux文本模式编辑器教程
      • Linux批处理模式图片编辑器教程

简要查看找到的一些链接,然后开始使用适合您需要的教程

  • man rsync 足够详细,可供我用作教程,但您可能需要更多详细信息(并通过互联网查找教程)。
  • info ddrescue 有一个很好的内置教程。

太好了,谢谢您的不懈努力–我认为这个问题将成为我们初学者可以参考的非常有用的资料来源。我将为问题添加内容索引,并将答案链接到备用观众,从而进行滚动。
甜点

1
@dessert,这是您的一个很好的尝试,我很高兴为您提供帮助:-)
sudodus


2

我最喜欢的是commandlinefu.com,有一个函数在你.bashrc.zshrc类似这样的

cmd() { curl "http://www.commandlinefu.com/commands/matching/$(echo "$@" \
    | sed 's/ /-/g')/$(echo -n $@ | base64)/plaintext" ;}

让我们尝试一下cmd mount cd,我调用了我的函数cmd,您可以随意调用它

在此处输入图片说明

上面的功能可以搜索commandlinefu的网站,这是一个社区驱动的网站,就像这里一样,用户可以升级命令等。然后,它显示了如图所示的最佳结果。

或者有一种使用this的新方法。

http://samirahmed.github.io/fu/

这是一个教程

让我们做 fu cron

在此处输入图片说明


1

弄清楚如何打开终端窗口并发出命令man man。每当底部显示“更多”时,请键入空格键以前进至下一个屏幕。您正在阅读手册阅读程序的手册页man

您需要解决一个非常小的鸡肉和鸡蛋问题。该man命令可帮助您阅读有关系统上每个命令的手册。但是man输出使用另一个名为的命令more。您也可以阅读man more以了解有关的其他导航命令more

这就是一切!通过阅读数百个命令的手册页,我了解了有关Unix的所有知识。


3
在Ubuntu上,默认情况下man使用less,而不是more
muru

0

许多人已经提到过man。很少man有人知道的一个很酷的功能是

man -t $(手册 > manpage.ps

它为手册页生成一个PostScript文件。PostScript可以轻松转换为PDF。与默认的命令行终端版本相比,这种格式的格式要好得多man

例如:

man -t man> man.ps

pstopdf手册

我刚刚在Ubuntu(它应该在其他Linuces上运行)和Mac OS上进行了测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.