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 值表示命令出错。
$$ 变量常用作暂存文件的名称以保证暂存文件不会重复。