Bash内建指令集以下的命令,大部份都没有使用例,您可能会看不出所以然,摸不着头脑。在我加入例说明前,建议您"manbash",然後自己实际操作一次。--------------------------------------------------------------------------------:[arguments]不做任何事,除了[arguments]一些参数展开及一些特定重导向的作业外。永远返回零。它的用法跟true一样。--------------------------------------------------------------------------------.filename[arguments]sourcefilename[arguments]由filename中读取命令,并执行。您会在/etc/rc.d/*中发现很多./xxxx的指令,而xxxx的permission都不是可执行的。事实上,在tcsh中,需要用source/xxxx来做同样的指令。注意到"."的後面是有空格的(比较一下"./"跟"./",不一样)。filename是内含指令的纯文字档即可,无须chmod755filename。例filename:my_sourceDEV=loIP=127.0.0.1NETMASK=255.0.0.0BROADCAST=127.255.255.255ifconfig$IPnetmask$NETMASKbroadcast$BROADCASTdev$DEV接下来.my_source或sourcemy_source便可执行该script,而不需要"chmod755my_source"--------------------------------------------------------------------------------alias[name[=value]...]昵称命令例如您如果来自DOS的世界,对UNIX的指令不习惯,可用alias来修改,以符合您的习惯。例aliasls="ls--color"aliasdir="ls"aliascd..="cd.."aliascopy="cp-f"#dangerous,recommend,"cp-i"aliasdel="rm-f"#dangerous,recommend,"rm-i"aliasmove="mv-f"#dangerous,recommend,"mv-i"aliasmd="mkdir"aliasrd="rmdir"--------------------------------------------------------------------------------unalias[-a][name...]unalias取消alias的设定。"unalias-a"将全部alias取消。例unaliascopy--------------------------------------------------------------------------------bg[jobspec]将指定任务放到背景中,如果jobspec未指定,内定为目前的。--------------------------------------------------------------------------------fg[jobspec]将指定任务放到前景中,如果jobsepc没有指定,那麽内定为目前的。--------------------------------------------------------------------------------jobs[-lnp][jobspec...]第一种形式列出目前正在工作的任务。-l:除了列出一般资讯外,还列出ProcessIDs。-p:仅列出该工作群"首脑"(Processgroupleader)的ProcessID.-n:则仅列出有改变的jobs的状态。如果给定jobspec,输出资讯则只有该jobspec。返回值为零,除非有非法的选项发生。jobs-xcommand[args...]如果使用第二种形式(-x),jobs取代指定的command及args,并执行返回其ExitStatus。--------------------------------------------------------------------------------kill[-ssigspec|-sigspec][pid|jobspec]...将sigspec的信号送到pid或jobspec。sigspec可以是SIGKILL/KILL这种形式或是信号号码。如果sigspec是signalname,则大小写无关,而且可以没有SIG。kill-l[signum]列出信号名称。[foxman@foxmanbash]#kill-l1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP6)SIGIOT7)SIGBUS8)SIGFPE9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR213)SIGPIPE14)SIGALRM15)SIGTERM17)SIGCHLD18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO30)SIGPWR--------------------------------------------------------------------------------wait[n]等待指定的行程,并返回其结束状态。n可以是个jobspec或ProcessID。如果n未指定,则等待所有的子行程,及返回值为零。若n为不存在的job或process,则返回127。否则,返回值为最後一个job/process的ExitStatus。--------------------------------------------------------------------------------bind[-mkeymap][-lvd][-qname]bind[-mkeymap]-ffilenamebind[-mkeymap]keyseq:function-name显示出目前readline的按键及链结函数设定或是巨集。-mkeymap:设定keymapbinding。-l:显示出所有readlinefunction的名称。-v:显示出目前的functionname及bindings。-d:显示出functionname及bindings。-ffilename:从filename读取keybindings。-qfunction:询问那个按键触发function。--------------------------------------------------------------------------------break[n]跳出控制回圈for/while/until中使用。如果有指定n,则跳出n层。n必须是大於等於1。若n大於巢状圈数,则所有的圈都会跳离。返回值回零。--------------------------------------------------------------------------------continue[n]还原控制回圈for/while/until中使用。如果有指定n,则返回n层。n必须是大於等於1。若n大於巢状圈数,则还原到最上层。返回值回零。--------------------------------------------------------------------------------exit[n]离开程式。n是ExitStatus。--------------------------------------------------------------------------------return[n]在function中使用。n为返回值,其作用与ExitStatus一样。--------------------------------------------------------------------------------builtinshell-builtin[arguments]执行内建函数。当您定义了与内建函数相同的指令时,可用此命令来执行内建函数。--------------------------------------------------------------------------------cd[dir]更换目录到dir。如果没有指定,内定为HOME所指定的目录。--------------------------------------------------------------------------------command[-pVv]command[arg...]用command指定可取消正常的shellfunction寻找。只有内建命令及在PATH中找得到的才会被执行。"-p"选项,搜寻命令的方式是用PATH来找。"-V"或"-v"选项,会显示出该命令的一些简约描述。--------------------------------------------------------------------------------declare[-frxi][name[=value]]typeset[-frxi][name[=value]]宣告参数并给它们设定属性。如果没有给定名称,将会显示各参数值。-f:仅使用函数名称。-r:将name设为readonly。-x:将name输出给後续环境使用。-i:该参数被设为integer来使用,可用於算术表述。用" "时,关闭该属性。--------------------------------------------------------------------------------dirs[-l][ /-n]显示目前记忆的目录。目录可透过pushd/popd来操作。 n:显示开始的记录n个。-n:显示结尾的记录n个。-l:显示较多的资讯。--------------------------------------------------------------------------------echo[-neE][arg...]输出显示args,由空白分隔。返回值永为零。-n:不跳行。-e:启动"\"符号的解译。-E:将ESC解译功能取消。"\a":alert(bell),发出声响。"\b":backspace,倒退。"\c":suppresstrailingnewline,不跳行。"\f":formfeed,跳行跳格。"\n":newline,新行。"\r":carriagereturn,回到行起点。"\t":horizontaltab,水平跳位。"\v":verticaltab,垂直跳位。"\\":输出"\"。"\nnn":输出ASCIICode号码nnn(八进位)。--------------------------------------------------------------------------------enable[-n][-all][name...]启动或关闭内建函数命令。使用"-n"将所有指定命令皆关闭,否则都是启动的。如果只有"-n"参数,它将会显示所有关闭的函数。如果只有"-all",它将会显示所有内建命令。--------------------------------------------------------------------------------eval[arg...]读取args,并将args合为一个命令,然後执行。其返回值成为eval的返回值。如果没有参数,eval返回True。--------------------------------------------------------------------------------exec[[-]command[arguments]]当命令执行时,该命令取代shell,没有新的process产生。如果第一个参数是"-",shell会将"-"放入第零个参数,传给command。--------------------------------------------------------------------------------export[-nf][name[=word]]...export-p将name输出给环境,给往後的命令使用。"-f"选项表示name是函数。"-p"显示出所有export的名称。"-n"移除name。--------------------------------------------------------------------------------set[--abefhkmnptuvxldCHP][-ooption][arg...]-a:自动将变数标记为可让後面环境所使用。-b:立即报告被终结的背景程式状态。-e:当命令(simple-command,见後面)返回非零值时,立即跳出。-f:取消pathnameexpansion。-h:找出所记忆的函数命令位置。-k:所有keyword参数都放到环境中。-m:监督模式。-n:读取命令,但不要执行。可用於语法检查。-p:打开privileged模式。-t:当读取一个命令并执行後,立即离开。-u:当参数展开时,把unset参数当成是错误。-v:列出shellinputlines。-x:在展开每个simple-command後,bash显示展开值在PS4上。-l:储存并还原namebinding在for语法中。-d:关闭hasingcommand搜寻。-C:跟`noclobber=`一样。请见内定参数一节。-H:启动!stylehistorysubstitution。-P:在使用像cd这种指令时,不要跟随symboliclinks。--:"--"之後,没有参数跟在後面。-:指定将所有後面的参数当成是位置参数。-ooption-name:option-name可以是以下之一allexport:与"-a"相同。braceexpand:启动BraceExpansion。这是内定设定。emacs:使用emacs-style命令列编辑界面。errexit:与"-e"相同。histexpand:与"-H"相同。ignoreeof:效果跟`IGNOREEOF=10`一样。interactive-commands:允许#做为解。monitor:与"-m"相同。noclobber:与"-C"相同。noexec:与"-n"相同。noglob:与"-f"相同。nohash:与"-d"相同。notify:与"-b"相同。nounset:与"-u"相同。physical:与"-P"相同。posix:Bash行为修改为Posix1003.2标准。privileged:与"-p"相同。verbose:与"-v"相同。vi:使用vi-style命令列编辑程式。xtrace:与"-x"相同。--------------------------------------------------------------------------------unset[-fv][name...]移除对映於name的参数。要注意PATH、IFS、PPID、PS1、PS2、UID、EUID不能unset。若RANDOM、SECONDS、LINENO、HISTCMD被unset,它们会丧失原有意义,既始它们後来被重设也一样。返回值为True,除非name是不能被unset的。--------------------------------------------------------------------------------fc[-eename][-nlr][first][last]fc-s[pat=rep][cmd]修正命令。--------------------------------------------------------------------------------getoptsoptstringname[args]解析位置参数。--------------------------------------------------------------------------------hash[-r][name]对每个name命令的完整路径记录下来。"-r"选项强迫忘记所有命令位置。如果没有给参数,则将会印出所有的资讯。返回值为True。--------------------------------------------------------------------------------help[pattern]显示协助资讯。--------------------------------------------------------------------------------history[n]history-rwan[filename]没有参数时,会显示所下命令的历史记录。带有参数"n"则显示最後n个。其它参数如下:-a:新增"新历史"到历史档中。-n:读取尚未读到历史中的记录。-r:读取filename做为历史档,并用它为目前历史记录。-w:将现有历史记录写到filename中。--------------------------------------------------------------------------------letarg[arg...]算术表述。请参考算术表述一节。--------------------------------------------------------------------------------local[name[=value]...]产生一个局部参数。如果用於function,则其作用围在function内及其子函数。--------------------------------------------------------------------------------logout离开loginshell。--------------------------------------------------------------------------------popd[ /-n]移除目录堆叠。" n"移除上面n个,"-n"移除下面n个。--------------------------------------------------------------------------------pushd[dir]pushd /-n将目录新增到目录堆叠的最上面。" n"旋转该堆叠,使第n个目录变成最上面。"-n"旋转该堆叠,使倒数第n个目录变成最上面。--------------------------------------------------------------------------------pwd列出目前工作目录的绝对路径。--------------------------------------------------------------------------------read[-r][name...]读进一行,然後第一个字设到第一个name,第二个设到第二个name,依此类推。如果没有name在参数中,则read会将值设到REPLY。返回值为零,除非遇到End-Of-File。若有"-r"选项,则"\n"被考虑为该行的一部份。--------------------------------------------------------------------------------readonly[-f][name...]readonly-p将给定的name标记为readonly。如果是"-f"选项,则函数也一样被标记为readonly。"-p"会列出所有readonly的name。"--"取消检查剩馀的参数。--------------------------------------------------------------------------------shift[n]PositionalParameters从n 1...开始,会被改为$1...。n若为零,则没有改变。n若未给定,则内定为1。n必须是非负数,并且小於或等於$#。若n大於$#,则没有改变。返回值为零,除非n大於$#或小於零。--------------------------------------------------------------------------------suspend[-f]暂停这个shell的执行,直到它收到SIGCONT信号。"-f"选项则是叫loginshell不要抱怨,不过还是一样暂停。返回状态零,除非该shell是个loginshell,而且没有"-f"选项。--------------------------------------------------------------------------------testexpr[expr]我们在ExitStatus的部份已经说过了,不再重。--------------------------------------------------------------------------------times列出该shell的累积的使用者及系统时间及从shell执行的process时间,返回值为零。--------------------------------------------------------------------------------trap[-l][arg][sigspec]当收到sigspec信号时,执行arg命令。"-l"显示出信号名称及号码。--------------------------------------------------------------------------------type[-all][-type|-path]name[name...]没有参数的状况下,它会显示出shell如何解译name做为命令。如果有"-type",它将会显示alias、keyword、function、builtin或file。如果有"-path"的参数,它将会显示该命令的路径,找不到的话,不显示任何东西。如果有"-all"的参数,它将会显示所有可执行name的可能路径。type接受"-a"、"-t"、"-p"做为缩写。--------------------------------------------------------------------------------ulimit[-SHacdfmstpnuv[limit]]ulimit提供了对shell的可获取资源控制的功能。-a:报告目前所有限制。-c:设定最大可产生的core档案。-d:行程资料段(process'sdatasegment)最大值。-f:可被这个shell产生的最大档案。-m:residentsetsize最大值。-s:堆叠最大值。-t:CPUTIME最大值(以秒计算)。-p:pipesizein512-byteblocks的最大值。-n:可开启的filedescriptors最大值。-u:单一使用者可使用的最大process数。-v:该shell最大虚拟记忆体可用值。所有项目是以1024做为单位。--------------------------------------------------------------------------------umask[-S][mode]将使用者的file-creationmask设为mode。"-S"选项将mask印成符号形式。