每日Linux(一)——man和help命令

引子

为什么要从man和help开始学习?因为这两个命令可以大大提升学者的自学能力。学会了这两个命令,可以搞定很多的问题。

man命令

man是英文单词manual的缩写,在这里是手册的意思,man最大的作用就是列出目标命令的安装手册,可供用户查看目标命令的使用方法。

man [OPTION] [COMMAND]

我们同样可以通过man命令查看man的手册进行参考:
输出man man命令后会出现man的手册:

名称
       man - 系统参考手册的接口
概述
       man [man 选项] [[章节]...] ...
       man -k [apropos 选项] 正则表达式 ...
       man -K [man 选项] [章节] 关键词 ...
       man -f [whatis 选项]...
       man -l [man 选项] 文件 ...
       man -w|-W [man 选项] page ...

从上面我们可以看出:
man -k其实与apropos等价,因为二者的[OPTIONG]可以通用。
同理man -f与whatis等价。
是不是还有些困惑,没关系man还为我们提供了示例:

      示例:
       man ls
           显示 项目 (程序)  ls 对应的手册页。
       man man.7
           显示章节 7 中宏包 man 对应的手册页。(这是“man 7 man”的另一种拼方
           法。)
       man 'man(7)'
           显示章节 7 中宏包 man 对应的手册页。(这是“man 7 man”的另一种拼写方法。该方法在复制和粘贴手册页的交叉引用时可能更方便。请注意,括号在通常情况下必须被引号括起以避免 shell 转义。)
       man -a intro
           正确执行时显示手册中包含的所有可用的 intro 手册页。可以在连续显示过
           程中退出或跳过任一页。
       man -k printf
           将关键词   printf    作为正则表达式来搜索对应的手册页概述和手册页名
           称,并打印所有匹配结果。等效于 apropos printf.
       man -f smail
           查找 smail 引用的手册页并输出找到的所有概述。等效于 whatis smail.

这里其实我们就已经初步了解了man的用法,剩下的就是应用了。

help

help函数的主要作用是用于获取“帮助”信息,命令的基本结构是 help [-dms] [模式 ...]
输出help help获取help的帮助。

help: help [-dms] [模式 ...]
//这里解释一下[-dms]的意思也就是[OPTION]的选项有三个 -d -m 和 -s 我们可以从下面的    
显示内建命令的相关信息。
    
    显示内建命令的简略信息。如果指定了 <模式>,给出所有匹配 <模式>
    的命令的详细帮助,否则打印帮助主题列表。
    
    选项:
      -d	输出每个主题的简短描述
      -m	以伪 man 手册的格式显示用法
      -s	仅对每一个匹配 <模式> 的主题输出简短的用法提要
    
    参数:
      模式	用来确定帮助主题的模式
    
    退出状态:
    返回成功,除非没有找到 <模式>,或者使用了无效的选项。

其实我们看上面的解释就能很好地使用help了。

help和man的区别

在学习help用法的时候,我们可不可以输入man help指令查看help的手册呢?
答案是不可以

为什么呢?

  • help 是Bash shell的内建命令,用于获取Shell内建命令的简要帮助信息。它并不提供外部命令(系统上安装的其他软件包提供的命令)的帮助。
  • man 主要用于查看外部命令的手册页,包括系统上安装的外部命令的详细文档。

为了理解以上一段话,我们首先得知道内建命令和外部命令。

内建命令 vs 外部命令

内建命令 (Built-in Commands):

定义:内建命令是直接嵌入到Shell解释器中的命令。它们不是独立的可执行文件,而是Shell的一部分。
执行位置:在Shell解释器中执行,而不需要启动新的进程。
性能:通常比外部命令执行得更快,因为它们不需要启动额外的进程。
例子:cd、echo、pwd 是Bash中的内建命令。

外部命令 (External Commands):

定义:外部命令是独立的可执行文件,存储在文件系统中的某个位置。它们不是Shell解释器的一部分。
执行位置:需要启动新的进程,通过调用外部命令的可执行文件来执行。
性能:相对较慢,因为需要创建新的进程。
例子:ls、grep、cp 是外部命令,它们通常存储在系统的可执行文件路径中。

如何判断是内建命令和外部命令

我们使用type命令来查找一个命令是内建命令还是外部命令。type命令非常简单,就不赘述了,在这里我们可以先使用type type查看type的命令类型,然后决定使用man还是help自学type。

再学习

--help可以在一定程度上解决man和help在内建命令和外部命令的尴尬问题,无论是内建命令还是外部命令,都可以使用下面的代码

[command] --help
  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mottte

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值