ImageVerifierCode 换一换
格式:DOCX , 页数:103 ,大小:146.14KB ,
资源ID:4099505      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4099505.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Shell编程讲稿解密.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Shell编程讲稿解密.docx

1、Shell编程讲稿解密Shell编程讲稿Version 1.0Shell Programming达内IT培训集团加拿大达内集团研发二部 修订历史摘要日期修改原因版本文档创建2009-4-10新建1.0目录1.Unix/Linux Shell介绍 7目的 71.技术 72.技能 71.1.Shell类型 71.1.1.什么是shell 71.1.2.Shell的两大类型 71、Bourne shell (包括 sh, ksh, and bash) 72、C shell (包括 csh and tcsh) 83、几个shell的特别说明 81.2.Shell与环境 91.2.1.CSH环境 91.

2、2.1.1系统配置文件: 91.2.1.2用户配置文件: 91.2.2.BASH环境 91.2.2.1系统配置文件 91.2.2.2用户配置文件 91.2.3.课堂练习 101.2.4.练习作业 111.3.Shell参数 111.3.1.csh参数 111.3.2 bash参数 112.Bash Shell编程基础 132.1.第一个简单的shell脚本 132.1.1.目的 132.1.2.知识点说明 132.1.3.案例 132.1.4.课堂练习 142.2.输出输入与重定向符号 152.2.1.目的 152.2.2.知识点说明 152.2.2.1.输出重定向符号 152.2.2.2.输

3、入重定向符号 152.2.2.3.错误重定向符号 152.2.2.4.关于IO重定向与CSH的说明 162.2.3.案例 162.2.4.课堂练习 162.3.特殊元字符 172.3.1.目的 172.3.2.知识点说明 172.3.3.案例 172.3.4.课堂练习 182.4.变量与常量 182.4.1.目的 182.4.2.知识点说明 182.4.2.1.变量的定义 182.4.2.2.变量的使用 192.4.2.3.read与line指令 192.4.2.4.环境变量 192.4.2.5.特殊变量 202.4.2.6 export变量 202.4.3.案例 202.4.4.课堂练习 2

4、22.5.引用 222.5.1.目的 222.5.2.知识点说明 232.5.2.1.单引号 232.5.2.2.双引号 232.5.2.3. 命令引用号 232.5.3.案例 232.5.4.课堂练习 232.6.数组 242.6.1.目的 242.6.2.知识点说明 242.6.3.案例 242.6.4.课堂练习 252.7.运算符号 262.7.1.目的 262.7.2.知识点说明 262.7.3.案例 282.7.4.课堂练习 302.8.判定分支 312.8.1.目的 312.8.2.知识点说明 312.8.2.1.使用if判定分支 312.8.2.2.一般测试 322.8.2.3.

5、文件测试 322.8.2.4.BASH选项测试 322.8.2.5.退出状态码与true|false指令 332.8.2.6.case语句 332.8.2.7.嵌套if 342.8.3.案例 342.8.4.课堂练习 362.9.循环 362.9.1.目的 362.9.2.知识点说明 362.9.2.1. for循环语法 362.9.2.2.while循环语法 372.9.2.3.until循环语法 372.9.2.4.continue与break使用 382.9.2.5.select语法(选) 382.9.2.6.shift语法(选) 382.9.3.案例 392.9.4.课堂练习 392.

6、10.函数 392.10.1.目的 392.10.2.知识点说明 402.10.2.1.函数语法 402.10.2.2.函数的参数与返回值 402.10.2.3.函数嵌套与特殊用法 412.10.2.4.函数与重定向 422.10.2.5.变量与函数 422.10.3.案例 432.10.4.课堂练习 432.11.子shell 442.11.1.目的 442.11.2.知识点说明 442.11.2.1.子SHELL调用方式 442.11.2.2.子SHELL调用说明 452.11.2.3.受限SHELL脚本 452.11.3.案例 452.11.4.课堂练习 462.11.5.思考与提高 4

7、62.12.内建命令 462.12.1.目的 462.12.2.知识点说明 462.12.3.案例 542.12.4.课堂练习 542.12.命令与程序 542.12.1.目的 542.12.2.知识点说明 542.12.2.1.基本命令 542.12.2.2.高级命令 552.12.2.3.时间/日期命令 552.12.2.4.文本处理命令 552.12.2.5.文件与归档命令 562.12.2.6.通讯命令 572.12.2.7.终端控制命令 582.12.2.8.数学计算命令 582.12.2.9.其他命令 582.12.3.案例 582.12.4.课堂练习 592.13.命令与进程替换

8、 592.13.1.目的 592.13.2.知识点说明 592.13.2.1.命令替换 592.13.2.2.进程替换 602.13.3.案例 602.13.4.课堂练习 603.Bash Shell编程高级应用 613.1.grep与正则表达式 613.2.SED流编辑 643.3.gawk调用 643.4.Shell扩展 65附录 66BASH系统环境变量参考 661.保留的 Bourne shell 变量 662.Bash保留变量 66PS特殊转义字符 69BASH转义字符 69内建命令(补充) 69printf 691.Unix/Linux Shell介绍目的1.技术1.1了解SHEL

