一种是内建命令:是shell程序的一部分,写在bash的源码
builtins
里面的,通常在shell程序被加载驻留在系统内存中,解析内部命令不需要创建子进程,因此执行速度快于下面的外部命令,比如history
、cd
、exit
。一种是外部命令:是Linux实用程序的一部分,功能比较强大,不随系统一起被加载到内存中,外部命令虽然不在shell中,但其命令的调用时由shell程序控制的,外部命令是在bash之后额外安装的,通常放在
/bin,/usr/bin,/sbin,/usr/sbin
等等。比如:ls
、vi
等。
ps:我们可以实用type
来区分是外部命令还是内建命令,
$ type exit
#显示 exit is a shell builtin
#得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源码中的 builtins 的.def中
$ type vim
#显示 vim is /usr/bin/vim
#得到这样的结果说明是外部命令,正如上文所说,外部命令在/usr/bin or /usr/sbin等等中
$ type ls
#显示 ls is an alias for ls --color=tty
#若是得到alias的结果,说明该指令为命令别名所设定的名称;
额外补充:查看当前运行的shell
$ echo $SHELL
help
命令不带任何参数的话只用于显示内建命令的帮助信息,需要进入到bash
中使用(上面有讲过内建命令都在bash源码中)
注意:因此help
只能显示内建命令的相关帮助信息显示查询命令的简要说明以及一些参数的使用以及说明,
如果加上--help
的参数就可以查看外部命令的帮助信息了
$ bash
#进入bash
$ help ls
#不会显示帮助信息
$ ls --help
#建议 ls --help|less 便于查看
#成功查询
很常见的一个帮助命令,比help更加详细,而且无内建命令和外部命令之分,man好比一个电子词典,里面多是对命令的详细解释信息,help适合在紧急是忘记用哪个参数的时候用,不太紧急的适合可以用man。
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 特定的), 用来存放内核例行程序的文档。 |
(1)、当我们在查询man帮助文档时会看见左上角会有LS[1],这里的LS中的1即代表现在在第一章。
(2)、打开手册之后我们可以通过 pgup 与 pgdn 或者上下键来上下翻看,可以按 q
退出当前页面。
比man
更加详细,info
来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。所以得到的信息更多。
$ info ls
查看更多:蓝桥云课