分类:
2008-04-10 17:06:24
内置命 令属于shell的一部分(内置在系统中)。如果用一个简单文件名作为命令,shell将首先检查它是否是某条内置命令的名字。如果是内置命令名称,那么 shell将其作为调用进程的一部分执行,也就是说shell并不会创建新的进程执行内置命令。shell并不需要在文件结构中搜索内置命令程序,这是因 为shell可以立即访问它们。
如果用户输入的简单文件名不是内置命令,shell将使用PATH变量作为指南,搜索目录结构,以查找用户想要的程序。如果shell找到这个程序,那么它将创建一个新的进程以执行这个程序。
尽管控制结构关键字(如if、foreach、endsw等)也是内置命令,但是在表9-10中并没有列出它们。这个表列出了很多tcsh内置命令,有些同时还是其他shell的内置命令。
表9-10 tcsh内置命令
内 置 命 令 |
功 能 |
%job |
与fg内置命令相同,job为用户希望放置到前台运行的作业的编号 |
%job& |
与bg内置命令相同,job为用户希望放置到后台运行的作业的编号 |
@ |
类似于内置命令set,但是能够计算算术表达式,参见第9.6.4节 |
alias |
创建和显示别名,bash使用与tcsh不同的语法,参见第9.3.1节 |
alloc |
报告空闲内存总量和已用内存空间总量 |
bg |
将一个被挂起的作业放置到后台执行 |
bindkey |
控制按键到tcsh命令行编辑器命令的映射 |
bindkey |
如果不带任何参数,bindkey将显示所有的按键绑定 |
bindkey -l |
列出所有可用的编辑器命令及其简短描述 |
bindkey -e |
将命令行编辑器切换到emacs模式 |
bindkey -v |
将命令行编辑器切换到vim模式 |
bindkey key command |
将编辑器命令command绑定到按键key上 |
(续表)
内 置 命 令 |
功 能 |
bindkey -b key command |
与前一种形式类似,但是它允许用户通过C-x形式(其中x表示用户在按下CONTROL键时输入的字符)指定控制键,通过M-x指定mata键(在大多数Linux使用的键盘上这个meta键就是ALT键)序列,并通过F-x指定功能键 |
bindkey -c key command |
将按键key绑定到命令command上,这里command不是某个编辑器命令,而是某个shell内置命令或者某个可执行程序 |
bindkey -s key string |
每当输入key时,替换成string |
builtins |
显示所有内置命令的列表 |
cd或者chdir |
改变工作目录 |
dirs |
显示目录栈 |
echo |
显示传递给该命令的参数。使用-n选项(参见第9.6.6节中的“读取用户输入”部分)或者以\c结尾(参见第11.4.2节),就可以阻止echo在行末显示RETURN符;echo内置命令类似于echo工具 |
eval |
扫描并计算命令行;如果在命令行的起始处放置eval,那么shell在执行这条命令行之前,扫描该命令行两次;这个特性对于那些由命令替换或者变量替换产生的命令来说非常有用;因为shell按照规定的顺序处理命令行,所以有时候需要重复扫描才能取得预期的结果 |
exec |
在同一个shell中使用另一个程序来覆盖正在执行的程序;原来的程序将被丢弃;更多信息可以参见第11.4.3节或者参见source |
exit |
退出TC Shell;如果这个命令后面跟着一个数值参数,那么将把这个数字作为退出状态返回 |
fg |
将某个作业放置到前台执行 |
filetest |
取出后面跟着一个或者多个文件名的某个文件查询操作符,并将该操作符应用到每个文件名上;返回结果为空格符分开的一个列表 |
glob |
类似于echo,但是在它的参数之间不显示空格符,而且在显示末尾不跟换行符 |
hashstat |
报告tcsh的hash机制的效率,hash机制加速了在搜索路径中的查找过程,还可以参见rehash和unhash |
history |
显示最近使用的命令的列表 |
jobs |
显示作业列表(被挂起的作业和那些正在后台执行的作业) |
kill |
终止某个作业或者进程 |
limit |
限制当前进程以及它所创建进程使用的计算机资源;用户可以限制该进程可以使用的秒数(CPU时间),可以限制该进程可以创建的文件大小等 |
log |
立即产生平时shell变量watch要每隔10分钟才能产生的报告 |
login |
使某个用户登录,后面可以跟着用户名 |
logout |
如果用户正在使用原shell(登录shell),那么这将结束会话 |
(续表)
内 置 命 令 |
功 能 |
ls-F |
与ls –F类似,但是速度更快;注意内置命令字符串ls-F中并不含空格符 |
nice |
降 低命令或者shell的处理优先级;如果用户希望运行一条需要大量系统资源并且不想立即得到结果的命令,那么这个命令就非常有用;如果用户是超级用户,那 么还可以使用nice来提升某个命令的优先级;关于nice内置命令和nice工具(bash下可用)的更多信息请参见第5部分第14.54节中关于 nice工具的说明 |
nohup |
允许用户在不结束后台运行进程的情况下注销;在某些系统中,这项是自动设置的;关于nohup内置命令和nohup工具(bash下可用)的更多信息请参见第5部分第14.55节中关于nohup工具的说明 |
notify |
让shell在某个作业的状态发生改变时,立即通知用户 |
onintr |
控制脚本遇到中断时采取的动作,bash中的这部分内容请参见第11.4.4节 |
popd |
从目录栈中删除一个目录 |
printenv |
显示所有环境变量的名称和取值 |
pushd |
改变工作目录,并将新的目录放置到目录栈的顶部 |
rehash |
重 新创建hash机制使用的内部表格;每当调用新的tcsh实例时,hash机制都会创建一个基于path值的所有可用命令的有序列表;当用户向path中 的某个目录添加一个新的命令时,使用rehash重新创建这个命令有序表;如果没有这样做,那么tcsh可能将搜索不到这个新的命令;还可以参见 hashstat和unhash |
repeat |
带有两个参数,即次数count和简单命令(即不包含管道和命令列表的命令),将该命令重复执行count次 |
sched |
在某个指定的时间执行命令;比如下面的命令将使shell在上午10点钟打印消息Dental appointment: tcsh $sched 10:00 echo "Dental appointment." 如果不带任何参数,那么sched打印出已调度命令的列表,如果某个已调度命令的时间到了,那么tcsh会在其即将显示提示符之前执行这个命令 |
set |
声明、初始化和显示局部变量 |
setenv |
声明、初始化和显示环境变量 |
shift |
与bash的shift内置命令类似;如果不带任何参数,shift将增加argv数组的索引。还可以带上一个数组名作为参数,对该数组执行同样的操作 |
source |
执 行参数所指定的shell脚本:source并不另外创建一个新的进程;这个与bash的句号(.)内置命令类似;因为source内置命令执行的是TC Shell脚本,所以在脚本起始处不需要以#!开头;因为是当前shell执行source,所以包含诸如set之类的命令的脚本将影响当前shell; 在用户修改完.tcshrc或者.login文件之后,可以在shell中使用source来执行它们,这样就可以在不注销并再次登录的情况下使修改生 效;可以嵌套使用source内置命令 |
stop |
停止后台运行的某个作业或者进程,stop内置命令可以接受多个参数 |
(续表)
内 置 命 令 |
功 能 |
suspend |
停止当前shell并将其放置到后台,与停止前台运行作业的挂起键类似 |
time |
执行参数指定的命令;根据shell变量time,这条命令将显示关于这条命令的时间信息;如果不带任何参数,那么time将显示当前shell与其子shell的时间 |
umask |
指定或者修改用户所创建的文件的访问权限 |
unalias |
删除别名 |
unhash |
关闭hash机制,还可参见hashstat和rehash |
unlimit |
删除对当前进程的限制 |
unset |
删除变量声明 |
unsetenv |
删除环境变量声明 |
wait |
让shell等待所有子进程结束;如果在提示符后面输入wait命令,那么直到所有后台进程全部执行完毕之后,tcsh才显示提示符;如果使用中断键中断wait,那么它将在tcsh显示提示符之前显示正在运行的进程列表 |
where |
如果使用某条命令的名字作为参数,那么where将定位该命令的所有出现,并且针对每次出现,都将指出它是别名、内置命令还是位于用户的path变量中的某个可执行文件 |
which |
与where类似,但是只报告将要执行的那条命令,而不是所有可能出现的命令;这个内置命令的速度要比Linux工具which快得多,并且能够识别别名和内置命令 |