版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、掌握Shell的基本语法结构。学会编写并执行 Shell脚本程序。学会在Linux下进行进程调度和作业调度任务一学习变量与表达式Shell是操作系统最外面的一层,负责管理用户与操作系统之间的交互,例如等 待用户输入,向操作系统解释用户的输入,以及处理操作系统的各种输出结果。除了作为命令解释器之外,Shell本身还是一个解释型的程序设计语言。Shell程序设计语言支持变量、表达式、函数和流程控制结构等,任何在终端能够执行的命 令也放到Shell程序。4.1.1变量在Shell中有三种变量:系统变量、环境变量 和用户变量。其中系统变量在对参数判 断和命令返回值判断会使用,环境变量主要是在程序运行的
2、时候需要设置,用户变 量在编程过程中使用最多。这几种变量的赋值方法各不相同,主要有:直接设置变量值、变量之间的置换、从 命令行参数获取、从环境变量获取和用户输入等几种方式。引用变量一般采用$variable的形式引用变量 variable的值。1. 系统变量Shell常用的系统变量用于提供系统信息。系统变量一般采用命令行参数获取。2. 环境变量Shell在开始执行前就已经定义了一些与系统工作环境有关的变量。显示环境变量用 echo命令。在bash中,设置环境变量用 set命令。用unset命令可将环境变量重新设置为系统 默认值,。用户并不需要每次登录后都对各种环境变量进行手工设置,通过环境设置
3、文件,用 户的工作环境的设置可以在登录的时候由系统自动来完成。环境设置文件有两种: 系统环境设置文件和用户环境设置文件。表4-1常见的系统变量变量名说明$#不包括命令在内的命令行参数的数目$*命令行所有参数组成的字符串$命令行所有参数组成的字符串$nn为数字,$0表示命令名称,$1表示命令第一个参数,以此类推$?上一个命令的返回值,如果正常退出则返回0,反之为非0值$当前进程的进程号PID$!后台运行的最后一个进程的进程号PID表4-2 Shell中的环境变量变量名说明变量名说明HOME:当前用户的主目录PWD用户的当前目录PATH命令搜索路径UID当前用户标识符LOGNAME用户登录名TER
4、M终端的类型PS1:第 叩令提示付,疋 #或$SHELL用户的Shell类型及路径PS2第二命令提示符,默认是HISFILE存储历史命令的文件3. 用户变量不管系统变量和环境变量有多少,对于需求来说,总是不够的。用户常常需要自定 义一些变量,这些变量就称为用户变量。定义用户变量的语法为:n ame=stri ng局部变量与全局变量Shell变量也有其规定的作用范围。局部变量的作用范围仅仅在其命令行所在的Shell或Shell脚本文件中。全局变量 的作用范围则包括本Shell进程及其所有子进程,即相当于环境变量,贯穿于整个当前用户环境。可以使用export命令将局部变量设置为全局变量。expor
5、t n ame=stri ng【操作实例4.1】用文本编辑器gedit编写一个Shell脚本testl.sh,显示执行脚本时输入的参数及参数 总数目,并定义一个局部变量和一个全局变量。4.1.2表达式Shell中的表达式分为算术运算表达式、关系与逻辑表达式和正则表达式等几种。1. expr命令expr命令的功能是求表达式的值。2. 算术表达式算术表达式可以是由运算符+、-、*、/、=组成的表达式。3. 关系与逻辑表达式命令test与方括号都用于进行条件测试,测试的结果返回逻辑值,即真true(O)和假false(1)。test和可以相互替换。表4-4常用的数值测试运算符运算符说明-eq如果in
6、t1=int2,则为真-ne如果int1!=int2,则为真-gt如果int1int2,则为真-ge如果int1=int2,则为真-lt如果int1int2,则为真-le如果int1=int2,则为真表4-5常用的字符串测试运算符运算符说明=如果字符串str1和str2相同,则为真!=如果字符串str1和str2不同,则为真-z如果字符串str的长度为0,则为真-n如果字符串str的长度不为0,则为真表4-6常用的文件测试运算符运算符说明-e:如果文件file name存在,则为真-r如果文件file name存在且可读,则为真-w如果文件file name存在且可写,则为真-x:如果文件fi
7、le name存在且可执行,则为真-s如果文件file name存在且长度大于 0,则为真-d:如果文件file name存在且为目录,则为真-f如果文件file name存在且为普通文件,则为真-b如果文件file name存在且为特殊块文件,则为真-L如果文件file name存在且为符号链接文件,则为真-O如果文件file name存在且属于当前用户文件,则为真-G如果文件file name存在且属于当前组文件,则为真-nt:测试两个文件的新旧,前一个文件比后一个新,则为真-ot测试两个文件的新旧,前一个文件比后一个旧,则为真表4-7逻辑运算符运算符说明!:非运算,对逻辑值取反-a与运算
8、,两个逻辑值为真返回值才为真,否则为假-o:或运算,两个逻辑值有一个为真,返回值就为真【操作实例4.2】先练习使用表达式,然后用文本编辑器 gedit编写一个计算1-5的平方的Shell脚本 test2.sh,进一步熟悉表达式的作用。任务二学习流程控制结构4.2.1分支结构Shell程序中的条件语句主要有 if语句、case语句。1.if语句if语句根据表达式的值来决定要执行的程序段落。其语法格式如下:if表达式1 the n语句块1elif表达式2 then语句块2elif表达式3 then语句块3else语句块nfi【操作实例4.3】编写一个Shell脚本test3.sh,接收用户输入的文
9、件名,然后在当前目录下检查该文 件是否存在。2. case语句case 语句为用户提供了根据字符串或变量的值从多个选项中选择一项执行的方法。case 语句的语法格式如下:case 字符串 in值 1| 值 2)语句块 1;值 3| 值 4)语句块 2;值 5| 值 6)语句块 3;esac【操作实例 4.4 】编写一个Shell脚本test4.sh,用case语句建立一个菜单,当用户选择菜单时,执行 相应的操作。4.2.2 循环结构Shell 常见的循环语句有 for 循环、 while 循环、 until 循环。1. for 循环for 循环对一个变量所有可能的值都执行一个命令序列。 赋给变
10、量的几个数值既可以 在程序内以数值列表的形式提供,也可以在程序以外以参数的形式提供。for 循环的一般格式如下 :for 循环变量 in 列表 do语句块donefor 语句对 in 列表 中的每一项都执行一次。列表可以是包括几个单词并且有空格分 隔开的变量,也可以是直接输入的几个值。每执行一次循环,循环变量都被赋予列 表中的当前值,直到最后一个为止。 in 列表子句也可以使用通配符。in列表子句可以省略,此时,假定循环变量包含执行Shell程序时命令行的所有位置参数,即相当于 in “$”。【操作实例 4.5】编写一个Shell脚本test5.sh,显示当前目录下的所有.sh文件的名称和内容
11、。2. while 循环和 until 循环while 语句与 until 语句具有类似的语法格式和功能。 while 语句会在测试条件为真时 循环才执行,语法如下:while 测试表达式do语句块doneuntil 语句中当表达式的值为假时,循环才会继续执行命令:until 测试表达式do语句块done【操作实例 4.6】编写一个 Shell 脚本 test6.sh ,脚本在执行时,接收用户输入的文件名,然后显示该 文件的内容。3. break 和 continuebreak 和 continue 无条件转移命令。 break 用于立即终止当前循环的执行, continue 用于不执行循环中
12、后面的语句而立即开始下一次循环的执行。这两个命令只有放在 do 和 done 之间才有效。【操作实例 4.7】对【操作实例 4.4】中的 Shell 脚本进行改进,用循环语句建立菜单,当用户选择了 一次操作后,再次显示菜单供用户进行下一次选择,当用户按“q”键后,退出循环。Shell 脚本的文件名为 test7.sh 。任务三 编辑与运行 Shell 脚本4.3.1 vim 的使用vi/vim 是 Linux 系统中使用最为普遍的全屏幕交互式文本编辑程序。 它没有菜单, 只 有命令,但功能非常强大。 vim 可以执行输出、删除、查找、替换、块操作等众多 文本操作,而且用户可以根据自己的需要对其
13、进行定制。Vim 有 3 种基本工作模式:命令模式、插入模式和末行模式。运行 Vim 编辑器的命令格式是:vim 选项 文件名 执行 vim 命令后,首先进入的是命令模式。用户输入进入插入模式的命令后,即可 进入插入模式。图 4-1 vim 的运行模式及转换4.3.2 Shell 编程在 Linux 系统中, 用 Shell 编写的批处理文件称为Shell 脚本, 它包含若干条命令和语句,可以解释执行。Shell 脚本的作用主要包括: 自动执行命令; 实现系统管理和维护; 创建简单的应用; 操作文本或文件。1编写 Shell 脚本Shell 脚本包含如下成分:注释部分: 注释部分以 #开头的行
14、。命令: 在 Shell 脚本中可以出现任何在交互方式下可以使用的命令。变量:在 Shell 脚本中既可以使用用户自定义的变量, 也可以使用系统环境变量。 Shell 变量分为局部变量和全局变量。局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中。全局变量的作用范围则包括本Shell进程及其所有子进程。可以使用 export 内置命令将局部变量设置为全局变量。流程控制: 流程控制语句对命令的执行流程进行控制 (分支、循环、子 Shell 调用)。用 vim 等编辑程序就可以创建 Shell 脚本。 Shell 脚本的文件扩展名一般为“ .sh 。” 2执行 Shell
15、脚本Shell 脚本有三种执行方式:(1)方式 1bash 脚本文件名(2)方式 2source 脚本文件名(3)方式 3chmod u+x 脚本文件 ./脚本文件名 用第一种和第二种方式,用户即使没有可执行权限,也可执行脚本文件。 【操作实例 4.8 】 利用循环计算 10 的阶乘。 Shell 脚本的文件名为 test8.sh 。任务四 管理 Linux 中的进程与作业4.4.1 Linux 中的进程1 Linux 进程的基本概念Linux 是一个多用户多任务的操作系统。 多用户是指多个用户可以在同一时间使用计 算机系统;多任务是指 Linux 可以同时执行几个任务,它可以在还未执行完一个
16、任 务时又执行另一项任务。程序是为了完成某种任务而编写的指令集合。但程序是静态的,只是存储在计算机 上的一段代码。为了描述多任务这样一个动态的概念,引入了进程。进程就是程序 在某个数据集合上的一次运行活动。为了区分进程,Linux中每个进程都有一个标识号,叫做PID ( Process ID)。系统启动后的第一个进程是init,它的PID是1。2Linux 中进程的分类Linux中的进程一般分为交互式进程、批处理进程和守护进程三类。交互式进程:由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台 运行。典型的应用比如编辑器 vim。此类进程对系统响应时间要求比较高,否则用 户会感
17、觉系统反应迟缓。批处理进程 :不与特定的终端相关联,提交到等待队列种顺序执行的进程。比如编 译器。守护进程 :一般是由系统在开机时通过脚本自动激活启动或超级管理用户root 来启动,总是活跃的,一般运行于后台。这些后台守护进程时刻监听着前台客户的服务 请求,一旦客户发出了服务请求,守护进程便为它们提供服务。3Linux 进程的启动方式 启动一个进程有两种途径:手工启动和调度启动。( 1 ) 手工启动由用户输入命令, 直接启动一个进程便是手工启动进程。 手工启动进程又可分 为前台启动和后台启动。 台启动:这是启动进程最常用的方式。 一般地,用户键入一个命令就是启动了一个进程, 而且是一个前台的进
18、程。 后台启动:假设用户要启动一个需要长时间运行的格式化文本文件的进程,为了不使整个Shell 在耗时进程的运行过程中都处于“瘫痪”状态,从后台启动这个进程是明智 的选择。从后台启动进程其实就是在命令结尾加上一个&号。键入命令以后,出现一个数字,这个数字就是该进程的 PID。( 2)调度启动这种启动方式是事先进行调度安排, 指定任务运行的时间或者场合, 到时候系 统会自动启动进程这一切工作。常用的调度启动命令有cron、 at 等。4. Linux 进程管理命令(1) 查看进程在Linux中,使用ps命令对进程进行查看。(2) 进程通信Linux进程间通信的方式很多,信号是一种最基本通信方式。
19、Linux信号简介信号可以直接发送给进程,无需用户接口。进程在收到信号后,会做出相应处理。发送信号时要给出信号的名字或数字。可以用命令“kill -I ”,显示当前系统支持的所有信号。用命令“ man 7 signal查看所有信号的解释。kill命令是通过向进程发送指定的信号来结束进程的。表4-6 ps命令常用选项说明选项说明选项说明a显示所有进程e在命令后显示环境变量u显示进程属主名和启动时间等 信息w宽行输出x显示没有控制终端的进程-e显示所有进程f显示进程树-f显示全部表4-7 ps命令输出信息的含义选项说明选项说明PID进程号TIME进程占用CPU的时间PPID父进程号USER用户名T
20、TY进程所启动的终端%CPU进程占用 CPU时间与总时 间的百分比STAT进程当前状态%MEM占用内存与系统内存问题 的百分比START进程开始执行时间SIZE进程大小+数据大小+栈空 间大小VSZ进程占用的虚拟内存空间COMMAND进程的命令名RSS进程占用的内存空间5进程调度(1 )进程调度优先级在Linux操作系统中,进程之间是竞争资源关系。这个竞争优劣是通过谦让度来实 现的。高谦让度表示进程优先级别最低。负值或0表示最高优先级,对其他进程不谦让,也就是拥有优先占用系统资源的权利。谦让度的值从-20到19。nice命令可以在创建进程时为进程指定谦让度的值。renice是通过进程ID (
21、PID)来改变谦让度,进而达到更改进程的优先级。(2 )交互式的进程管理工具 监视系统任务的工具 top 系统监视器 gnome-system-monitorgnome-system-monitor是一个图形化的系统监视器442 Linux中的作业控制1.作业的概念作业(Job)是用户提交给操作系统计算的一个独立任务。作业流是指在批处理系统中把一批作业安排在输入设备上,然后依次读入系统进 行处理,从而形成了作业流。操作系统中用来控制作业的进入、执行和撤消的一组程序称为作业管理程序。作 业管理程序的主要任务是作业调度和作业控制。Linux 中提供了专门的作业调度命令。2前台作业与后台作业 用户可
22、以直接控制的作业称为前台作业。 用户放在内存中自动执行的作业称为后台 作业。 Linux 中提供了一组用于前台、后台作业控制的命令。在后台执行作业 将作业放到后台执行的方法是在命令后面加上“&”符号。将前台作业暂停到后台可以用“ Ctrl+Z ”键将当前在前台运行的作业放到后台,并暂停执行。列出后台作业状态命令 -jobs将后台作业放到前台运行使用 fg 命令可以将后台作业放到前台运行。 让后台暂停的命令在后台作业 使用 bg 命令可以将后台暂停的命令在后台继续执行。3. 作业调度命令Linux 提供了一些作业调度命令, 用于在特定时间或周期性地执行程序。 对于偶尔运 行的作业采用 at 或
23、batch 调度。对于特定时间重复运行的作业采用 cron 调度和 anacron 调度。 at 调度at用于设置某一特定时刻执行的命令。at所设置的命令只执行一次。 batch 调度batch 的作用与 at 类似,但它要在系统平均负载量降到 0.8 以下时才执行某 项一次性的任务。 cron 调度cron 用于安排周期性的任务作业。 anacron 调度anacron 是和 cron 相似的任务调度器,只不过它并不要求系统持续运行,它 可以用来运行通常由 cron 运行的每日、每周、和每月的作业。【操作实例 4.9 】 (1)查看系统当前进程,并观察各输出项和进程状态。(2) 以后台方式运
24、行命令“man Is &,”然后根据该进程的PID杀死该进程。(3) 运行命令“ man cat ,并用 Ctrl+Z 键将其放到后台,查看该进程作业号,然后将 其调回到前台。(4) 配置一个 at 作业,让系统在当前时间 5 分钟后将 /root 目录下的 instaII.Iog 文件复 制到 /home 目录下。(5) 配置一个 cron 作业, 让系统在在每周 2、4、6凌晨 3 点进入维护状态,重新启 动系统。自主训练1.将/etc/passwd的第一列取出,并每一列以字符串the n account is $user,其中n表示 行数, $user 表示抽取的用户。2在根目录下有四个文件m1.txt , m2.txt ,m3.txt , m4.txt ,用 Shell 编程,实现自动创建 m1,m2,m3,m4 四个目录, 并将 m1.txt,m2.txt,m3.txt,m4.txt 四个文件分别拷贝
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年创造宣言个人说课稿
- 2025-2026学年丹科 说课稿
- 2025-2026学年古诗教学说课稿
- 2025-2026学年合成材料说课稿
- 2025-2026学年国画写意麻雀说课稿
- 2025-2026学年《祖国的标志》说课稿
- 2025年贵州省仁怀市高二生物上册期末考试试卷及参考答案(轻巧夺冠)
- 2026年河北省高碑店市高二生物下册期末考试模拟考试卷附参考答案【模拟题】
- 2026下半年市场监管岗笔试真题题库及解析
- 2025-2026学年大班认识先后说课稿
- ISO 9001-2026 换版深度解读:36条条款逐条对比与企业换版行动指南
- 自考00688设计概论高频考点重点
- 小学五年级综合实践活动《窗户清洁及时做》劳动实践教学设计
- 2026秋部编版五年级语文上册第2单元语文园地二教学教学课件
- 单片机基础与应用(C语言版)(第3版)课件全套 王静霞 第1-9章 单片机及其开发环境 -综合应用实践
- 2026年云南中考化学真题(解析版)
- 肺结节精准管理专家共识2026年版
- 2025年全国人大机关公开遴选公务员真题(附答案)
- 房屋租金评估实施方案
- 光伏组件清洗服务合同协议2025年安全规范
- 中西方大学教育的异同
评论
0/150
提交评论