1、内建命令与外部命令
内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
简单来说就是一个是天生自带的天赋技能,一个是后天得来附加技能。我们可以使用 type 命令来区分命令是内建的还是外部的。例如:
[root@izwz9gtdx1ch4f9gn56b32z ~]# type cdcd is a shell builtin[root@izwz9gtdx1ch4f9gn56b32z ~]# type vivi is /usr/bin/vi[root@izwz9gtdx1ch4f9gn56b32z ~]# type lsls is aliased to `ls --color=auto'
- #得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源码中的 builtins 的.def中 xxx is a shell builtin
- #得到这样的结果说明是外部命令,正如上文所说,外部命令在/usr/bin or /usr/sbin等等中 xxx is /usr/sbin/xxx
- #若是得到alias的结果,说明该指令为命令别名所设定的名称; xxx is an alias for xx --xxx
2、帮助命令的使用
2.1、help
help 命令是用于显示 shell 内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明,一定记住 help 命令只能用于显示内建命令的帮助信息,比如:
[root@izwz9gtdx1ch4f9gn56b32z ~]# help ls-bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'.[root@izwz9gtdx1ch4f9gn56b32z ~]# help cdcd: cd [-L|[-P [-e]]] [dir] Change the shell working directory. ...
而对于外部命令,如果想要查找说明,一般可以使用--help参数,比如:
[root@izwz9gtdx1ch4f9gn56b32z ~]# ls --helpUsage: ls [OPTION]... [FILE]...List information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters --block-size=SIZE scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below -B, --ignore-backups do not list implied entries ending with ~...
2.2、man命令
见https://my.oschina.net/pierrecai/blog/1422282
特别重复man命令打开的帮助文档中的一些操作:
- 在 man 中使用搜索
/<你要搜索的关键字>
- 或者使用
?<你要搜索的关键字>
向上查找 - 查找找完毕后你可以使用
n
键切换到下一个关键字所在处,shift+n
为上一个关键字所在处。 - 使用
Space
(空格键)翻页,使用pageUp向上翻页,pageDown向下翻页, Enter
(回车键)向下滚动一行,或者使用j
,k
(vim 编辑器的移动键)进行向前向后滚动一行。- 按下
h
键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less
工具的帮助),按下q
退出。
2.3、info命令
info命令相当于man命令的一个更为完整的版本。