项目四LinuxShell程序设计.ppt_第1页
项目四LinuxShell程序设计.ppt_第2页
项目四LinuxShell程序设计.ppt_第3页
项目四LinuxShell程序设计.ppt_第4页
项目四LinuxShell程序设计.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

Linux系统管理与维护 项目四LinuxShell程序设计 学习要点 掌握Shell的基本语法结构 学会编写并执行Shell脚本程序 学会在Linux下进行进程调度和作业调度 项目概要 学习了Shell命令之后 小王真正感觉到了Linux功能的强大 虽然有一些命令的使用方法还没有能完全掌握 但张工程师告诉他 经常使用就会很快掌握的 有一点小王感到困惑 有的时候为了完成一项任务 需要好几条命令 而这项任务又要经常执行 也就意味着他要反复输入这几条命令 虽然Linux有查看历史命令的功能 但小王仍觉得不方便 有没有简单一点的方法 项目概要 张工程师告诉他 可以采用Shell程序设计来完成这些重复工作 Shell也能进行程序设计 小王有点不太相信 但他在张工程师的指导下 通过一些资料的学习 终于学会了Shell程序设计 并编写了一个程序完成了任务 任务一编写简单批处理程序 在Shell中有三种变量 系统变量 环境变量 用户变量 其中系统变量在对参数判断和命令返回值判断会使用 环境变量主要是在程序运行的时候需要设置 用户变量在编程过程中使用最多 变量的赋值方法 直接设置变量值 变量之间的置换 从命令行参数获取 从环境变量获取和用户输入等 引用变量 variable 1 系统变量 不包括命令在内的命令行参数的数目 命令行所有参数组成的字符串 命令行所有参数组成的字符串 nn为数字 0表示命令名称 1表示命令第一个参数 以此类推 上一个命令的返回值 如果正常退出则返回0 反之为非0值 当前进程的进程号PID 后台运行的最后一个进程的进程号PID 2 环境变量 HOME当前用户的主目录PATH命令搜索路径LOGNAME用户登录名PS1第一命令提示符 是 或 PS2第二命令提示符 默认是 PWD用户的当前目录UID当前用户标识符TERM终端的类型SHELL用户的Shell类型及路径HISFILE存储历史命令的文件 2 环境变量 显示环境变量值 echo命令 echo HOME 设置环境变量值 set命令set环境变量名 变量值 环境设置文件 3 用户变量 用户变量的定义 赋值与引用 NAME XiaoWang PERSON NAME echo Hello PERSON HelloXiaoWang 表达式Shell中的表达式分为算术运算表达式 关系与逻辑表达式和正则表达式等求表达式的值 expr命令 VAR 20 expr VAR 20 算术表达式 expression echo 2 6 8 关系与逻辑表达式 testexpression expression 数值测试testint1数值测试运算符int2 关系与逻辑表达式 字符串测试teststr1字符串测试运算符str2 文件测试test文件测试运算符filename 关系与逻辑表达式 逻辑运算 非运算 a与运算 o或运算 Shell脚本包含如下成分 注释 命令 变量 表达式等 执行Shell脚本方式1bash脚本文件名方式2source脚本文件名方式3 脚本文件名 编写简单批处理程序 操作实例 用文本编辑器gedit编写一个Shell脚本test1 sh 显示执行脚本时输入的参数及参数总数目 并定义一个局部变量和一个全局变量 bin bashecho List echo count VAR1 RedHatEnterpriseLinux5 exportVAR2 VAR1 操作实例 先练习使用表达式 然后用文本编辑器gedit编写一个计算1 5的平方的Shell脚本test2 sh 进一步熟悉表达式的作用 bin bashint 1while int le5 dosq expr int int echo sqint expr int 1 doneecho finished 任务二学会使用VIM编辑器 vi vim是Linux系统中使用最为普遍的全屏幕交互式文本编辑程序 它没有菜单 只有命令 但功能非常强大 vim可以执行输出 删除 查找 替换 块操作等众多文本操作 vim有3种基本工作模式 命令模式 插入模式和末行模式 运行vim编辑器的命令格式是 vim 选项 文件名 任务三编写分支程序 if语句1 if语句if表达式1then语句块1elif表达式2then语句块2elif表达式3then语句块3 else语句块nfi 编写一个Shell脚本test3 sh 接收用户输入的文件名 然后在当前目录下检查该文件是否存在 bin bashecho Enterafilename readfileif f file thenecho File fileexists fi 操作实例 case语句 case字符串in值1 值2 语句块1 值3 值4 语句块2 值5 值6 语句块3 esac 操作实例 编写一个Shell脚本test4 sh 用case语句建立一个菜单 当用户选择菜单时 执行相应的操作 bin bashecho OptionMenu echo 1Restore echo 2Backup echo 3Upload echoecho n Enterchoice readCHOICEcase CHOICE in1 R echo Youselect1Restore 2 B echo Youselect2Backup 3 U echo Youselect3Upload echo Sorry CHOICEisnotavalidchoice esac 任务四编写循环程序 1 for循环for循环变量 in列表 do语句块done 操作实例 编写一个Shell脚本test5 sh 显示当前目录下的所有 sh文件的名称和内容 bin bashforfilein shdoecho Filename file cat fileecho done 2 while循环和until循环while测试表达式do语句块donewhile语句会在测试条件为真时循环才执行 until测试表达式do语句块doneuntil语句中当表达式的值为假时 循环才会继续执行命令 3 break和continuebreak和continue无条件转移命令 break用于立即终止当前循环的执行 continue用于不执行循环中后面的语句而立即开始下一次循环的执行 这两个命令只有放在do和done之间才有效 任务五进程管理与调度 Linux是一个多用户多任务的操作系统 多任务是指Linux可以同时执行几个任务 进程就是程序在某个数据集合上的一次运行活动 进程号 Linux中每个进程都有一个标识号 叫做PID ProcessID 系统启动后的第一个进程是init 它的PID是1 init是惟一一个由系统内核直接运行的进程 它是系统中所有进程的起源 除了init之外 每个进程都有父进程 进程的分类 交互式进程 由一个Shell启动的进程 交互进程既可以在前台运行 也可以在后台运行 批处理进程 不与特定的终端相关联 提交到等待队列种顺序执行的进程 守护进程 一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动 总是活跃的 一般运行于后 进程的启动方式 启动一个进程有两种途径 手工启动和调度启动 手工启动进程又可分为前台启动和后台启动 后台启动 一般用于需要长时间运行的进程 在命令结尾加上一个 号 调度启动 调度启动是事先进行调度安排 指定任务运行的时间或者场合 到时候系统会自动启动进程这一切工作 常用的调度启动命令有cron at等 进程管理命令 查看进程ps 选项 检查有哪些进程正在运行和运行的状态 进程是否结束 进程有没有僵死 哪些进程占用了过多的资源等 ps命令输出信息 PID进程号PPID父进程号TTY进程所启动的终端STAT进程当前状态START进程开始执行时间VSZ进程占用的虚拟内存空间RSS进程占用的内存空间TIME进程占用CPU的时间USER用户名 CPU进程占用CPU时间与总时间的百分比 MEM占用内存与系统内存问题的百分比SIZE进程大小 数据大小 栈空间大小COMMAND进程的命令名 进程的状态 STAT R进程处于运行 系统的当前进程 或者准备运行状态 等待系统分配CPU S进程处于睡眠状态T追踪或停止Z僵死进程 zombie 进程已经结束但因没有妥善处理尚未释放所有资源W进程没有固定的pages 高优先级的进程N低优先级的进程 在ps命令后利用一个管道符号导向到grep去查找特定的进程 然后再对特定的进程进行操作 如 psaux grephttpdpgrep命令 检查在系统的中活动进程 报告进程属性匹配命令行上指定条件的进程的ID pidof命令查找指定程序的pid 并且用普通文本格式输出 加上 x参数 包含Shell脚本的pid 进程通信 Linux进程间通信的方式很多 最基本通信方式 信号 信号可以直接发送给进程 无需用户接口 进程在收到信号后 会做出相应处理 发送信号时要给出信号的名字或数字 可以用命令 kill l 显示当前系统支持的所有信号 用命令 man7signal 查看所有信号的解释 进程通信 Linux中 kill命令是通过向进程发送指定的信号来结束进程的 kill 信号代码 进程IDkillall进程名pkill进程名 进程调度 进程调度优先级 谦让度高谦让度表示进程优先级别最低 谦让度的值从 20到19 nice n谦让度的增量值程序renice谦让度PID 监视系统任务的工具top 命令的格式 top 选项 top命令交互式按键 空格键立即更新 m切换到内存信息 并以内存占用大小排序 A按进程生命大小进行排序 最新进程显示在最前M按内存占用大小排序 由大到小 N以进程ID大小排序 由大到小 P按CPU占用情况排序 由大到小 任务六作业调度 作业 Job 是用户提交给操作系统计算的一个独立任务 用户可以直接控制的作业称为前台作业 用户放在内存中自动执行的作业称为后台作业 前台作业与后台作业 将作业放到后台执行的方法是在命令后面加上 符号 用 Ctrl Z 键将当前在前台运行的作业放到后台 并暂停执行 列出后台作业状态命令 jobs格式 jobs 选项 作业ID 使用fg命令可以将后台作业放到前台运行 格式 fg 作业ID 让后台暂停的命令在后台运行 格式 bg 作业ID 作业调度命令 偶尔运行的作业采用at或batch调度特定时间重复运行的作业采用cron调度和anacron调度 at调度 启动at服务 serviceatdstart 配置at作业在某一指定时间内调度一项一次性作业 键入 attime 命令 然后在 at 的提示符下输入要定时执行的命令 一行一条命令 可以有多行 每一行以回车键 Enter 结束 输入完成后 以 Ctrl D 键回到操作系统提示符 batch调度 batch的作用与at类似 但它要在系统平均负载量降到0 8以下时才执行某项一次性的任务 当系统平均负载量下降到0 8以下时 这组命令或脚本就会被执行 cron调度 启动cron服务 servicecrondstart cron的主配置文件cron的主配置文件是 etc crontab anacron调度 anacron并不要求系统持续运行 它可以用来运行通常由cron运行的每日 每周 和每月的作业 anacron与cron一样用来调度重复的任务 周

温馨提示

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

评论

0/150

提交评论