1 / 21

教学单元 5.1.1 Shell 程序的编写与执行

Linux 操作系统应用. 子情境 5.1 Shell 命令编程. 教学单元 5.1.1 Shell 程序的编写与执行. 统计车间生产数据. 每天上午和下午下班前必须对数据进行双硬盘备份,且要求保存最近 3 次备份。. 改手工为 Shell 程序进行备份。. 备份的数据存放于 /home/hbzy/workdata/. 最近三次备份文件为 worknewdata.tar 、 work2nddata.tar 、 work3rddata.tar. 备份文件存放于 /home/hbzy/disk1backup/ 和 /dev/disk2backup/. 任务描述.

kenda
Download Presentation

教学单元 5.1.1 Shell 程序的编写与执行

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux操作系统应用 子情境5.1 Shell命令编程 教学单元5.1.1 Shell程序的编写与执行

  2. 统计车间生产数据 每天上午和下午下班前必须对数据进行双硬盘备份,且要求保存最近3次备份。 改手工为Shell程序进行备份。 备份的数据存放于/home/hbzy/workdata/ 最近三次备份文件为worknewdata.tar、work2nddata.tar、work3rddata.tar 备份文件存放于/home/hbzy/disk1backup/和/dev/disk2backup/ • 任务描述

  3. 任务实施流程 浏览“相关资讯” 任务准备 设计执行任务的程序结构与流程 用vi编辑Shell程序 调试shell程序 执行shell程序

  4. 1 什么是Shell程序 2 为什么要使用Shell编程 • 相关资讯 Shell本身就是一个解释型的程序设计语言,输入的任何命令都能直接添加到一个可执行的Shell程序中;它还提供了定义变量和参数的手段、丰富的程序控制结构。 把多个命令编制成一个Shell程序(Shell脚本)来完成这些复杂任务。

  5. 3 Shell程序基本组成 ·主体:是变量、控制语句及命令语句组成。 ·以#!作为第一行开头,用#表示注释。 4 在Shell脚本中常用的bash内部命令 (1)echo 功能:在屏幕上显示出由arg参数指定的字符串。 格式:echo arg • 相关资讯

  6. 4 在Shell脚本中常用的bash内部命令 • 相关资讯 (2)eval 功能:读入参数args,并将它们合并成一个新的命令,然后执行。 格式:eval args (3)exec 功能:不创建新的子进程,而是转去执行指定的命令,当指定的命令执行完成时,该进程就终止。 格式:exec 命令参数 (4)wait 功能:使Shell等待在后台启动的所有子进程结束,wait的返回值总为真。 格式:wait (5)exit 功能:退出Shell程序。 格式:exit [数字] (6)“.”(点) 功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句。 格式: .Shell程序文件名

  7. 1 2 一台装有RHEL 5 Server操作系统的计算机,系统装载2块硬盘,其中非引导硬盘挂载为/dev/disk2backup;在主硬盘/home/hbzy/下建立有workdata、disk1backup两个目录分别用来存放用户工作数据文件和用户工作数据备份文件(worknewdata.tar、work2nddata.tar、work3rddata.tar)。 启动该计算机以hbzy帐号(密码hbzy123)进入字符界面。 • 任务准备

  8. 3 图10-1 查看/home/hbzy/disk1backup目录 图10-2 查看/dev/disk2backup目录 • 任务准备 查看执行任务前相关目录的状态。 -用cd命令进入/home/hbzy/disk1backup/目录,再用ls –l 命令显示,如图10-1所示。 -用cd命令进入/dev/disk2backup/目录,然后用ls –l 命令显示,如图10-2所示。

  9. 步骤1 设计完成任务的程序结构、流程 • 任务实施 在动手编写程序前,必须先构思并设计出完成任务的程序基本结构、流程如下: (1) 使用rm命令删除/home/hbzy/disk1backup/目录下的work3rddata.tar文件。 (2) 使用mv命令将/home/hbzy/disk1backup/目录下的work2nddata.tar改名为work3rddata.tar。 (3) 使用mv命令将/home/hbzy/disk1backup/目录下的worknewdata.tar改名为work2nddata.tar。 (4) 使用tar命令将/home/hbzy/workdata/目录备份为worknewdata.tar文件存放于/home/hbzy/disk1backup/目录中。 (5) 使用rm命令删除/dev/disk2data/目录中的worknewdata.tar、work2nddata.tar、work3rddata.tar三个文件。 (6) 使用cp命令将/home/hbzy/disk1backup/目录下worknewdata.tar、work2nddata.tar、work3rddata.tar三个文件复制到/dev/disk2backup/目录中。 (7) 使用输出任务完成的提示信息。

  10. 步骤2 使用vi编辑Shell程序autobackupdata.shell • 任务实施 (1)启动vi编辑器 输入命令:vi autobackupdata.shell (2)输入程序 在vi编辑器界面输入下列程序内容,输入完毕后保存退出vi。程序内容见下页。

  11. #!/bin/bash #delete file work3rddata.tar rm /home/hbzy/disk1backup/work3rddata.tar #rename file work2nddata.tar to work3rddata.tar mv /home/hbzy/disk1backup/work2nddata.tar /home/hbzy/disk1backup/work3rddata.tar #rename file worknewdata.tar to work2nddata.tar mv /home/hbzy/disk1backup/worknewdata.tar /home/hbzy/diskbackup/work2nddata.tar #backup /home/hbzy/workdata to /home/hbzy/disk1backup/worknewdata.tar tar cf /home/hbzy/disk1backup/worknewdata.tar /home/hbzy/workdata #delete files worknewdata.tar、work2nddata.tar、work3rddata.tar in /dev/disk2data folder rm /dev/disk2backup/worknewdata.tar rm / dev/disk2backup/work2nddata.tar rm / dev/disk2backup/work3rddata.tar #copy worknewdata.tar、work2nddata.tar、work3rddata.tar to /dev/disk2backup cp /home/hbzy/disk1backup/worknewdata.tar /dev/disk2backup/ cp /home/hbzy/disk1backup/work2nddata.tar /dev/disk2backup/ cp /home/hbzy/disk1backup/work3rddata.tar /dev/disk2backup/ echo “Task is finished” • 任务实施

  12. 输入命令:bash autobackupdata.shell 如果程序有错,返回“步骤2”修改程序,直到程序正确。 输入命令如图10-4所示: 图10-4 运行Shell程序 • 任务实施 步骤3 调试Shell程序 步骤4 增加Shell程序的可执行权并运行

  13. 1 查看任务完成后相关文件状况 查看任务完成后/home/hbzy/disk1backup/、/dev/disk2backup/目录下文件状况。 2 分析观测结果 通过任务完成前后显示的文件创建时间对比可知任务按要求完成。 • 任务检测

  14. 每种Shell都有自己的配置文件,用户可设置各种环境变量。重要的Shell环境配置文件有:每种Shell都有自己的配置文件,用户可设置各种环境变量。重要的Shell环境配置文件有: /etc/bashrc 包含系统定义的命令别名和bash的环境变量定义。 /etc/profile 包含系统的环境定义,并指定启动时必须运行的程序。 /etc/inputrc 包含系统的键盘设定,以及针对不同终端程序的键位配置信息。 $HOME/.bashrc 包含为用户定义的命令别名和bash的环境变量定义。 $HOME/bash_profile 包含为用户定义的环境变量,并指定用户登录时需要启动的程序。 $HOME/.inputrc 包含用户的键盘设定,以及针对用户终端的键位配置信息。 Shell环境配置文件 1 • 知识或技能拓展

  15. (1) Shell预定义变量(内建变量) Shell变量类型 2 • 知识或技能拓展 常用的Shell预定义变量有: $#:位置参数的数量。 $*:所有位置参数的内容。 $?:命令执行后返回的状态,用于检查上一个命令执行是否正确(返回0表示该命令被正确执行;返回非0值表示该命令执行出错) $$:当前进程的进程号。 $!:后台运行的最后一个进程号。 $0:当前执行的进程名 $1、$2、$3等:位置参数

  16. (2) Shell环 境变量 Shell变量类型 2 • 知识或技能拓展 常用的Shell环境变量(与系统工作环境有关的变量)有: PATH 命令搜索路径。 PWD 当前工作目录的绝对路径,其取值随cd命令的使用而变化。 SHELL 用户的Shell类型。 PS1 主命令提示符。 IFS Shell使用的分隔符。 LOGNAME 用户登陆名,也就是账户名。 UID 当前用户的识别码。 HOME 用户主目录的位置,通常是/home/用户名。 TERM 终端类型。 HISTFILE 命令历史文件。 HISTSIZE 命令历史文件中最多可包含的命令条数。

  17. (3) 用户变量 Shell变量类型 2 • 知识或技能拓展 用户定义的变量由字母、数字及下划线组成,变量名的第一个字符不能为数字,区分大小写。自定义变量的语法规则: -变量名=变量值 这样创建的变量是只属于当前Shell程序的局部变量。 -export 变量名 将一个局部变量提供给其它命令或Shell程序使用。 -export 变量名=变量值 在给变量赋值的同时使用export命令。 -readonly 变量名 保证变量的只读性。

  18. (4) 参数变量 Shell变量类型 2 • 知识或技能拓展 -变量=${参数-word}:用参数的值来置换变量的值,否则用word置换。 -变量=${参数=word}:用参数的值来置换变量的值,否则把变量设置成word,然后再用word替换参数的值。注意,位置参数不能用于这种方式。 -变量=${参数?word}:用参数的值来置换变量的值,否则就显示word,并从Shell程序退出。 -变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。

  19. Shell程序的优点和基本组成 Shell程序中常用的内部命令 编写Shell程序的基本过程和基本方法 (重点) Shell环境配置文件 (重点) Shell变量类型(重点、难点) • 任务总结

  20. 1、2、3、4、5、6、7、8、9、10 二 1、2、3 • 操作与练习

  21. Thank You ! 行重于思 做重于说

More Related