shell有许多内置到它的源码中的命令。因为命令是内置的,shell无需到磁盘上定位它们,这样执行速度将快得多。 bash提供的help特性提供了所有内置命令的在线帮助。 内置命令
命 令 | 含 义 |
: | 空命令。返回退出状态零 |
. | 在当前进程的环境下执行程序。同source |
.file | 点命令读取并执行file里的命令 |
break | 跳出最内层的循环 |
break [n] | 参见14.6节,“循环控制命令” |
alias | 为存在的命令列出并创建别名 |
bg | 将一个作业放到后台 |
bind | 显示当前键和函数的绑定,或将键和一个readline函数或宏绑定 |
builtin [sh-builtin [args]] | 运行一个shell内置命令,给它传递参数并返回退出状态0。当一个函数和内置命令同名时很有用 |
(续表)
命 令 | 含 义 |
cd [arg] | 如果没有参数,就将目录改变到主目录或改变到参数的值 |
command command [arg] | 运行一个命令,当有一个函数和它同名时,忽略函数 |
continue [n] | 参见14.6节,“循环控制命令” |
declare [var] | 显示所有的变量或用可选属性声明变量 |
dirs | 显示pushd产生的当前记录的目录 |
disown | 从作业表中删除一个活动的作业 |
echo [args] | 显示用换行符终止的参数 |
enable | 开启和关闭shell内置命令 |
eval [args] | 读参数作为shell的输入,并执行产生的命令 |
exec command | 执行命令来取代当前的shell |
exit [n] | 以状态n退出shell |
export [var] | 使var能被子shell识别 |
fc | 用于编辑历史命令的历史编辑命令 |
fg | 将后台作业放到前台 |
getopts | 解析并处理命令行选项 |
hash | 控制内部哈希表以更快地搜索命令 |
help [command] | 显示关于内置命令的帮助信息,如果指定命令,将显示该内置命令的详细帮助 |
history | 显示带行号的历史清单 |
jobs | 列出放在后台的作业 |
kill [-singal process] | 发送信号给指定PID号或作业号的进程。可在提示符下键入:kill –l |
getopts | 用于shell脚本以解析命令行并检查合法的选项 |
let | 用来对算术表达式求值并将算术计算的结果赋给变量 |
local | 用在函数中以限制变量在函数中的作用域 |
logout | 退出登录shell |
popd | 从目录栈中删除项 |
pushd | 往目录栈中添加项 |
pwd | 显示当前工作目录 |
read [var] | 从标准输入读取一行到变量var |
readonly [var] | 使变量var只读。不能被复位 |
return [n] | 从一个函数返回,n是返回的退出值 |
set | 设置选项和位置参量。参见14.4节,“set命令和位置参量” |
shift [n] | 向左移动位置参量n次 |
stop pid | 终止PID号进程的执行 |
suspend | 暂停当前shell的执行(如果是一个登录shell就不暂停) |
(续表)
命 令 | 含 义 |
test | 检查文件类型且测试条件表达式 |
times | 为从该shell运行的进程显示所累积的用户和系统时间 |
trap [arg] [n] | 当shell接收到信号n(0、1、2或15)时执行参数 |
type [command] | 打印命令的类型。例如,pwd是一个内置shell命令 |
typeset | 和declare一样。设置变量并给它们属性 |
ulimit | 显示并设置进程资源限度 |
umask [octal digits] | 设置创建文件时关于文件属主、属组和其他用户执行权限的掩码 |
unalias | 删除别名 |
unset [name] | 删除变量值或函数 |
wait [pid#n] | 等待后台PID号为n的进程返回并报告终止状态 |
内置变量即预定义变量。在 shell 中,预先定义了几个有特殊含义的 shell 变量,它们的值只能由 shell 根据实际情况进行赋值,而不能通过用户重新设置。所有预定义变量都由 $ 符和另一个符号组成,常用的 shell 预定义变量如下:
- $#: 位置参数的数量。
- $*: 所有位置参数的内容。
- $?: 命令执行后返回的状态。
- $$: 当前进程的进程号。
- $!: 后台运行的最后一个进程号。
- $0: 当前执行的进程名。
其中,$? 用于检查上一个命令执行是否正确。在 Linux 中,命令退出状态为 0 表示该命令正确执行,任何非 0 值表示命令出错。
$$ 变量常用作暂存文件的名称以保证暂存文件不会重复。