9、L类型与SHELL的发展历史。1.2了解BASH与CSH的参数。1.3了解登入/登出SHELL要执行的相关文件。2.技能 1. 登入/登出Unix系统 2. 查看环境变量 3. 根据需要修改配置SHELL登录相关文件1.1.Shell类型1.1.1.什么是shell字符操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非

10、交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 Shell基本上是一个命令解释器。1.1.2.Shell的两大类型在UNIX中主要有两大类shell :1、Bourne shell (包括 sh, ksh, and bash)最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell

11、可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。Bourne shell ( sh) Korn shell ( ksh) Bourne Again shell ( bash) POSIX shell ( sh) 2、C shell (包括 csh a

12、nd tcsh)Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。 它新增了命令历史、别名、文件名替换、作业控制等功能。 C shell ( csh) TENEX/TOPS C shell ( tcsh) 说明:Shell的程序在/bin/目录下 /bin/sh /bin/ksh /bin/bash /bin/csh /bin/tcsh3、几个shell的特别说明 Korn Shell 有很长一段时间,只有两类shell供人们选择,Bourne shell用来编

13、程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX 说明:POSIX是一个操作系统的国际标准,POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准在源程序一级跨越多种平台Bourne Again Shell (b

14、ash) bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera,Suse)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。 POSIX Shell POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh. 说明:各主要操作系统下缺省的shell: AIX下是Ko

15、rn Shell. Solaris和FreeBSD缺省的是Bourne shell. HP-UX缺省的是POSIX shell. Redhat Linux是Bourne Again shell.1.2.Shell与环境不管用户使用什么shell做为登录的缺省shell,登录都需要事先执行一些脚本文件。1.2.1.CSH环境 1.2.1.1系统配置文件:/etc/.login 1.2.1.2用户配置文件:$HOME/.login $HOME/.cshrc1.2.2.BASH环境1.2.2.1系统配置文件/etc/profile 1.2.2.2用户配置文件$HOME/.bash_login $HO

16、ME/.profile $HOME/.bash_profile1.2.3.课堂练习 1.使用man查看csh帮助。 操作:输入man csh 显示: 2.使用ls -a查看$HOME下是否有.cshrc与.login文件存在。 操作:输入ls a 显示: 3.新增或修改.cshrc和.login文件。 修改.cshrc。 操作:输入vi .cshrc 修改.login。 操作:输入vi .login 4.重新登录体会两个文件执行的先后顺序。 操作 5.思考 1.把.cshrc与.login文件内容交换再操作一遍,体会两个文件的执行顺序。 2.可以在.cshrc中输入echo 1,在.login

17、输入echo 2,重新登录,根据输出的先后顺序可以很容易知道先后顺序。 6.提高当.cshrc文件执行错误,.login文件不会再执行。1.2.4.练习作业 1、仿照课堂练习的步骤,在Linux系统下增加登录初始化文件,并登录体会每个用户级别初始化文件的加载顺序,以及文件执行错误后面文件是否正常执行。练习目的:体会BASH做为登入SHELL的初始化文件 .bash_login、 .profile、 .bash_profile 执行顺序提示:执行顺序是1.3.Shell参数1.3.1.csh参数语法:csh -befHinstvVxX -c script arg .1.3.2 bash参数语法:

18、bash bash_options -s abCefGHhiKkLmNnPprtuvwXx o option -d directory -R name, env_piece, cmds argument.bash_option说明: -login 先执行.bash_login文件.-init-file file -rcfile file 在交互模式下,替代($HOME/.bashrc)去执行指定的文件-noprofile 不执行搜索并如下文件 $ROOTDIR/etc/profile.ksh $HOME/.bash_profile $HOME/.bash_login $HOME/profile

19、.ksh $HOME/.profile-norc 在交互模式下不执行$HOME/.bashrc 文件-restricted 等价-r选项-verbose 等价-v选项-version 显示版本信息2.Bash Shell编程基础2.1.第一个简单的shell脚本 2.1.1.目的 技术 1、执行shell脚本。 2、使用指定的shell执行shell脚本。 3、注释 4、语句结束符号 技能1、 能使用一种编辑工具正确编写shell脚本,并执行。2、 能根据需要在shell脚本中指定shell类型。 2.1.2.知识点说明 1、执行shell脚本。 Shell脚本如果正确并且对当前用户有执行权限

20、的话,可以像执行一般程序那样执行,就是直接在命令行输入shell脚本名执行,或者在可视窗体中点击执行。 但在某些特殊情况下可以采用其他的执行方式。a. exec shell脚本名b. source shell脚本名具体的区别在后面讲子shell的时候解释。3、 指定shell类型。a. 在命令行指定。Shell名 shell脚本名。b. 在shell脚本中指定。语法:#!shell路径与文件例子:#!/bin/bash4、 注释。# 注释内容5、 语句结束符号。语句结束符号两种方式:分号结束或者直接换行2.1.3.案例 1、编写shell脚本。 方法一:使用telnet或其他终端登录工具登录,

