免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1205 | 回复: 3
打印 上一主题 下一主题

Bash内建指令集 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-22 12:07 |只看该作者 |倒序浏览
Bash内建指令集
以下的命令,大部份都没有使用例,您可能会看不出所以然,摸不着头脑。在我加入例说明前,建议您"man bash",然後自己实际操作一次。



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

: [arguments]
不做任何事,除了[arguments]一些参数展开及一些特定重导向的作业外。

永远返回零。它的用法跟true一样。



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

. filename [arguments]
source filename [arguments]
由filename中读取命令,并执行。
您会在/etc/rc.d/*中发现很多
. /xxxx
的指令,而xxxx的permission都不是可执行的。事实上,在tcsh中,需要用
source /xxxx
来做同样的指令。
注意到"."的後面是有空格的(比较一下". /"跟"./",不一样)。filename是内含指令的纯文字档即可,无须chmod 755 filename。


filename : my_source
DEV=lo
IP=127.0.0.1
NETMASK=255.0.0.0
BROADCAST=127.255.255.255

ifconfig $IP netmask $NETMASK broadcast $BROADCAST dev $DEV

接下来
. my_source

source my_source

便可执行该script,而不需要"chmod 755 my_source"



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

alias [name[=value] ...]
昵称命令
例如您如果来自DOS的世界,对UNIX的指令不习惯,可用alias来修改,以符合您的习惯。


alias ls="ls --color"
alias dir="ls"
alias cd..="cd .."
alias copy="cp -f" # dangerous, recommend, "cp -i"
alias del="rm -f" # dangerous, recommend, "rm -i"
alias move="mv -f" # dangerous, recommend, "mv -i"
alias md="mkdir"
alias rd="rmdir"

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

unalias [-a] [name ...]
unalias取消alias的设定。"unalias -a"将全部alias取消。


unalias copy

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

bg [jobspec]
将指定任务放到背景中,如果jobspec未指定,内定为目前的。



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

fg [jobspec]
将指定任务放到前景中,如果jobsepc没有指定,那麽内定为目前的。



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

jobs [-lnp] [ jobspec ... ]
第一种形式列出目前正在工作的任务。
-l : 除了列出一般资讯外,还列出Process IDs。
-p : 仅列出该工作群"首脑"(Process group leader)的Process ID.
-n : 则仅列出有改变的jobs的状态。
如果给定jobspec,输出资讯则只有该jobspec。

返回值为零,除非有非法的选项发生。

jobs -x command [ args ... ]

如果使用第二种形式(-x),jobs取代指定的command及args,并执行返回其Exit Status。



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

kill [-s sigspec | -sigspec] [pid | jobspec] ...
将sigspec的信号送到pid或jobspec。
sigspec可以是SIGKILL/KILL这种形式或是信号号码。如果sigspec是signal name,则大小写无关,而且可以没有SIG。
kill -l [signum]
列出信号名称。

[foxman@foxman bash]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGIOT 7) SIGBUS SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
1 SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 2 SIGWINCH 29) SIGIO
30) SIGPWR



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

wait [n]
等待指定的行程,并返回其结束状态。n可以是个jobspec或Process ID。如果n未指定,则等待所有的子行程,及返回值为零。若n为不存在的job或process,则返回127。否则,返回值为最後一个job/process的Exit Status。



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

bind [-m keymap] [-lvd] [-q name]
bind [-m keymap] -f filename
bind [-m keymap] keyseq:function-name
显示出目前readline的按键及链结函数设定或是巨集。

-m keymap : 设定keymap binding。
-l : 显示出所有readline function的名称。
-v : 显示出目前的function name及bindings。
-d : 显示出function name及bindings。
-f filename : 从filename读取key bindings。
-q function : 询问那个按键触发function。



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

break [n]
跳出控制回圈for/while/until中使用。如果有指定n,则跳出n层。n必须是大於等於1。若n大於巢状圈数,则所有的圈都会跳离。返回值回零。



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

continue [n]
还原控制回圈for/while/until中使用。如果有指定n,则返回n层。n必须是大於等於1。若n大於巢状圈数,则还原到最上层。返回值回零。



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

exit [n]
离开程式。n是Exit Status。



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

return [n]
在function中使用。n为返回值,其作用与Exit Status一样。



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

builtin shell-builtin [arguments]
执行内建函数。当您定义了与内建函数相同的指令时,可用此命令来执行内建函数。



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

cd [dir]
更换目录到dir。如果没有指定,内定为HOME所指定的目录。



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

command [-pVv] command [arg ...]
用command指定可取消正常的shell function寻找。只有内建命令及在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" : suppress trailing newline,不跳行。
"\f" : form feed,跳行跳格。
"\n" : new line,新行。
"\r" : carriage return,回到行起点。
"\t" : horizontal tab,水平跳位。
"\v" : vertical tab,垂直跳位。
"\\" : 输出"\"。
"\nnn" : 输出ASCII Code号码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] [-o option] [arg ...]
-a : 自动将变数标记为可让後面环境所使用。
-b : 立即报告被终结的背景程式状态。
-e : 当命令(simple-command,见後面)返回非零值时,立即跳出。
-f : 取消pathname expansion。
-h : 找出所记忆的函数命令位置。
-k : 所有keyword参数都放到环境中。
-m : 监督模式。
-n : 读取命令,但不要执行。可用於语法检查。
-p : 打开privileged模式。
-t : 当读取一个命令并执行後,立即离开。
-u : 当参数展开时,把unset参数当成是错误。
-v : 列出shell input lines。
-x : 在展开每个simple-command後,bash显示展开值在PS4上。
-l : 储存并还原name binding在for语法中。
-d : 关闭hasing command搜寻。
-C : 跟`noclobber=`一样。请见内定参数一节。
-H : 启动! style history substitution。
-P : 在使用像cd这种指令时,不要跟随symbolic links。
-- : "--"之後,没有参数跟在後面。
- : 指定将所有後面的参数当成是位置参数。
-o option-name : option-name可以是以下之一
allexport : 与"-a"相同。
braceexpand : 启动Brace Expansion。这是内定设定。
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行为修改为Posix 1003.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 [-e ename] [-nlr] [first] [last]
fc -s [pat=rep] [cmd]
修正命令。



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

getopts optstring name [args]
解析位置参数。



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

hash [-r] [name]
对每个name命令的完整路径记录下来。"-r"选项强迫忘记所有命令位置。如果没有给参数,则将会印出所有的资讯。返回值为True。



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

help [pattern]
显示协助资讯。



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

history [n]
history -rwan [filename]
没有参数时,会显示所下命令的历史记录。带有参数"n"则显示最後n个。

其它参数如下:
-a : 新增"新历史"到历史档中。
-n : 读取尚未读到历史中的记录。
-r : 读取filename做为历史档,并用它为目前历史记录。
-w : 将现有历史记录写到filename中。



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

let arg [arg ...]
算术表述。请参考算术表述一节。



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

local [name[=value] ...]
产生一个局部参数。如果用於function,则其作用围在function内及其子函数。



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

logout
离开login shell。



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

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]
Positional Parameters从n+1...开始,会被改为$1...。n若为零,则没有改变。n若未给定,则内定为1。n必须是非负数,并且小於或等於$#。若n大於$#,则没有改变。返回值为零,除非n大於$#或小於零。



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

suspend [-f]
暂停这个shell的执行,直到它收到SIGCONT信号。"-f"选项则是叫login shell不要抱怨,不过还是一样暂停。返回状态零,除非该shell是个login shell,而且没有"-f"选项。



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

test expr
[ expr ]
我们在Exit Status的部份已经说过了,不再重。



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

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's data segment)最大值。
-f : 可被这个shell产生的最大档案。
-m : resident set size最大值。
-s : 堆叠最大值。
-t : CPU TIME最大值(以秒计算)。
-p : pipe size in 512-byte blocks的最大值。
-n : 可开启的file descriptors最大值。
-u : 单一使用者可使用的最大process数。
-v : 该shell最大虚拟记忆体可用值。

所有项目是以1024做为单位。



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

umask [-S] [mode]
将使用者的file-creation mask设为mode。"-S"选项将mask印成符号形式。

论坛徽章:
0
2 [报告]
发表于 2003-04-22 12:51 |只看该作者

Bash内建指令集

请楼主bg [jobspec] 中的jobspec是什麽东东阿

有没有实例?谢谢

论坛徽章:
0
3 [报告]
发表于 2003-04-22 16:55 |只看该作者

Bash内建指令集

找了好久的东东,顶

论坛徽章:
0
4 [报告]
发表于 2003-04-22 18:07 |只看该作者

Bash内建指令集

help
or
help topic
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP