版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PowerPointDesign2026年主讲人:时间:项目7使用Shell脚本管理服务器编写选择结构程序编写循环结构程序0102目录CONTENTS
任务思维导图编写选择结构程序PowerPointDesign任务01(1)调查任务(2)调查目的调查任务和目的(1)任务背
(2)调查内容(3)分析影响(4)任务步骤(5)报告内容(6)报告格式具体任务要求(1)内容全面性(2)分析深度(3)结构与表达(4)创新性评价标准调查人工智能在生活中的应用(1)了解Shell运行环境。(2)掌握Shell脚本的作用。【知识目标】(1)能能编写Shell基础语法脚本程序。(2)能够编写Shell选择结构脚本程序。【技能目标】(1)通过编写Shell基础语法程序,培养学生通过自动化技术解决问题的能力。(2)通过编写Shell选择结构脚本程序,培养学生编写程序时的结构化思维。【素养目标】学习目标Shell环境是用户与操作系统交互命令的运行环境。它提供了一个接口,用户可以通过它执行命令、运行脚本、进行文件管理等。Shell是用户与操作系统内核之间的接口,理解Shell环境对于编写Shell脚本、系统管理、自动化任务等方面都非常重要。(1)常见的Shell类型不同的Shell提供了不同的功能和语法,常见的几种Shell如下所示。Bash:Linux和macOS系统中最常用的Shell,兼容性强,功能丰富,支持脚本编写和命令行操作。Sh:Unix系统的原始Shell,Bash的前身,语法相对较简单。Zsh:一个功能强大的Shell,支持自动补全、历史命令搜索等功能,Zsh还可以通过插件进行扩展,成为一个非常个性化的Shell环境。Fish:一个用户友好的交互式Shell,具有直观的语法高亮、自动补全、语法检查等功能。(2)读取配置文件当用户登录到操作系统时,设置的Shell会启动,执行Shell全局配置文件/etc/profile、用户目录下的~/.bash_profile、~/.bashrc。如果用户在已登录的环境下打开一个新的终端窗口,会启动非登录Shell,只会读取~/.bashrc文件而不会读取登录时执行的配置文件。(3)环境变量Shell环境依赖于许多环境变量,它们为Shell提供了关于系统状态和配置的关键信息。常见的环境变量如下所示。PATH:定义了系统可执行文件的路径。每当用户输入命令时,Shell会在这些路径下查找相应的可执行文件。HOME:表示当前用户的主目录,通常是/home/username或/Users/username。USER:当前用户的用户名。SHELL:当前使用的Shell的路径,如/bin/bash。Shell运行环境Shell脚本是一系列Shell命令的集合,它们被写在一个文本文件中,通过Shell环境按顺序执行,广泛应用于系统管理、任务调度、批处理、文件处理等多个领域。它的作用不仅仅限于提高工作效率,还能显著减少人为错误。以下是Shell脚本的主要作用和应用场景。(1)自动化任务Shell脚本最主要的作用之一就是执行自动化任务。通过编写脚本,可以将常见的重复性操作(如文件备份、日志清理、软件安装等)自动化执行,从而节省大量的时间和精力,如每天定时备份数据、清理系统临时文件、下载更新等操作,都可以通过Shell脚本来完成。(2)系统监控与报警Shell脚本能够监控系统的健康状态,及时发现潜在问题并采取措施。例如,脚本可以监控磁盘空间、CPU使用率、内存占用、网络流量等,并在系统资源出现异常时自动发送邮件通知管理员。这样,管理员能够及时采取措施,防止系统崩溃或服务中断。(3)批处理操作Shell脚本在批处理操作中具有重要作用,它可以自动化执行一系列文件处理任务,如批量重命名、移动文件、修改文件权限、删除指定文件等,避免了手动操作的繁琐和错误。(4)任务调度与定时执行在Linux系统中,Shell脚本常与定时任务管理工具结合使用,实现任务的定时调度。如每天定时执行备份操作、每周执行系统更新、每月进行日志归档等任务,确保系统自动完成常规的维护工作,而无需人工干预。(5)集成与配置管理许多企业在部署和配置软件系统时,依赖Shell脚本来完成系统的安装、配置和集成。通过编写脚本,系统管理员可以快速地在多个服务器上部署软件、配置环境变量、启动服务等,极大提高了部署效率,并确保了环境的一致性。(6)调试与故障排除Shell脚本不仅用于日常操作,还能帮助开发人员和管理员调试和排除系统问题,通过脚本自动化执行一系列诊断命令,管理员能够更快速地识别故障原因并进行修复。如自动化检测错误日志、检查网络连接状态、验证数据库连接等。Shell脚本的作用必备知识使用Xshell工具登录名称为shell的服务器,修改服务器的名称为shell,如下所示。[root@localhost~]#hostnamectlset-hostnameshell(1)创建脚本文件(2)赋予文件执行权限(3)执行脚本①通过./方式运行脚本②通过bash加脚本名方式运行脚本(1)创建shell服务器(2)配置服务器IP地址变量是在脚本执行过程中可以改变的值,通常用来保存数值、命令的输出或文件路径等信息。定义变量时,格式为变量名=变量值,其中等号两边不能有空格,Shell变量的名称可以由字母、数字和下划线组成,但不能以数字开头。在脚本中引用变量时,需要在变量名前加上$符号。(1)定义基本变量(2)赋值命令结果给变量(3)创建一个环境变量NAME,值为zs(4)使用预定义变量Shell函数可以封装重复的代码块,提高脚本可维护性,下面通过具体函数脚本进行说明。(1)编写定义和调用函数的脚本(2)编写能接收参数的函数脚本(3)编写有返回值的函数在Shell脚本中,运算符是进行各种操作的符号,运算符分为多种类型,包括算术运算符、关系运算符、布尔运算符、逻辑运算符、字符串运算符、测试文件运算符等,帮助脚本完成数学计算、逻辑判断、字符串处理等任务。(1)编写算术运算符程序(2)编写算术运算符程序(3)编写字符串运算符程序(4)编写逻辑运算符程序(5)编写文件运算符程序创建编写和运行Shell脚本的服务器创建和执行Shell脚本变量函数运算符熟悉Shell脚本基础语法Shell选择结构可以条件判断情况执行不同的代码块,单分支结构仅包含一个条件判断,条件为真时执行代码,为假时直接跳过,语法如下。if条件判断;then条件为真时执行的命令;fi(1)编写判断目录是否存在的脚本(2)编写判断用户是否存在的脚本编写单分支脚本Shell多分支结构包含多个条件判断,运行脚本时,按顺序检查条件判断,当某个分支条件为真时,执行相应代码,完成后,不再进行其他条件判断,退出选择结构,如果所有条件都不成立,则运行最后默认的else分支,语法所下所示。if[条件判断1];then
条件1为真时执行的命令elif[条件判断2];then
条件2为真时执行的命令
elif[条件判断3];then
条件3为真时执行的命令else
所有条件都不为真时执行的命令fi(1)编写判断年龄的脚本(2)使用多分支结构判断某个目录是否存在(3)编写判断服务是否启动的脚本编写多分支脚本编写单分支和多分支脚本打开“智能运维助手”智能体,在连接大语言模型和IP地址为192.167.200.30的shell服务器之后,在“问题输入”提示框中输入问题,如下所示。“在/root目录下创建一个名称为health.sh的shell脚本,检查cpu、内存、磁盘的利用率,当cpu、内存或者磁盘的利用率超过80%时,输出告警信息,编辑时不要使用```bash和```,创建完成后,通过计划任务每10分钟执行一次该脚本。”输入完成后,单击“提问”按钮,大语言模型返回命令到终端输出在返回的脚本中,首先统计了CPU、内存和磁盘的利用率,当利用率大于80%时,给出告警提示,并通过计划任务,每10分钟执行一次脚本。向大语言模型提问单击“执行命令”按钮,执行大语言模型返回的命令,结果如图执行大语言模型返回结果(1)运行脚本首先打开自动创建的health.sh脚本,为了显示效果,将内存使用率修改为超高8%后,自动告警,如下所示。if(($(echo"$mem_usage>8"|bc-l)));then保存后,运行health.sh脚本,结果如下所示。[root@shell~]#bashhealth.shWarning:Memoryusageis15.6237%从结果中可以看出,当前的内存使用率大于8%,提示了告警信息,完成后,将8%修改回80%。(2)查看计划任务查看当前的计划任务,如下所示。[root@shell~]#crontab-l*/10****/root/health.sh通过结果发现,已经创建了计划任务,每10分钟执行一次health.sh脚本,可以通过tail-f/var/log/cron查看执行结果,如下所示。[root@shell~]#tail-f/var/log/cronSep1710:38:45shellcrontab[16486]:(root)LIST(root)Sep1710:40:01shellCROND[16790]:(root)CMD(/root/health.sh)验证结果使用智能体编写系统健康状态检查脚本大语言模型概述PowerPointDesign任务02(1)调查任务(2)调查目的调查任务和目的(1)任务背
(2)调查内容(3)分析影响(4)任务步骤(5)报告内容(6)报告格式具体任务要求(1)内容全面性(2)分析深度(3)结构与表达(4)创新性评价标准调查人工智能在生活中的应用(1)了解Shell循环结构脚本的功能。(2)掌握for循环和while循环的应用场景。【知识目标】(1)能够编写for循环结构脚本。(2)能够编写while循环结构脚本。【技能目标】(1)通过编写for循环结构脚本,培养学生逻辑思维和问题解决能力。(2)通过编写while循环结构脚本,培养学生通过优化代码提升程序性能的能力。【素养目标】学习目标Shell循环流程控制语句通过条件判断进行自动化重复操作。当指定条件成立时,系统会持续执行特定操作,直到条件不再满足时才终止循环,这种机制将人工从繁琐的重复劳动中彻底解放出来,大幅提升工作效率和准确性。在实际应用中,循环语句极大地简化了批量操作任务,例如批量创建、修改、删除用户账户,周期性检测主机连通性和服务状态,遍历目录进行压缩解压、格式转换、权限修改,定期清理日志、备份数据、检查资源使用率。通过运用for、while等循环结构,不仅能够确保任务执行的完整性和一致性,还能有效避免人工操作可能带来的疏漏和错误,真正实现了"编写一次,重复运行"的自动化运维目标,成为系统管理中不可或缺的核心技术手段。Shell循环结构脚本的功能(1)for循环for循环擅长"有多少做多少"的确定性任务,能够精确控制循环范围,特别适合处理有明确边界的数据集合,其典型应用包括以下方面。批量文件处理(如遍历目录下的所有文件进行重命名、格式转换或权限修改)数字序列处理(如执行固定次数的操作或测试)数组元素遍历需要对明确列表进行迭代的任何任务。(2)while循环while循环适合"做到条件满足为止"的动态场景,更适合基于条件动态执行的场景,特别是循环次数不确定的情况。其主要应用包括以下方面。系统监控实时数据处理(如读取不断更新的日志文件)用户交互处理(等待特定输入或确认)需要满足特定条件才终止的长期运行任务for循环和while循环的应用场景必备知识使用Xshell工具登录shell服务器,在/root目录下创建脚本文件for1.sh,输入如下内容。#/bin/bashforiin1234;doecho$idone以上脚本中,自定义了一个整数序列1234,变量i依次取得每个值后,输出变量i的值,保存后运行for1.sh,结果如下所示。[root@shell~]#bashfor1.sh1234自定义列表C语言风格的for循环是一种强大的循环结构,它模仿了C、Java等编程语言中的for循环,语法如下所示。for((初始化;条件判断;步进表达式));do#循环体done(1)求1到100的和(2)计算100到999之间的水仙花数将命令结果作为列表编写遍历型for循环脚本使用Xshell工具登录shell服务器,在/root目录下创建脚本文件for1.sh,输入如下内容。#/bin/bashforiin1234;doecho$idone以上脚本中,自定义了一个整数序列1234,变量i依次取得每个值后,输出变量i的值,保存后运行for1.sh,结果如下所示。[root@shell~]#bashfor1.sh1234自定义列表在/root目录下创建脚本文件for2.sh,输入以下内容。[root@shell~]#catfor2.sh#!/bin/bashname=$(ls/boot)foriin$name;doecho$idone以上脚本中,使用name变量获取了/boot目录下的内容,然后通过变量i依次取得/root目录下的值,将其输出,保存后运行for2.sh,结果如下所示。[root@shell~]#bashfor2.shconfig-6.6.0-98.0.0.103.oe2403sp2.x86_64dracutefigrub2initramfs-0-rescue-150e54e1dce34ac1a3df0f88467a79d8.imginitramfs-6.6.0-98.0.0.103.oe2403sp2.x86_64.imginitramfs-6.6.0-98.0.0.103.oe2403sp2.x86_64kdump.imgloaderlost+foundsymvers-6.6.0-98.0.0.103.oe2403sp2.x86_64.gzSystem.map-6.6.0-98.0.0.103.oe2403sp2.x86_64vmlinuz-0-rescue-150e54e1dce34ac1a3df0f88467a79d8vmlinuz-6.6.0-98.0.0.103.oe2403sp2.x86_64将命令结果作为列表编写遍历型for循环脚本通过seq命令可以生成一个指定范围的数值序列,seq命令语法为:seq初始值步长终止值,其中初始值表示序列的起始值,步长定义了每个数值之间的增量,而终止值则是序列的结束值。在/root目录下,创建脚本文件for3.sh,输入如下内容。#!/bin/bashforiin$(seq115);douseradduser$iecho"user$i"|passwd--stdinuser$idone以上脚本通过初始值为1,终止值为5,步长为1的seq命令,生成了一个1,2,3,4,5的序列,然后通过变量i遍历每个序列中的值,创建了user1到user5的用户,配置了密码和用户名相同,实现批量创建用户。保存后运行for3.sh,结果如下所示。[root@shell~]#bashfor3.sh更改用户user1的密码。passwd:所有的身份验证令牌已经成功更新。更改用户user2的密码。passwd:所有的身份验证令牌已经成功更新。更改用户user3的密码。passwd:所有的身份验证令牌已经成功更新。更改用户user4的密码。passwd:所有的身份验证令牌已经成功更新。更改用户user5的密码。passwd:所有的身份验证令牌已经成功更新。使用seq命令生成列表在/root目录下,创建for4.sh,输入以下内容。#!/bin/bashforiin{1..5};doecho"Number:$i"done以上脚本中,使用{1..5}扩展生成12345序列,保存后运行for4.sh,结果如下所示。[root@shell~]#bashfor4.shNumber:1Number:2Number:3Number:4Number:5大括号扩展编写遍历型for循环脚本在/root目录下创建for5.sh,输入以下内容。#!/bin/bashsum=0for((i=1;i<=100;i++));do((sum=sum+i))doneecho"1到100的和为:$sum"以上脚本中使用for循环初始化了变量i为1,判断i的值小于等于100的时候,运行循环体sum=sum+i,然后执行i++,等同于i=i+1,直到i的值等于101的时候,判断条件i<=100为假,退出循环,打印出sum变量的值,即1到100的和。求1到100的和水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身,在/root目录下创建脚本文件for6.sh,输入以下内容。#!/bin/bash#计算三位水仙花数for((num=100;num<=999;num++));do#分解各位数字i=$((num/100))#百位j=$((num%100/10))#十位k=$((num%10))#个位#计算各位数字的立方和sum=$((i*i*i+j*j*j+k*k*k))#判断是否为水仙花数if((num==sum));thenecho$numfidone以上脚本循环num变量,从100到999,判断每个数值是否为各位数字的立方和,成立则输出这个数,保存后,运行for6.sh,结果如下所示。[root@shell~]#bashfor6.sh153370371407计算100到999之间的水仙花数编写C语言风格的for循环脚本基于条件的while循环在指定条件为真时不断执行循环体,直到条件变为假时退出循环,通常用于重复执行某个任务,直到满足退出条件。在/root目录下创建脚本while1.sh,输入以下内容。#!/bin/bashinput=""while[[!$input=~^[0-9]+$]];doread-p"请输入一个正整数"inputdoneecho"您输入的正整数是$input"以上脚本中首先定义了input为空,然后判断input是否为一个正整数,其中=~是正则匹配符,^[0-9]+$是判断正整数的正则表达式,在判断语句前加入!,表示用户输入非正整数时,不断提示用户输入一个正整数,直到用户输入正整数后,才退出while循环,输出input的值,保存后运行while1.sh,如下所示。[root@shell~]#bashwhile1.sh请输入一个正整数a请输入一个正整数b请输入一个正整数10您输入的正整数是10从结果看出,当输入非正整数时,提示用户继续输入,直到输入10后,退出while循环,打印出input变量的值。编写基于条件的while循环脚本基于文件输入的while循环脚本用于逐行读取文件内容,常用于处理文本文件的每一行数据,在/root目录下创建脚本文件while2.sh,输入以下内容。#!/bin/bashfilename="log.txt"whilereadline;doif[["$line"==*"error"*]];thenecho"发现错误日志:$line"breakfidone<"$filename"以上脚本中,使用while循环读取log.txt日志文件的每一行,当某一行中匹配了error内容时,输出错误行内容,并使用break退出循环,创建log.txt文件,输入以下内容。Thisisatestline.Everythingisfine.Therewasanerrorinthesystem.Thisisanotherline.运行while2.sh脚本,结果如下所示。[root@shell~]#bashwhile2.sh发现错误日志:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 台州市专职消防员招聘考试题库及答案
- 石嘴山市教师招聘考试题及答案
- 公安基础知识试卷及分析
- 踝关节囊肿护理查房
- 医学26年:人工智能超声诊断进展 心内科查房
- 积极心理赋能成长
- 关节肿胀护理查房
- 强势起诉协议书
- 商品赔偿协议书范本
- 托儿所就餐协议书
- 2024年江苏省常州市中考化学真题(含答案)
- 地理俄罗斯课件 -2025-2026学年人教版地理七年级下册
- 蛋鸡养殖卫生免疫制度
- 节水灌溉工程技术标准
- 无人机飞行安全操作标准手册
- 钢筋混凝土雨水管道施工方案
- 2025广东佛山市南海区大沥镇镇属公有企业管理人员招聘3人笔试历年参考题库附带答案详解
- 2026年高考数学二轮复习检测卷(全国一卷01)(全解全析)
- 多源协同驱动主动配电网优化调度:策略、模型与实践
- T-CEPPEA 5027-2023直流配电网规划设计技术规范
- 《黑木相思抚育技术规程》(征求意见稿)
评论
0/150
提交评论