21、并使用vi编辑脚本。 方法二:使用UltraEdit工具本地编辑,并FTP保存倒Unix服务器。 2、确保脚本的执行权限。 chmod o+x shell脚本文件名 3、使用登录shell执行shell脚本。 方法一:在命令行直接输入shell脚本文件名并回车执行。 方法二:exec shell脚本文件名。 方法三:source shell脚本文件名。 体会exec与source的区别,详细的说明见后面内容。 4、在命令行指定shell执行shell脚本。 bash shell脚本文件名。或者 csh shell脚本文件名。 5、在shell脚本中指定shell执行shell脚本。 #!/bi

22、n/csh。或者 #!/bin/bash 。 在其中还可以指定shell的参数。详细说明见后面内容。 2.1.4.课堂练习 练习一1、目的 上面的练习不能体会到底是否是那种shell在执行,这个练习中我们专门设计csh与bash语法上不同的两个语句,来体会指定的shell确实在起作用。 2、准备知识 在csh中定义变量的语法:setenv 变量名 变量值。 在bash中定义变量的语法:变量名=变量值。 3、实施 编写shell,内容定义bash格式的变量,但指定的shell类型是csh。然后执行并体会。反之再操作一遍。最后提供正确的shell类型,并保证两个shell能正确执行。 练习二 写b

23、ash脚本打印如下图形。* * 达内IT培训集团 * *练习三 给上面shell脚本添加注释。 2.2.输出输入与重定向符号 2.2.1.目的 技术1、 bash的输出输入重定向符号类型。2、 bash的输出输入重定向符号的作用。 技能 1、能根据需要正确选择并使用输出重定向符号。2.2.2.知识点说明 2.2.2.1.输出重定向符号1、输出重定向(如果该文件已存在,将被覆盖):指令 file 2、输出重定向,内容追加到文件:指令 file 2.2.2.2.输入重定向符号 1、输入重定向:指令 file 2、输入重定向(结束输入时,结束行输入END),此模式将对输入内容进行shell变量替换:

24、 指令 提示符而csh使用?作提示符3、输入重定向(结束输入时,结束行输入END),此模式将对输入内容不做shell变量替换:指令 提示符而csh使用?作提示符 2.2.2.3.错误重定向符号 1、错误重定向 指令 2 文件 2、错误输出与输出重定向 指令 & 文件 或者 指令 & 文件 或者 指令 文件 2&1 2.2.2.4.关于IO重定向与CSH的说明 1、在Unix系统中,标准输入、标准输出、标准错误输出都有对应的文件描述符号,分别是0、1、2。 2、在整个课程中为了避免混淆,我们一致使用BASH 做为主要的讲解。但其他SHELL对应的知识点可以参考对应SHELL的帮助。请使用man工

25、具获取。 2.2.3.案例 1、切换到bash命令行。 操作:在命令行直接输入bash 2、bash的小技巧 a.tab键的智能提示作用 b.方向键显示历史命令记录 3、练习输出重定向 把查看的目录清单输出到文件。ls -l 1.txt ls -l 1.txt 4、练习输入重定向 使用cat与输入从定向显示文件。cat 1.txt显示输出键盘输入echo /dev/null 查找某个文件,把查找输出与错误输出到文件 find / -name 1.txt &result.txt2.2.4.课堂练习 练习一 编写一个shell脚本,查找用户主目录下的三天前的文件,并把清单输出到某个文件中。2.3.

26、特殊元字符2.3.1.目的 技术1、 了解BASH中支持的所有元字符。2、 掌握BASH中元字符的含义与使用。 技能 1、能根据需要使用元字符。2.3.2.知识点说明 其面介绍的# 、#!、1.txt禁用元字符,就是转移符# 含义有多种:占位,条件测试a-za-z的所有字符 4=2 用户主目录|管道符号ls | wc占位符号,一组字符ls dir1,dir2上面已经讲述过的元字符没有列入。某些元字符会在后面补充讲解。2.3.3.案例#!/bin/bash#说明元字符的使用# 下面注意其中空格有无的作用echo Hello #是注释 ?find . -name *.txt -exec rm -f

27、 ;2.3.4.课堂练习练习一 写一个脚本完成如下任务,查找用户主目录下的所有三天前的文本文件,并把文件权限改为对所有用户只读。2.4.变量与常量2.4.1.目的 技术 1、定义变量。 2、使用变量。 3、常量(只读变量)。 4、系统保留变量。 5、特殊变量 技能1、 能根据需要定义合适的变量,并显示变量的值。2、 能从键盘接受变量的值。3、 能从文件读入变量的值。4、 能给shell脚本传递参数,并处理参数。2.4.2.知识点说明 2.4.2.1.变量的定义 1、方法一 语法:变量名=变量值 例子:var=123 说明:SHELL脚本中本身是没有数据类型的,所以不需要指定类型。 2、方法二 语法:declare +/-rxipat变量名称设置值 或 declare f 例子:declare var=ShellProgramming 说明:declare为shell指令,在第一种语法中可用来声明变量并设置变量的属性(rix即为变量的属性),在第二种语法中可用来显示shell函数。若不加上任何参数,则会显示全部的shell变量与函数(与执行se

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1