Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1076771
  • 博文数量: 242
  • 博客积分: 10209
  • 博客等级: 上将
  • 技术积分: 3028
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 09:27
文章分类

全部博文(242)

文章存档

2014年(1)

2013年(1)

2010年(51)

2009年(65)

2008年(124)

我的朋友

分类:

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快得多,并且能够识别别名和内置命令



Bourne shell
内置命令列表

: 返回零退出值
. 读和执行来自文件参数的命令,然后返回。
break 从封闭的 for、while 或 until 命令循环退出(如果有)。
cd 将当前目录更改为指定的目录。
continue 继续封闭的 for、while 或 until 命令循环的下一个迭代。
echo 将字符串写入标准输出。
eval 将自变量读作 shell 的输入,并执行最后形成的命令。
exec 执行 Argument 参数指定的命令,而不是此 shell,并不创建新进程。
exit 退出由 n 参数指定其退出状态的 shell。
export 为自动导出到后续执行的命令的环境标记名称。
hash 查找并记住指定的命令在搜索路径中的位置。
pwd 显示当前目录。
read 从标准输入读一行。
readonly 将 Name 参数指定的名称标记为只读。
return 导致函数退出,并有指定的返回值。
set 控制各种参数到标准输出的显示。
shift 左移命令行自变量。
test 求值条件表达式。
times 为从 shell 运行的进程显示累加的用户和系统次数。
trap 当 shell 接收到指定的信号时运行指定的命令。
type 解释 shell 如何将特定名称解释成命令名。
ulimit 显示或调整分配的 shell 资源。
umask 确定文件许可权。
unset 除去对应于指定名称的变量或函数。
wait 等待指定子进程结束并报告其终止状态。
阅读(1760) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~