版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux管理-脚本编辑 linux管理-脚本编辑2 技能展示 理解Shell的作用及分类 掌握Bash的常用功能 会设置和使用Shell变量 会编写简单的Shell脚本 熟悉条件测试的应用 会使用if条件语句 会使用for、while循环语句 linux管理-脚本编辑3 本章结构 Shell环境概述环境概述 Shell的作用及常见种类的作用及常见种类 Shell脚本的概念脚本的概念 Shell环境的切换环境的切换 编写编写Shell脚本脚本 Bash的常用功能的常用功能 编写编写Shell管理脚管理脚 本本 Shell变量应用变量应用 编写并执行编写并执行 Shell脚本脚本 用户自定义变量
2、用户自定义变量 环境变量环境变量 位置变量、预定义变量位置变量、预定义变量 Shell脚本应用实例脚本应用实例 执行执行Shell脚本脚本 linux管理-脚本编辑4 本章结构 编写编写Shell管理管理 脚本脚本 使用使用if条件语条件语 句句 条件测试操作条件测试操作 if语句的结构语句的结构 if语句应用示例语句应用示例 使用使用for循环循环 语句语句 for语句的结构语句的结构 for语句应用示例语句应用示例 while语句的结构语句的结构 while语句应用示例语句应用示例 使用使用while循循 环语句环语句 linux管理-脚本编辑5 Shell的作用及常见种类 Shell的作
3、用 命令解释器,“翻译官” 介于操作系统内核与用户之间,负责解释命令 行 Shell 计算机用户 应用程序 Linux内核 输入输入 控制控制 系统硬件 输出输出 linux管理-脚本编辑6 Shell的作用及常见种类 Ksh BshCsh Bash Zsh 兼具兼具Bsh的语法和的语法和 Csh的交互特性的交互特性 70年代中期诞生于贝年代中期诞生于贝 尔实验室,有较强的尔实验室,有较强的 脚本编程功能脚本编程功能 80年代早期诞生于加利福年代早期诞生于加利福 尼亚大学尼亚大学 ,使用,使用C语言风语言风 格,命令交互方便格,命令交互方便 Bsh的升级版,的升级版,Linux系系 统中的默认
4、统中的默认Shell 兼具各种兼具各种Shell程序优点,交程序优点,交 互式操作效率更高互式操作效率更高 linux管理-脚本编辑7 Shell环境的切换 登录Shell 指用户每次登录系统后自动加载的Shell程序, 大多数Linux系统采用 /bin/bash 作为默认登录 Shell /etc/shells 文件记录了系统支持的有效登录Shell rootlocalhost # cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh linux管理-脚本编辑8 如何切换如何切换Shell环境
5、环境 临时切换:直接执行其他临时切换:直接执行其他Shell程序,例如程序,例如ksh、zsh等等 更改用户登录更改用户登录Shell: p 需修改 /etc/passwd 文件中用户记录的最后一个字段 p 或执行:usermod -s Shell程序路径 用户名 linux管理-脚本编辑9 Bash的常用功能 Tab键自动补齐 命令编辑快捷键 命令历史 命令别名 标准输入输出 重定向操作 管道操作 linux管理-脚本编辑10 Bash的命令历史 命令历史 保存用户曾经执行过的命令操作 存放位置:/.bash_history 文件 查看历史命令 使用、按键逐条翻看,允许编辑并重复执行 执行:
6、history 清除历史命令 执行:history -c rootlocalhost root# history 556 useradd jerry 557 passwd jerry 558 crontab -e -u jerry 559 crontab -l -u jerry linux管理-脚本编辑11 Bash的命令历史 调用历史命令 !n:执行历史记录中的第n条命令 !str:执行历史记录中以“str”开头的命令 设置记录历史命令的条数 修改 HISTSIZE 参数(默认为1000条) rootlocalhost root# !562 crontab -l -u jerry no cr
7、ontab for jerry rootlocalhost # vi /etc/profile HISTSIZE=200 linux管理-脚本编辑12 Bash的命令别名 命令别名 为使用频率较高的复杂命令行设置简短的调用名称 存放位置:/.bashrc 查看命令别名 格式:alias 别名 设置命令别名 执行:alias 别名=实际执行的命令 取消已设置的命令别名 格式:unalias 别名 unalias -a linux管理-脚本编辑13 rootlocalhost # alias alias cp=cp -i alias l.=ls -d .* -color=tty alias ll=
8、ls -l -color=tty alias ls=ls -color=tty alias mv=mv -i alias rm=rm -i linux管理-脚本编辑14 Bash的标准输入输出 交互式硬件设备 标准输入:从该设备接收用户输入的数据 标准输出:通过该设备向用户输出数据 标准错误:通过该设备报告执行出错信息 类型类型设备文件设备文件文件描述编号文件描述编号默认设备默认设备 标准输入标准输入/dev/stdin0键盘键盘 标准输出标准输出/dev/stdout1显示器显示器 标准错误输出标准错误输出/dev/stderr2显示器显示器 linux管理-脚本编辑15 Bash的重定向操
9、作 改变标准输入、标准输出、标准错误的方 向 类型类型操作符操作符用途用途 重定向标准输入重定向标准输入 将命令的执行结果输出到指定的文件中,而将命令的执行结果输出到指定的文件中,而 不是直接显示在屏幕上不是直接显示在屏幕上 将命令执行的结果追加输出到指定文件将命令执行的结果追加输出到指定文件 重定向标准错误重定向标准错误 2 清空指定文件的内容,并将标准错误信息保清空指定文件的内容,并将标准错误信息保 存到该文件中存到该文件中 2将标准错误信息追加输出到指定的文件中将标准错误信息追加输出到指定的文件中 重定向标准输出和重定向标准输出和 标准错误标准错误 then 命令序列命令序列1 elif
10、 条件测试命令条件测试命令2 ; then 命令序列命令序列2 elif . else 命令序列命令序列n fi linux管理-脚本编辑49 for循环语句 根据变量的不同取值,重复执行一组命令 操作 for 变量名变量名 in 取值列表取值列表 do 命令序列命令序列 done for 收件人收件人 in 邮件地址列表邮件地址列表 do 发送邮件发送邮件 done for 变量变量=取值取值1 取值取值1 取值取值n done 结束循环结束循环 do 命令序列命令序列 取值取值n 已使用已使用 linux管理-脚本编辑50 for循环语句 应用示例1: 依次输出3条文字信息,包括一天中的
11、“Morning”、“Noon”、“Evening”字串 rootlocalhost # vi showday.sh #!/bin/bash for TM in Morning Noon Evening do echo The $TM of the day. done rootlocalhost # sh showday.sh The Morning of the day. The Noon of the day. The Evening of the day 验证脚本执行结果验证脚本执行结果 linux管理-脚本编辑51 for循环语句 应用示例2: 对于使用“/bin/bash”作为登录S
12、hell的系统用户, 检查他们在“/opt”目录中拥有的子目录或文件 数量,如果超过100个,则列出具体个数及对应 的用户帐号 获得使用获得使用bash作为登录作为登录 Shell的用户名列表的用户名列表 linux管理-脚本编辑52 #!/bin/bash DIR=/opt LMT=100 ValidUsers=grep /bin/bash /etc/passwd | cut -d : -f 1 for UserName in $ValidUsers do Num=find $DIR -user $UserName | wc -l if $Num -gt $LMT ; then echo $
13、UserName have $Num files. fi done linux管理-脚本编辑53 while循环语句 重复测试指定的条件,只要条件成立则反 复执行对应的命令操作 while 命令或表达式命令或表达式 do 命令列表命令列表 done while 可用内存可用内存 /dev/null i=expr $i + 1 done 执行执行 let i+ 也可以也可以 使变量使变量i的值递增的值递增1 linux管理-脚本编辑55 while循环语句 应用示例2: 批量删除上例中添加的20个系统用户帐号 #!/bin/bash i=1 while $i -le 20 do userdel
14、-r stu$i i=expr $i + 1 done linux管理-脚本编辑56 第二章 编写shell管理脚本 上机部分 linux管理-脚本编辑57 实验案例1:定制root用户的Shell环 境 需求描述 使root用户能通过“crond start”形式控制相应系统 服务的状态,而无需使用service命令或绝对路径 将root用户的命令历史记录限制为50条 添加一个命令别名lh,用于以长格式并使用K、M 等容量单位显示目录及文件列表信息 每次root用户登陆到时,自动报告当前登录的用户 数、打开的进程数、剩余可用内存、剩余交换空间 练习重定向、变量操作、脚本应用等相关知识 lin
15、ux管理-脚本编辑58 实验案例1:定制root用户的Shell环 境 实现思路 修改“/root/.bash_profile”文件 在环境变量PATH中添加“/etc/rc.d/init.d”目录的内 容 设置HISTSIZE变量的值为50 将PATH、HISTSIZE变量输出为全局变量。 编写登录欢迎脚本文件 welcome.root 使用who、ps、wc命令及管道操作统计登录用户数、 进程数 使用free、awk命令结合管道操作提取剩余可用内 存、剩余交换空间信息 linux管理-脚本编辑59 实验案例1:定制root用户的Shell环 境 实现思路 修改“/.bashrc”文件 设置
16、命令别名lh 添加执行wecome.root脚本文件的语句 验证实验结果 linux管理-脚本编辑60 实验案例2:编写脚本监测服务器状 态 需求描述 每隔15分钟记录一次服务器的基本运行状况,包括: CPU负载、内存和交换空间、磁盘空间信息 最近的用户登录情况 记录当时的时间信息(以YYYY-mm-dd HH:MM的格式输 出 所有信息追加到文件“/var/log/runrec/running.today”中 每天晚上23:55分时备份 running.today 文件: 进行压缩备份,保存到“/var/log/runrec”目录中 备份文件名参考:running.record-YYYYmm
17、dd.tar.bz2 备份完毕后删除当天的记录文件(running.today) linux管理-脚本编辑61 实验案例2:编写脚本监测服务器状 态 实现思路 编写运行状况监控脚本/opt/monitor.sh 通过uptime、free、df等命令获取系统状态信息 通过“last -n 20” 获取最近20条用户登录信息 设定计划任务,每隔15分钟执行一次monitor.sh脚 本,每天23:55分进行压缩备份 tar命令的“-remove-files”选项用于备份完后删除源文件 获取日期信息: date +%F %H:%M YYYY-mm-dd HH:MM date +%Y%m%d YYY
18、Ymmdd linux管理-脚本编辑62 实验案例3:使用Shell脚本管理系统 需求描述 编写脚本程序用于监测系统服务httpd的运行状态 当服务状态失常时在“/var/log/htmon.log”文件中记入日志 自动将状态失常的httpd服务重新启动 若重启httpd服务失败,则尝试重新启动服务器主机 周一至周五期间每隔15分钟执行一次监测任务 编写脚本程序用于批量添加用户 提供交互,能根据提示指定添加用户的数量(少于100)、用 户名前缀,并能设置帐号的失效时间、初始密码 用户名编号统一使用2位数,如使用“01”、“02”的形式 编写脚本批量删除用户 通过命令行参数指定要删除用户的名称前缀 删除以该前缀开头的所有用户,但要防止误删除root用户 linux管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物业使用权合同转让及物业管理责任追究办法协议3篇
- 2025年度草莓种植基地病虫害防治服务合同3篇
- 年度乙二醇二乙醚战略市场规划报告
- 年度高压水流清洗机产业分析报告
- 年度中高端衡器竞争策略分析报告
- 2024-2025学年高中历史第五单元近代中国的思想解放潮流第14课从“师夷长技”到维新变法课后作业含解析新人教版必修3
- 二零二五年快递公司快递配送员招聘合同参考范本3篇
- 2025年苗圃技术员工作合同规范文本
- 2025年热泵热水工程采购合同模板2篇
- 二零二五年度酒店客房租赁与客房设施维护合同12篇
- 《3-6岁儿童学习与发展指南》专题培训
- 河道旅游开发合同
- 导尿及留置导尿技术
- 情人合同范例
- 建筑公司劳务合作协议书范本
- 安徽省合肥市2023-2024学年高一上学期物理期末试卷(含答案)
- 《基于杜邦分析法的公司盈利能力研究的国内外文献综述》2700字
- 儒家思想讲解课程设计
- 2024年个人汽车抵押借款合同范本(四篇)
- 轨道交通设备更新项目可行性研究报告-超长期国债
- 2024-2030年中国一氧化二氮气体行业市场发展趋势与前景展望战略分析报告
评论
0/150
提交评论