免费注册 查看新帖 |

Chinaunix

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

AIX技术专栏2:korn shell基础知识 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2001-11-01 10:09 |只看该作者 |倒序浏览
Korn Shell执行命令的顺序[/COLOR]\r\n1.关键字,如if,for,function等\r\n2.别名(Aliases)\r\n3.内部命令,如cd, whence和函数等\r\n4.函数Functions\r\n5.脚本Scripts、在PATH中的可执行程序\r\n※找到命令的根源用下面的命令:\r\n        whence -v command\r\n或:\r\n        type command\r\n[/COLOR]\r\n\r\nAlias(别名)[/COLOR]\r\nalias aliasname=command\r\n取消一个别名:\r\nunalias aliasname\r\n列出当前所有的别名:\r\nalias\r\n【TIP】\r\n用来显式当前目录下的所有目录的别名:alias ldir=\'ls -l|grep ^d\'\r\n提问:alias|grep ^ls会看到:ls=/usr/bin/ls,请问:系统为什么要定义这个别名?\r\n[/COLOR] \r\n\r\nFunctions(函数)\r\n定义的位置:\r\nFunction可以在命令行、.kshrc(ENV文件,见下篇)或在shell script中定义\r\n定义的方法:\r\nfunction funcname {\r\n        shell commands\r\n}\r\n或:\r\nfuncname () {\r\n        shell commands\r\n}\r\n列出所有当前的functions\r\nfunctions\r\n取消一个function\r\nunset -f funcname\r\n输出一个function:\r\ntypeset -fx funcname\r\n取消输出一个function:\r\ntypeset +fx funcname\r\n※function是\"typeset -f\"的预定义的别名\r\n\r\nKorn Shell 的选项\r\nKorn Shell有一些选项,如果在.kshrc(ENV文件,见下篇)中设定他们,那么他们就是全局的,并且可以传递给subshell。\r\n列出所有的Korn Shell选项:\r\nset -o\r\n设置一个选项\r\nset -o OptionName\r\n取消一个选项\r\nset +o OptionName\r\nKorn Shell 选项的意义\r\nallexport        自动export随后定义地所有变量(文件名中不含有.).(等于set -a)\r\nerrexit        如果一个命令的返回值不为0,就执行错误陷阱(ERR trap)。但对profile文件例外。(等于set -e) \r\nbgnice        后台进程以较低的优先级运行,这是缺省值\r\nemacs        使用emacs风格的行内编辑器\r\ngmacs        使用gmacs风格的行内编辑器\r\nignoreeof        遇到文件结束符时不退出shell。要想退出shell必须使用exit命令或者敲Ctrl-D 11次。\r\nkeyword        为了保持与Bourne shell的兼容性。(set -k)\r\nmarkdirs        在完成文件名替换后在目录名后面加一个斜线(/)。\r\nmonitor        Runs background jobs in a separate process and prints a line upon completion.  (set -m)\r\nnoclobber        不能用>重定向符覆盖已经存在的文件。只能用>|来重写已经存在的文件。noexec        读入命令只检查它的语法但不执行。 (set -n)\r\nnoglob        禁止文件名替换。(set -f)\r\nnolog        不在历史文件中保存函数的定义。\r\nnounset        在试图扩展没有定义的变量时显示错误信息。(set -u)\r\nprivileged        禁止执行HOME/.profile file 并且使用/etc/suid _profile 而不是ENV文件。 (set -p)\r\nverbose        显示shell读入的输入.(set -v)\r\ntrackall        Designates each command as a tracked alias when first encountered.(set -h)\r\nvi        使用vi风格的行内编辑器\r\nviraw        Processes each character as it is typed in vi mode. \r\nxtrace        在运行命令前,先显示命令.(set -x)\r\n※举例:使vi成为inline editor\r\nset -o vi\r\n\r\nDebuging(调试)\r\n调试一个shell script的方法:\r\n#set -o xtrace\r\n然后再运行shell\r\n或者直接执行\r\n#ksh -x shellprog args\r\n或\r\n#sh -v shellprog args\r\nDebug 一个function\r\n#typeset -ft funcname\r\n\r\nPrompts(提示)\r\nPS1        主shell提示符(普通用户缺省是 $,而root缺省是#)\r\nPS2        继续提示符( 缺省 > )\r\n什么是继续提示符?\r\n在命令行上输入\r\nfor i in 11 12 13 14 15 16\r\ndo\r\n        lspv hdisk$i\r\ndone\r\n从第二行开始,屏幕最左面就是继续提示符。\r\nPS3        在选择循环中的选择提示符(缺省是 #? )\r\nPS4        调试提示符 (缺省是 + )\r\n【tip】:命令行上提示主机名称和当前目录\r\nexport PS1=\"[`hostname`-\"\'$PWD]\'\r\n注意:一定是\"\"包括``才能取得命令的结果,\'\'包括变量才能随时更改变量的值\r\n效果:\r\n[hostname-/tmp]\r\n\r\n【NEXT】定制你的环境

论坛徽章:
0
2 [报告]
发表于 2011-10-11 11:12 |只看该作者
呵呵。小技巧解决大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP