linux 系统内核和各种驱动程序覆盖在下层的硬件系统之上;对上提供各种系统调用接口API,供shell和各种程序应用程序调用。
总体结构图如下:
操作系统的层次架构
一般我们理解shell指的是BASH,即linux系统默认的字符界面使用的shell版本。另外还有kshell、cshell、zshell等不同的字符管理界面shell版本。广义上说图形界面也是一种shell,即一切操作系统的外壳,供用户使用操作系统的接口都可以称为shell。
一、内建命令和外部命令
shell 是一个命令语言解释器,它拥有自己内建的shell命令集,称为内建命令。其他不包括在此命令集的命令称为外部命令。
内建命令:命令由bash源码提供,主要是一些简单的命令;常驻内存中;在shell程序内部执行,执行过程中不需要创建子进程;因此执行速度比外部命令快。如history,cd,exit等。
外部命令:需要额外安装,功能一般比较强大,运行过程占用资源也比内建命令大。通常放在/bin,/usr/bin,/sbin,/usr/sbin等。比如:ls、vi等。
二、常用帮助命令
2.1、type 检查命令或脚本信息
常用参数
type命令的基本使用方式就是直接跟上命令名字。
type -a可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令。
type -p只返回外部命令的信息,相当于which命令。
type -f只返回shell函数的信息。
type -t 只返回指定类型的信息。
使用示例
#type -a pwd
pwd is a shell builtin #内建命令
pwd is /usr/bin/pwd
2.2、help 帮助命令
help 命令只能用于内建命令,不用用于外部命令
使用示例
#help cd
cd: cd [-L|[-P [-e]]] [dir]
#help ls
-bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'.
可以使用 ls –help
2.3、man 帮助命令
man 没有内建与外部命令的区分;man 工具是显示系统手册页中的内容。man页面所属的分类标识(常用的是分类1和分类3)
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特定的),用来存放内核例行程序的文档
打开手册之后我们可以通过 pgup 与 pgdn 或者上下键来上下翻看,可以按 q 退出当前页面
2.4、info命令
$info ls
得到的信息比 man 还要多,info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。所以得到的信息当然更多
2.5、whatis 命令
查看命令简介,使用格式:
$whatis command
使用正则匹配:
$whatis -w “loca*”
2.6、查看命令路径
which command
whereis command
locate