Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104645092
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-10 18:08:01

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"选项,会显示出该命令的一些简约描述。



--------------------------------------------------------------------------------

阅读(737) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~