【导读】较详细介绍IBM AIX操作系统上常用的korn shell的基础知识。 Korn Shell执行命令的顺序1.关键字,如if,for,function等2.别名(Aliases)3.内部命令,如cd, whence和函数等4.函数Functions5.脚本Scripts、在PATH中的可执行程序※找到命令的根源用下面的命令:whence -v command或:type commandAlias(别名)alias aliasname=command取消一个别名:unalias aliasname列出当前所有的别名:alias【TIP】用来显式当前目录下的所有目录的别名:alias ldir='ls -l|grep ^d'提问:alias|grep ^ls会看到:ls=/usr/bin/ls,请问:系统为什么要定义这个别名?Functions(函数)定义的位置:Function可以在命令行、.kshrc(ENV文件,见下篇)或在shell script中定义定义的方法:function funcname {shell commands}或:funcname () {shell commands}列出所有当前的functionsfunctions取消一个functionunset -f funcname输出一个function:typeset -fx funcname取消输出一个function:typeset +fx funcname※function是"typeset -f"的预定义的别名Korn Shell 的选项Korn Shell有一些选项,如果在.kshrc(ENV文件,见下篇)中设定他们,那么他们就是全局的,并且可以传递给subshell。列出所有的Korn Shell选项:set -o设置一个选项set -o OptionName取消一个选项set +o OptionNameKorn Shell 选项的意义allexport 自动export随后定义地所有变量(文件名中不含有.).(等于set -a)errexit 如果一个命令的返回值不为0,就执行错误陷阱(ERR trap)。但对profile文件例外。(等于set -e) bgnice 后台进程以较低的优先级运行,这是缺省值emacs 使用emacs风格的行内编辑器gmacs 使用gmacs风格的行内编辑器ignoreeof 遇到文件结束符时不退出shell。要想退出shell必须使用exit命令或者敲Ctrl-D 11次。keyword 为了保持与Bourne shell的兼容性。(set -k)markdirs 在完成文件名替换后在目录名后面加一个斜线(/)。monitor Runs background jobs in a separate process and prints a line upon completion. (set -m)noclobber 不能用>重定向符覆盖已经存在的文件。只能用>|来重写已经存在的文件。noexec 读入命令只检查它的语法但不执行。 (set -n)noglob 禁止文件名替换。(set -f)nolog 不在历史文件中保存函数的定义。nounset 在试图扩展没有定义的变量时显示错误信息。(set -u)privileged 禁止执行HOME/.profile file 并且使用/etc/suid _profile 而不是ENV文件。 (set -p)verbose 显示shell读入的输入.(set -v)trackall Designates each command as a tracked alias when first encountered.(set -h)vi 使用vi风格的行内编辑器viraw Processes each character as it is typed in vi mode. xtrace 在运行命令前,先显示命令.(set -x)※举例:使vi成为inline editorset -o viDebuging(调试)调试一个shell script的方法:#set -o xtrace然后再运行shell或者直接执行#ksh -x shellprog args或#sh -v shellprog argsDebug 一个function#typeset -ft funcnamePrompts(提示)PS1 主shell提示符(普通用户缺省是 $,而root缺省是#)PS2 继续提示符( 缺省 > )什么是继续提示符?在命令行上输入for i in 11 12 13 14 15 16dolspv hdisk$idone从第二行开始,屏幕最左面就是继续提示符。PS3 在选择循环中的选择提示符(缺省是 #? )PS4 调试提示符 (缺省是 + )【tip】:命令行上提示主机名称和当前目录export PS1="[`hostname`-"'$PWD]'注意:一定是""包括``才能取得命令的结果,''包括变量才能随时更改变量的值效果:[hostname-/tmp]
较详细介绍IBM AIX操作系统上常用的korn shell的基础知识
