每日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获取帮助。

相关推荐
微刻时光19 分钟前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
吃面不喝汤6630 分钟前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Rookie_explorers36 分钟前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲40 分钟前
AD域控服务器
运维·服务器
weixin_4242158441 分钟前
shell运算实战案例-KFC点餐系统
linux·centos
chnyi6_ya1 小时前
一些写leetcode的笔记
笔记·leetcode·c#
hgdlip1 小时前
查看ip地址的方法有几种?探索多样方法
运维·服务器·ip地址
丶21361 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
神即道 道法自然 如来1 小时前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins
小黑爱编程1 小时前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https