shell基础_计算机软件及应用_IT计算机_专业资料.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《shell基础_计算机软件及应用_IT计算机_专业资料.docx》由会员分享,可在线阅读,更多相关《shell基础_计算机软件及应用_IT计算机_专业资料.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 .shell基础知识作者:Stephen Bourne在Bell实验室开发建议:man sh查看相关UNIX上的改进或特性 (1)shell提示符及其环境/etc/passwd 文件提示符:$/etc/profile $HOME/.profile(2)shell执行选项- n测试shell script语法结构,只读取shell script但不执行- X进入跟踪方式,显示所执行的每一条命令,用于调度- a Tag all variables for export- c string从strings中读取命令- e非交互方式- f关闭shell文件名产生功能- h locate and r
2、emember functions as defind- i交互方式-k从环境变量中读取命令的参数- r限制方式- s从标准输入读取命令- t执行命令后退出(shell ex计s)- u在替换中如使用未定义变量为错误- V verbose,显示shell输入行这些选项可以联合使用,但有些显然相互冲突,如-e和一i.(3)受限制 shell(Restircted Shell)sh -r 或 /bin/rsh不能执行如下操作:cd,更改PATH,指定全路径名,输出重定向,因此可以提供个较 好的控制和安全机制。通常rsh用于应用型用户及拨号用户,这些用户通常是看不到提 示符的。通常受限制用户的主目录
3、是不可写的。不足:如果用户可以调用sh,则rsh的限制将不在起作用,事实上如果用户在vi及more 程序中调用shell,而这时rsh的限制将不再起作用。(4)用set改变shell选项用户可以在$提示符下用set命令来设置或取消shell的选项。使用设置选项,+取消相应 选项,大多数UNIX系统允许a,e,f,h,k,n,u,v和x的开关设置/取消。set-XV启动跟踪方式;显示所有的命令及替换,同样显示输入。set -tu关闭在替换时对未定义变量的检査。使用echo $显示所有已设置的shell选项。(5)用户启动文件.profilePATH=$PATH:/usr/loacl/bin; e
4、xport PATH(6)shell环境变量CDPATH用于cd命令的査找路径HOME /etc/passwd文件中列出的用户主目录IFS Internal Field Separator,默认为空格,tab 及换行符MAIL /var/mail/$USERNAME mai! 等程序使用PATHPS1, PS2默认提示符(给及换行提示符()TERM终端类型,常用的有vt100,ansi,vt200,xterm等示例:$PS1=test:;export PS1test: PS1=$;export PS1$echo $MAIL/var/mail/username(7)保留字符及其含义$ shell
5、变量名的开始,如$var|管道,将标准输出转到下个命令的标准输入#注释开始&在后台执行个进程?匹配个字符匹配到多个字符(与DOS不同,可在文件名中间使用,并且含.)$使用set及执行时传递给shell的标志位$!最后个子进程的进程号$#传递给shell script的参数个数$传递给shell script的参数$所有参数,个别的用双引号括起来$?上一个命令的返回代码$0当前shell的名字$n (n:1-)位置参数$ 进程标识号(Process Identifier Number, PID)file输出重定向fiile输出重定向,append转义符及单引号:$echo aHOME $PATH
6、”/home/hbwork /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11 R6/bin:$echo ,$HOME $PATH$HOME $PATH$echo $HOME $PATH$HOME /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11 R6/bin:/home/hbw ork/bin其他:$dir=ls$dir$alias dir Is$dirIs filelistIs filelistwc -I /dev/rmt/0h书写程序的目的是一次编程,多次使用(执行)!$ cat bac
7、kup.shcd /home/hbworkIs * | cpio -o /dev/rmt/OhAD执行:$ sh backup.sh或$ chmod +x backup.sh$ ./backup.sh技巧:在shell script中加入必要的注释,以便以后阅读及维护。(2)shell是个(编程)语言同传统的编程语言样,shell提供了很多特性,这些特性可以使你的shell script 编程更为有用,如:数据变量、参数传递、判断、流程控制、数据输入和输出,子 程序及以中断处理等。.在shell编程中使用数据变量可以将程序变量更为通用,如在上面backup.sh中: cd $WORKDIRIs
8、 * I cpio -o /dev/rmt/Oh.Shel!编程中的注释以#开头.对shell变量进行数字运算,使用expr命令expr integer operator integer其中operator为+ / %,但对的使用要用转义符,如:$expr 4*520$int=expr 5 + 7$echo $int12(3)Shel!编程的参数传递,可通过命令行参数以及交互式输入变量(read)restoreall.sh对backup.sh程序的备份磁带进行恢复$cat restoreall.shcd $WORKDIRcpio -i /dev/rmt/Ohrm -rf *改进如:#当使用了管
9、道命令时,管理命令的返回代码为最后个命令的返回代码if Is -a | cpio -o /dev/rmt/Ohthenrm -rf *fi.if-then-else 语句if command_1thencommand_2elsecommand_3fi技巧:由于shell对命令中的多余的空格不作任何处理,个好的程序员会用这一-特 性对自己的程序采用统的缩进格式,以增强自己程序的可读性.使用test命令进行进行条件测试格式:test conditionstest在以下四种情况下使用:a.字符比较b.两个整数值的比较c,文件操作,如文件是否存在及文件的状态等d.逻辑操作,可以进行and/or,与其他
10、条件联合使用a.测试字符数据:shell变量通常民政部下均作为字符变量str1 = str2二者相长,相同str1 != str2 不同-n string string不为空(长度不为零)-z string string 为空string string 不为空例:$ str1=abcd #在含有空格时必须用引号括起来$ test $str1 =abcd$ echo $?0$ str1 =uabcd ”$ test $str1 =abcd$ echo $?1Note:在test处理含有空格的变量时最好用引号将变量括起来,否则会出现错误的 结果,因为shel!在处理命令行时将会去掉多余的空格,而用
11、引号括起来则可以防止shell去掉这些空格.例:$str1=H H$ test $str1$ echo $?1$test M$str1M$ echo $?0$ test -n $str1test: argument expected$test $str1”$ echo $?0$b,整数测试:test与expr相同,可以将字符型变量转换为整数进行操作,expr进行 整数的算术运算,而test则进行逻辑运算.表达式说明inti -eq int2 相等?inti -ne int2 不等?inti -gt int2 inti int2 ?inti -ge int2 inti = int2 ? inti
12、 -It int2 inti empty $ test -r empty $ echo $?0$ test -s empty1$ test! -s empty$ echo $?0e.测试条件之逻辑运算-a And-o Or例:$ test -r empty -a -s empty$ echo $?1f.进行test测试的标准方法因为test命令在shell编程中占有很重要的地位,为了使shell能同其他编程语言 样便于阅读和组织,Bourne Shell在使用test测试时使用了另一种方法:用方括号将 整个test测试括起来:$ int1=4$ $int1 -gt 2 $ echo $?0例:
13、重写unload程序,使用test测试#!/bin/sh#unload - program to backup and remove files#syntax: unload directory#check argumentsif $# -ne 1 thenecho “usage: $0 directoryexit 1fi#check for valid directory nameif ! -d $1thenecho $1 is not a directoryexit 2ficd $1Is -a | cpio -o /dev/rmt/Oh if $? -eq 0 thenrm -rf *el
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- shell 基础 计算机软件 应用 _IT 计算机 专业 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内