Bash内建指令集 以下的命令,大部份都没有使用例,您可能会看不出所以然,摸不着头脑。在我加入例说明前,建议您"manbash",然後自己实际操作一次。
--------------------------------------------------------------------------------
:[arguments] 不做任何事,除了[arguments]一些参数展开及一些特定重导向的作业外。
永远返回零。它的用法跟true一样。
--------------------------------------------------------------------------------
.filename[arguments] sourcefilename[arguments] 由filename中读取命令,并执行。 您会在/etc/rc.d/*中发现很多 ./xxxx 的指令,而xxxx的permission都不是可执行的。事实上,在tcsh中,需要用 source/xxxx 来做同样的指令。 注意到"."的後面是有空格的(比较一下"./"跟"./",不一样)。filename是内含指令的纯文字档即可,无须chmod755filename。
例 filename:my_source DEV=lo IP=127.0.0.1 NETMASK=255.0.0.0 BROADCAST=127.255.255.255
ifconfig$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-l 1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL 5)SIGTRAP6)SIGIOT7)SIGBUS8)SIGFPE 9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR2 13)SIGPIPE14)SIGALRM15)SIGTERM17)SIGCHLD 18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN 22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ 26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO 30)SIGPWR
--------------------------------------------------------------------------------
wait[n] 等待指定的行程,并返回其结束状态。n可以是个jobspec或ProcessID。如果n未指定,则等待所有的子行程,及返回值为零。若n为不存在的job或process,则返回127。否则,返回值为最後一个job/process的ExitStatus。
--------------------------------------------------------------------------------
bind[-mkeymap][-lvd][-qname] bind[-mkeymap]-ffilename bind[-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印成符号形式。
|