内建命令与外部命令

内建命令

  • 内建命令是shell的一部分,包含一些比较简单的系统命令,通常在Linux系统加载运行时就会被驻留在内存系统中,因此执行速度比外部命令快。

外部命令

  • 外部命令是Linux系统中的实用程序部分,因为功能较为强大,其包含的程序量也会很大,所以不能随着系统启动被加载到内存中。

查看命令的类型

  • 使用type命令可以查看其为内建或是外部命令:

    1
    type <命令>

    image-20231027193923068

  • 通常会得到如下结果:

结果 类别
xxx is a shell builtin 内建命令
xxx is /usr/bin/xxx 外部命令
xxx is an alias for xx --xxx 命令别名

帮助命令的使用

help命令

  • help命令是用于显示shell内建命令的简要帮助信息,因此无法得到外部命令或者命令别名的相关帮助,比如输入help ls命令则会得到“无匹配帮助主题”的提示。

    image-20231027194155526

  • 而对于外部命令,通常带有一个获取帮助的参数--help,输入以获取该命令的帮助文档:

    1
    ls --help

man命令

  • man命令得到的内容比help更多更详细,而且man没有内建命令与外部命令的区分。man命令是显示系统手册页中的内容,通常为对命令的解释信息和相关描述。

  • 使用man命令得到的内容第一行会显示出该命令在文档中所处的章节位置,如使用man ls,则会显示LS(1),其中LS为手册名称,(1)表示位于该手册的第几章节。在man手册中一共有如下章节:

章节数 说明
1 Standard commands (标准命令)
2 System calls (系统调用)
3 Library functions (库函数)
4 Special devices (设备说明)
5 File formats (文件格式)
6 Games and toys (游戏和娱乐)
7 Miscellaneous (杂项)
8 Administrative Commands (管理员命令)
9 其他(Linux特定的), 用来存放内核例行程序的文档

info命令

  • 如果环境中没有info命令,那么可以自行手动安装:

    1
    2
    3
    4
    5
    # 安装 info
    sudo apt-get update
    sudo apt-get install info
    # 查看 ls 命令的 info
    info ls