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

相关推荐
骁的小小站2 小时前
Verilator 和 GTKwave联合仿真
开发语言·c++·经验分享·笔记·学习·fpga开发
kkkkk0211062 小时前
软考高级-系统架构设计师案例专题三:系统开发基础
笔记·系统架构
黄毛火烧雪下5 小时前
【Ruby 】脚本和自动化语言 常用的内容
运维·自动化·ruby
Madison-No75 小时前
【Linux】gcc/g++编辑器 && 初识动静态库 && 程序翻译过程
linux·服务器
小白不想白a6 小时前
【shell】每日shell练习:安全日志入侵检测/系统配置文件合规检查
运维·服务器
新子y6 小时前
【小白笔记】区分类方法/实例方法和静态函数/命名空间函数
笔记·分类
字节逆旅7 小时前
一个从从容容,一个连滚带爬:scp 与 rsync 的不同人生
linux
洛克大航海7 小时前
Linux 中新建用户
linux·运维·服务器
梁辰兴7 小时前
企业培训笔记:外卖平台后端--套餐管理模块--新建套餐信息
笔记·vue·mybatis·springboot·外卖管理系统
degen_7 小时前
第一次进入 PEICORE 流程
c语言·笔记