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

man和help

  • 引子
  • man(manual)
  • help
  • help和man的区别
  • 内建命令 vs 外部命令
    • 内建命令 (Built-in Commands):
    • 外部命令 (External Commands):
    • 如何判断是内建命令和外部命令
  • 再学习

引子

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

man(manual)

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

linux-kernel-module 复制代码
man [OPTION] [COMMAND]

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

输出man man命令后会出现man的手册:

linux-kernel-module 复制代码
名称
       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还为我们提供了示例:

linux-kernel-module 复制代码
      示例:
       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的帮助。

c 复制代码
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获取帮助。

相关推荐
love530love2 分钟前
Windows 11 中利用 WSL - Linux 虚拟环境部署 ChatTTS-Enhanced 项目教程
linux·运维·windows
冷曦_sole5 分钟前
linux-22 目录管理(二)rmdir命令,删除目录
linux·运维·服务器
上等猿15 分钟前
Ajax笔记
前端·笔记·ajax
群联云防护小杜15 分钟前
服务器被攻击怎么办
运维·服务器·网络·网络协议·安全·web安全
活跃的煤矿打工人28 分钟前
【星海随笔】删除ceph
linux·服务器·ceph
__zhangheng39 分钟前
Mac 查询IP配置,网络代理
linux·服务器·网络·git
lmxnsI39 分钟前
docker使用笔记
笔记·docker·容器
0xdadream42 分钟前
Vim 编辑器详细教程
linux·编辑器·vim
木卫二号Coding1 小时前
Docker-构建自己的Web-Linux系统-镜像webtop:ubuntu-kde
linux·ubuntu·docker
IT 古月方源1 小时前
ospf 的 状态机详解
运维·网络·tcp/ip·智能路由器