LinuxShell命令概述

1. 简介

1.1 概述

Linux Shell 中包含大量的命令,提供了许许多多强大的功能。Shell 命令分为内建命令外部命令;如果需要查看不同命令的帮助,对于内建命令,可以使用 Shell 的一个内建命令 help 来查询帮助信息;对于外置命令,可以使用 Shell 的外部命令 man 或 info(更详细)来查询帮助信息。判断某个命令是内建命令还是外部命令可以使用 Shell 的一个内建命令 type 来查看。

1.2 区别

  • 外部命令(也被成为文件系统命令)
  1. 外部命令是存在于 Shell 之外的程序,它们并不是 shell 程序的一部分。
  2. 外部命令程序通常位于 /bin/usr/bin/sbin/usr/sbin 中。
  3. 当外部命令执行时,父进程发出外部命令并创建出一个子进程(称为衍生)来执行外部命令。比如以 ps -f 为例:
graph LR
A((父进程<br>发出外部命令<br>ps -f))
B((子进程<br>执行外部命令<br>ps -f))
A -->|衍生| B
  1. 由于衍生操作,外部命令需要花费一定代价来设置子进程的环境。
  • 内建命令
  1. 内建命令不需要子进程来执行,它们已经和 Shell 编译成了一体,作为 Shell 工具的组成部分存在,不需要借助外部程序文件来运行。
  2. 由于不需要衍生子进程,也不需要打开程序文件,故内建命令相比外部命令更高效。

【注】有些命令既有内建命令又有外部命令(比如 echo 、pwd 等)

2. 内建命令 help

2.1 简介

Linux Shell 中的内建命令 help 用来显示内建命令的相关帮助信息。

2.2 格式

1
help [OPTION] [PATTERN]

其中,OPTION 参数指定 help 命令的选项参数,help 打印匹配 PATTERN 模式的所有帮助信息。若未指定 PATTERN,则 help 命令默认显示支持的所有内建命令。

【注】PATTERN 采用的是通配符模式。

选项参数 说明
-d 输出每个主题的简短描述
-m 以伪 man 手册的格式显示使用方法
-s 为每一个匹配 PATTERN 模式的主题仅显示一个用法

3. 外部命令 man

3.1 简介

Linux Shell 中的外部命令 man 用于查询系统 man 手册。

3.2 格式

详情查看 man 手册和 info 手册。

4. 外部命令 info

4.1 简介

Linux Shell 中的外部命令 info 用于阅读系统 info 文档(比 man 手册要更详细)。

4.2 格式

1
info [OPTION]... [MENU-ITEM...]

详情查看 man 手册和 info 手册。

5. 内建命令 type

5.1 简介

Linux Shell 中的内建命令 type 用于显示指定的命令名称的类型信息。如果同时指定多个命令名称,则依次显示其类型信息。

5.2 格式

1
type [OPTION] NAME [NAME ...]

其中,OPTION 用于指定选项参数,NAME 为命令名称。

选项参数 说明
-a 当未指定 -p 选项时,显示所有包含名称为 NAME 的可执行文件位置(包括别名、内建命令和函数);当指定 -p 选项则按照 -p 选项处理
-f 禁止函数查询
-P 为每个 NAME 名称进行 PATH 路径搜索(包括别名、内建命令和函数),并返回将被执行的可执行文件的全局路径
-p 返回将被执行的可执行文件的全局路径
-t 判断 NAME 名称的类别(alias 、keyword 、function 、builtin 、file 或者 "";依次对应 NAME 是一个别名、Shell 保留字、Shell 函数、Shell 内建命令、可执行文件和未找到)

【注】若指定多个 NAME,则当所有 NAME 命令都找到时返回成功,任何一个找不到返回失败。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!