Linux网络服务器配置管理项目实训教程 学习情境2项目2 shell编程.ppt_第1页
Linux网络服务器配置管理项目实训教程 学习情境2项目2 shell编程.ppt_第2页
Linux网络服务器配置管理项目实训教程 学习情境2项目2 shell编程.ppt_第3页
Linux网络服务器配置管理项目实训教程 学习情境2项目2 shell编程.ppt_第4页
Linux网络服务器配置管理项目实训教程 学习情境2项目2 shell编程.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux网络服务器配置管理项目实训教程 杨云等编著中国水利水电出版社 1 项目课题引入 2 Shell的概念与原理 3 Shell环境变量的设置 4 Shell脚本的设计与运行 5 现场演示案例 课题引入 项目背景 在Linux系统中 如果计算机插入一个USB设备 需要用挂载命令才能实现这个设备的加载 可以把USB的挂载与文件的复制写成一个shell程序 这样可以通过程序的运算自动完成很多步骤的操作 程序的功能如下 运算程序时 提示用户输入 y 或 n 确定是不是挂载USB设备 如果用户输入 y 则挂载这个USB设备提示用户输入 y 或 n 确定是不是复制文本如果用户输入 y 则显示文件列表 然后提示用户是否复制文件程序根据用户输入的文件名复制相应的文件 然后提示是否将计算机中的文件复制到USB中完成文件的复制以后 提示用户是否卸载USB设备 课题引入 项目分析 完成本项目需要解决的问题 1 Linux中shell是什么 有什么功能2 如何设定和使用Shell的环境变量3 如何利用shell进行脚本程序的设计 课题引入 教学目标 学习本课需要实现的教学目标 掌握shell的基本命令掌握shell的基本概念和作用掌握shell环境变量概念和使用方法掌握shell程序的结构和设计方法能够完成本课程提出的项目内容 课题引入 应达到的职业能力 学生学习本课后应该具有的职业能力 熟练掌握Vi编辑器的使用深入理解shell的思想掌握shell变量和环境变量的设置能够进行基本的shell程序设计能够读懂Linux操作系统中的系统脚本 项目问题一 shell的概念和功能 Shell的基本概念 Shell就是用户与操作系统内核之间的接口 起着协调用户与系统的一致性和在用户与系统之间进行交互的作用 Shell在Linux系统中具有极其重要的地位 Shell的功能 Shell最重要的功能是命令解释 从这种意义上来说 Shell是一个命令解释器 Linux系统中的所有可执行文件都可以作为Shell命令来执行 将可执行文件作一个分类 如表所示 Shell对命令的解释过程 当用户提交了一个命令后 Shell首先判断它是否为内置命令 如果是就通过Shell内部的解释器将其解释为系统功能调用并转交给内核执行若是外部命令或实用程序就试图在硬盘中查找该命令并将其调入内存 再将其解释为系统功能调用并转交给内核执行 在查找该命令时分为两种情况 用户给出了命令路径 Shell就沿着用户给出的路径查找 若找到则调入内存 若没有则输出提示信息 用户没有给出命令的路径 Shell就在环境变量PATH所制定的路径中依次进行查找 若找到则调入内存 若没找到则输出提示信息 Shell的主要版本 项目问题二 Shell环境变量 Shell支持具有字符串值的变量 Shell变量不需要专门的说明语句 通过赋值语句完成变量说明并予以赋值 在命令行或Shell脚本文件中使用 name的形式引用变量name的值 shell变量的定义和引用 在Shell中 变量的赋值有下列句法格式 name stringname是变量名 它的值就是string 是赋值符号 变量名是以字母或下划线开头的字母 数字和下划线字符序列 通过在变量名 name 前加 字符 如 name 引用变量的值 引用的结果就是用字符串string代替 name 在定义变量时 若string中包含空格 制表符和换行符 则string必须用 string 或者 sting 的形式 即用单 双 引号将其括起来 双引号内允许变量替换 而单引号内则不可以 Shell变量的作用域 与程序设计语言中的变量一样 Shell变量有其规定的作用范围 Shell变量分为局部变量和全局变量 局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中全局变量的作用范围则包括本Shell进程及其所有子进程可以使用export内置命令将局部变量设置为全局变量 Shell变量作用域举例 在当前Shell中定义变量var1在当前Shell中定义变量var2并将设为全局引用变量的值显示当前Shell的PID Shell变量作用域举例 调用子Shell 并显示子Shell的PID由于var1没有被export 在子Shell中已无值由于var2被export 所以在子Shell中仍有值返回主Shell 并显示变量的值 Shell的环境变量 环境变量是指由Shell定义和赋初值的Shell变量 Shell用环境变量来确定查找路径 注册目录 终端类型 终端名称 用户名等 所有环境变量都是全局变量 并可以由用户重新设置 在Bash中 设置环境变量用set命令 命令的格式是 set环境变量 变量的值 Shell的环境变量举例 设置用户的主目录为 home john 可以用以下命令 不加任何参数地直接使用set命令可以显示出用户当前所有环境变量的设置 如 Shell的环境变量举例 在环境变量前面加上 符号 表示引用环境变量的值 例如把目录切换到用户的主目录 当修改PATH变量时 如 将一个路径 tmp加到PATH变量后 应该这样设置 Shell中的正则表达式 grep命令用来在文本文件中查找内容 指定给grep的文本模式叫做 正则表达式 正则表达式可以是普通的字母或者数字 也可以使用特殊字符来匹配不同的文本模式 由于正则表达式使用了一些特殊字符 所以所有的正则表达式都必须用单引号括起来 正则表达式字符可以包含某些特殊的模式匹配字符 句点匹配任意一个字符 相当于shell中的问号紧接句号之后的星号匹配零个或多个任意字符 相当于Shell的星号方括号的用法跟Shell的一样 只是用 代替了 表示匹配不在指定列表内的字符 正则表达式匹配字符 量词 控制字符 正则表达式的模式匹配字符与模式匹配字符配合使用的量词正则表达式的控制字符 正则表达式举例 help匹配包含help的行 匹配倒数第二个字符是句点的行 匹配只有3个字符的行 0 9 3 0 9 匹配以3个数字开头跟着是一个非数字字符的行 A Z A Z 匹配只包含偶数个大写字母的行 输入输出重定向与管道 所谓重定向 就是不使用系统的标准输入端口 标准输出端口或标准错误端口 而进行重新的指定 所以重定向分为输入重定向 输出重定向和错误重定向在Shell中 要实现重定向主要依靠重定向符实现 下表列出了常用的重定向符 输入输出重定向举例 管道 许多Linux命令具有过滤特性 即一条命令通过标准输入端口接收一个文件中的数据 命令执行后产生的结果数据又通过标准输出端口送给后一条命令 作为该命令的输入数据 Shell提供管道命令 将这些命令前后衔接在一起 形成一个管道线 格式为 命令1 命令2 命令n管道线中的每一条命令都作为一个单独的进程运行 每一条命令的输出作为下一条命令的输入 由于管道线中的命令总是从左到右顺序执行的 因此管道线是单向的 管道举例 以长格式递归的方式分屏显示 etc目录下的文件和目录列表 Shell脚本 Shell最强大的功能在于它是一个功能强大的编程语言 用户可以在文件中存放一系列的命令 这被称为Shell脚本或Shell程序 将命令 变量和流程控制有机地结合起来将会得到一个功能强大的编程工具 Shell脚本语言非常擅长处理文本类型的数据 由于Linux系统中的所有配置文件都是纯文本的 所以Shell脚本语言在管理Linux系统中发挥了巨大作用 Shell脚本 Shell脚本是以行为单位的 在执行脚本的时候会分解成一行一行依次执行 脚本中所包含的成分主要有注释 命令 Shell变量和结构控制语句 其中 注释 用于对脚本进行解释和说明 在注释行的前面要加上符号 这样在执行脚本的时候Shell就不会对该行进行解释 命令 在Shell脚本中可以出现任何在交互方式下可以使用的命令 变量 Shell支持具有字符串值的变量 Shell变量不需要专门的说明语句 通过赋值语句完成变量说明并予以赋值 在命令行或Shell脚本文件中使用 name的形式引用变量name的值 流程控制 主要为一些用于流程控制的内部命令 Shell脚本的流程控制 脚本的建立与执行 用户可以使用任何文本编辑器编辑Shell脚本文件 如Vi gedit等 Shell对Shell脚本文件的调用可以采用3种方式 一种是将文件名作为Shell命令的参数 其调用格式为 另一种调用方法是先将脚本文件的访问权限改为可执行 以便该文件可以作为执行文件调用当执行一个脚本文件时 Shell就产生一个子Shell 即一个子进程 去执行文件中的命令 因此 脚本文件中的变量值不能传递到当前Shell 即父进程 为了使的脚本文件中的变量值传递到当前Shell 必须在命令文件名前面加 命令 Shell设置变量实例 Shell选择语句实例 本实例测试首先测试 bin bash文件是否存在 如果存在 测试它是不是一个目录 并通过echo语句输出测试结果 Shell循环语句实例 本实例首先利用for循环 分别给foo赋值为bar fud和43 并通过echo语句输出foo变量的内容 然后利用while循环 使得foo不断加一 本课项目总结 通过前面的学习 我们已经可以完成本课程的项目了 具体实施方法如下 在Lin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论