shell编程
把困难变优化,这是唯一的事情
FikL-09-19
人的旅途就是这样 有大把时间是迷茫在这瞬间。
展开
-
shell基础 -02
元字符一、 特殊元字符元字符指的是能够被shell解释的特殊字符,每个特殊字符都有其特殊含义!1.``与$():取命令的结果2、~ 家目录3、. 与 ..4、! 调用历史命令、取反5、@ 无特殊意义6、#注释7、$取变量值8、%、-、+运算符9、^ 同 ! 一样10、& 后台运行11、* 任意多个字符12、() 在子 shell 中执行13、_下划线14、= 赋值,== 判断相等性15、| 管道16、\ 转义特殊字符17、[] 条件测试18、单双引号19、;原创 2021-04-12 14:31:29 · 88 阅读 · 0 评论 -
shell基础 -01
shell基础一 、编程与编程语言Shell是一门编程语言,也是一个解释器二 运行shell程序的两种方式1、交互式环境每敲一条命令立即执行一条命令不能永久保存代码2、把shell命令写入文件中,该文件称之为脚本文件 bash 脚本文件的路径 运行shell脚本经历的三个阶段(1)先启动bash解释器(2)bash解释器会将脚本a.sh文件的内容从硬盘读入内存(3)bash解释器会a.sh自动识别刚刚读入内存内容,解释执行shell代码# 注释: 运行脚本的方原创 2021-04-09 14:59:40 · 126 阅读 · 0 评论 -
shell 脚本复习 -- 04
shell 脚本1.把文件中txt结尾的文件改成log结尾的# 1.查看a目录下的文件[root@pingmm ~]# cd a/[root@pingmm a]# ls1.txt 2.txt 3.txt 4.txt 5.txt a.mp4 b.mp4 c.mp4 mm# 2.脚本执行的test.sh[root@pingmm ~]# cat test.sh #! /bin/bashcd /root/afor i in `ls *.txt`do name=`ech原创 2021-04-14 22:23:33 · 197 阅读 · 0 评论 -
shell基础 - 03
一 流程控制之if判断1、什么是if判断依据条件的真假来决定是否做事2、为何要有if判断为了让计算机能够像人一样去做判断3、如何用if 条件1;then 代码1elif 条件2;then 代码1…else 代码1 代码2 代码3fi案例1[root@mm count]# cat 1.sh #!/bin/bashwhile true;doread -p "请输入当前登录的用户名" usernameread -p "请输入当前登录的密码"原创 2021-04-12 14:45:10 · 68 阅读 · 0 评论 -
shell试题总结 06
考试题1、找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写egrep -i '^s' /proc/meminfo awk '/^[sS]/' /proc/meminfo sed -nr '/^[sS]/p' /proc/meminfo2、显示当前系统上的root,centos或者user的信息egrep '^(root|user|centos)' /etc/passwd3、找出/etc/init.d/function文件下包含小括号的行grep -E '(\(.原创 2021-07-11 20:07:26 · 238 阅读 · 0 评论 -
shell三剑客练习 05
grep# 1、^ 行首[root@mm ~]#grep '^root' /etc/passwdawk -F: '/^root/' passwd.txt # 2、$ 行尾[root@openvpn grep]# grep 'bash$' /etc/passwdroot:x:0:0:root:/root:/bin/bashwww:x:666:666::/home/www:/bin/bash # 3、. 除了换行符以外的任意单个字符[root@openvpn grep]#grep 'r.原创 2021-06-27 14:04:42 · 381 阅读 · 0 评论 -
linux12shell编程 --> 现线程并发控制
文章目录线程并发控制shell解释器交互式环境一、 交互式环境介绍1、何为交互式环境?2、何为交互式环境???二 、命令优先级从高到低三 、bash的特性1、交互式环境下:命令和文件路径自动补全(使用tab键)2、交互式环境下:命令历史记录3、别名功能4、前后台运行5、输入输出重定向6、支持管道:|7、一行连接多条命令8、双管道左边的命令执行失败才会执行右边9、支持通配符操作,例如*、?、[]、\等,后续我们将会详细介绍线程并发控制<https://blog.51cto.com/egon09/17原创 2021-06-17 21:08:26 · 70 阅读 · 0 评论 -
linux12shell编程 --> 进程锁
进程锁防止进程被重复运行[root@aliyun ~]# cat lock.sh #!/bin/bashlock_file=/tmp/echo1.lock#判断进程是否正在运行if [ -f $lock_file ];then pid=`cat $lock_file` ps $pid &>/dev/null [ $? -eq 0 ] && echo "Script1 is running..." && exit 1 #if [ $? -eq原创 2021-06-17 21:06:28 · 127 阅读 · 0 评论 -
linux12shell编程 --> systemctl管理脚本
systemctl管理脚本一 、介绍1、systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分/usr/lib/systemd/system #系统服务,开机不需要登陆就能运行的程序(相当于开启自启)/usr/lib/systemd/user #用户服务,需要登录后才能运行的程序2、/usr/lib/systemd/目录下又存在两种类型的文件- 1、*.service # 服务unit文件- 2、*.target # 开机级别uni原创 2021-06-17 21:05:40 · 975 阅读 · 0 评论 -
linux12shell编程 --> 三剑客之awk命令
文章目录三剑客之sed命令1.awk来源2、awk的两种语法格式3、awk选项options4、awk的命令commands总共由三部分组成5、格式省略项二 、awk工作原理三、 记录与字段相关内部变量四 、格式化输出五、 模式pattern与动作actionpattern可以是如下6个模式:1、正则表达式2、比较表达式3、条件表达式4、算数运算5、逻辑运算和复合模式6、范围模式六 、awk示例七 、awk流程控制作业八 、练习题三剑客之sed命令一 、awk简介1.awk来源 awk命名源自于它的原创 2021-06-17 21:04:30 · 247 阅读 · 0 评论 -
linux12shell编程 --> 三剑客之sed命令
文章目录三剑客之sed命令一 、sed介绍二 、sed选项与基本用法示例1、 sed选项2、 sed命令组成1、数字2、正则表达式3、数字+正则表达式4、 \cregexpc1、如果c是左斜杠,不需要转义也可以2、如果匹配的正则里有左斜杠,要么将正则转义,要么将c转义三、 sed常用命令1、命令与功能2、sed命令示例四 、模式空间与保持空间1、sed 有两个内置的存储空间:2、模式空间与保持空间的操作命令3、示例:交换文件的行五、 sed脚本六 、练习三剑客之sed命令一 、sed介绍 se原创 2021-06-17 21:03:11 · 385 阅读 · 0 评论 -
linux12shell编程 --> 三剑客之grep命令
文章目录三剑客之grep命令一 、grep介绍1、grep命令主要用于过滤文本,grep家族如下2、grep命令格式如下3、传递方式二、选项与示例1、选项2、示例三、 正则表达式1、 正则表达式介绍2、 正则表达式元字符2.1、基本正则元字符集2.2 、扩展正则元字符集2.3 posix定义的字符分类四 、练习正则表达式及字符处理三剑客之grep命令一 、grep介绍1、grep命令主要用于过滤文本,grep家族如下grep: 在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep原创 2021-06-16 23:54:46 · 240 阅读 · 0 评论 -
linux12shell编程 --> expect
文章目录expect一、 expect介绍**1、expect基础****2、总结expect自动应答的基本步骤**二 、expect实例1、编写自动应答脚本2、为脚本设置超时时间3、规整脚本格式4、练习5、interact交互三、 为expect脚本传参方式一:自己定义方法二:可以通过下述方式引入shell变量,注意此时解释器换成#!/bin/bash2、此外,expect脚本还可以从命令行获取参数expect一、 expect介绍 expect是一个免费的编程工具,用来实现自动的交互式任务原创 2021-06-16 21:11:09 · 202 阅读 · 0 评论 -
linux12shell编程 -->信号控制
文章目录信号控制一 、信号说明二 、捕捉信号例1:例2:三、 关于HUP信号1、nohup命令2、 setsid命令3、 在子shell中提交任务4、 screen命令四 、僵尸进程与孤儿进程1、僵尸进程2、孤儿进程信号控制一 、信号说明在脚本执行过程中, 可能会被一些键盘操作快捷方式所打断, 影响脚本运行# HUP(1): 1、挂起信号 2、往往可以让进程重新加载配置本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们原创 2021-06-16 21:09:09 · 148 阅读 · 0 评论 -
linux12shell编程 --> 数组
文章目录数组一 、数组介绍1、什么是数组?2、为何要用数组?二 、数组的使用1、 数组的定义2、 访问数组内元素3 、修改/添加数组元素4、 删除数组元素5、 数组内元素的截取6、 数组内容的替换三、 关联数组1、数组分为两种2、声明关联数组四 、遍历数组方法一:方法二:方法三:五 、练习练习1:练习2:练习3:练习4数组一 、数组介绍1、什么是数组?数组就是一系列元素的集合,一个数组内可以存放多个元素2、为何要用数组?我们可以用数组将多个元素汇总到一起,避免单独定义的麻烦二 、数组的使用原创 2021-06-16 21:07:27 · 213 阅读 · 0 评论 -
linux12shell编程 -->函数
文章目录函数一、 函数介绍1、什么是函数???2、为何要用函数二、 函数的基本使用1、定义函数2、调用函数三、 函数参数1、调用函数时可以向其传递参数2、在函数体内部调用函数3、脚本内获取命令行定义函数4、参数处理说明示例5、@ 与 @与@与*区别示例四 、函数的返回值1、如果函数内没有return,那么将以最后一条命令运行结果(命令运行成功结果为0,否则为非0)作为返回值2、如果函数内有return,那么return后跟的只能是整型值并且范围为0-255,用于标识函数的运行结果是否正确, 与C 语言不同,原创 2021-06-16 21:04:41 · 141 阅读 · 0 评论 -
linux12shell编程 --> 流程控制之select语句
文章目录流程控制之select语句一 、语法二 、案例案例1:案例2:若省略 in list 则select会把 $@ 当做列表项案例三、 select案例编写案例四 、补充流程控制之select语句一 、语法select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择select var in ...do ... breakdone二 、案例案例1:[root@egon /]# cat select.sh #!/bin/bashPS3='ch原创 2021-06-15 23:58:51 · 175 阅读 · 0 评论 -
linux12shell编程 -->流程控制之for循环
@[toc]### 流程控制之for循环### 一 、语法```python#======~~__~~=====》Shell风格语法for 变量名 [ in 取值列表 ]do 循环体done#===========》C语言风格语法for ((初值;条件;步长))do 循环体done1、shell风格的for,常用in列表方式for i in 1 2 3for i in {1,2,3}for i in {1..9}for i in {9..1}for i in原创 2021-06-15 23:56:45 · 264 阅读 · 0 评论 -
linux12shell编程 -->流程控制之while循环
文章目录流程控制之while循环1 、语法2、简单示例二 、continue与break1、区别2、示例三 、案例案例1:监控web页面状态信息, 失败3次, 表示网站出现问题需要进行报警案例2:猜数字案例3:while循环案例4:until案例5:while循环案例6:while循环案例7:while和read实现逐行处理案例8:用while循环+case来制作一个简单的菜单功能流程控制之while循环1 、语法# 一、while语句结构:条件为真时,执行循环体代码while 条件do 循环体原创 2021-06-15 22:22:34 · 236 阅读 · 0 评论 -
linux12shell编程 -->流程控制之case
文章目录流程控制之case语句一 、语法二、 案例案例1案例2:编写nginx启动脚本案例3:编写nginx启动脚本案例4:编写一个简易跳板机脚本流程控制之case语句一 、语法case 变量 in模式1) 命令序列1 ;;模式2) 命令序列2 ;;模式3) 命令序列3 ;;*) 无匹配后命令序列esac二、 案例案例1[root@openvpn day3]# cat check_role.sh #! /bin/read -p "please input you原创 2021-06-15 22:21:09 · 86 阅读 · 0 评论 -
linux12shell编程 -->流程if判断
文章目录流程控制之if判断一、单分支if1、语法2、示例二:双分支if1、语法2、示例三:多分支if1、语法:示例1:猜年龄示例2:查询成绩示例3:判断是否是数字四 、练习1、编写脚本,命令行传入一个文件路径,判断文件的类型2、检测指定的主机是否可以ping通,必须使用$1变量3、判断一个用户是否存在4、检测httpd软件是否安装,没有的话则安装5、判断80端口的状态,未开启则重启6、编写监控脚本、配置邮箱1)编写监控脚本2)测试:3)mailx配置解释测试5)上述报错的解决方式为,依次执行下述命令6)根据原创 2021-06-09 21:58:33 · 156 阅读 · 0 评论 -
linux12shell编程 -- >元字符
文章目录元字符一、算数运算符1、运算符2、算数运算符需要配合下述操作使用一 算数运算符3、举例1、bc计算器2、expr不支持浮点数计算。而且要注意数字与运算符中的空格3、$(()) 同expr,不支持浮点数运算4、$[]同expr以及\$(()),不支持浮点运算5、let 不支持浮点数运算,而且不支持直接输出,只能赋值6、强调:整数与非整数之间运算会报错7、练习题二、 测试运算符1、 测试文件状态-d 目录-s 文件长度 > 0、非空-f 标准文件-w 可写-r 可读-x 可执行-L 符号连接-u原创 2021-06-09 21:56:35 · 208 阅读 · 0 评论 -
linux12shell编程 -->变量值操作
文章目录基本数据类型与值操作三、变量值操作1、获取变量值的长度2、切片3、截断4、内容的替换5 、变量的替代6、let7、 取命令的结果赋值给变量:基本数据类型与值操作三、变量值操作1、获取变量值的长度[root@web ~]# echo ${#url}15# 企业面试题:已知变量name="mm2021",请统计出变量中包含的字符数量# 方法一:[root@web ~]# echo ${#name}6# 方法二:[root@mm /]# echo $name | wc -L11原创 2021-05-31 21:54:42 · 298 阅读 · 0 评论 -
linux12shell编程 -- >基本数据类型
文章目录基本数据类型与值操作一、 数据类型介绍1、什么是数据?为何要有多种类型的数据?2、shell是一门解释型、弱类型、动态语言二、基本数据类型1、数字类型2、字符串3、shell是弱类型语言弱类型语言4、数组介绍5、数组分为两种1、普通数组2、关联数组ps: shell只支持一维数组,但数组元素个数没有限制。三、变量值操作1、获取变量值的长度2、切片3、截断4、内容的替换5 、变量的替代6、let7、 取命令的结果赋值给变量:基本数据类型与值操作一、 数据类型介绍1、什么是数据?为何要有多种类型的原创 2021-05-31 21:47:04 · 508 阅读 · 0 评论 -
linux12shell编程 -->shell变量
文章目录变量一 、变量介绍1、什么是变量?2、为何要有变量?二、变量的使用1、先定义、后引用先定义后引用2、 删除变量三、变量的三大组成部分1、定义一个变量由三大部分组成2、变量名的命名规范3.变量值的三种来源三、 预定变量1、$与组合符介绍2、举例介绍@ 与 @与@与*的区别例1:for循环下默认按空格分隔例2:被空格分隔为两部分例3:加引号以后总结四 、常量变量一 、变量介绍1、什么是变量? 变:指的是事物的状态是可以发生变化的 量:指的是记录事物的状态 变量:本质就是一种数据存取的机制原创 2021-05-31 19:47:43 · 170 阅读 · 0 评论 -
linux12shell编程 --> shell基础02
文章目录shell基础四、shell介绍2、linux系统上自带多种shell解释器,无需安装3、为何要用shell?4、Shell VS python1、shell语言2、python语言五 、第一个shell程序1、编写shell程序的两种环境2、 编写shell脚本程序3、shell解释器解释4、精通各种语言的hello world!看一看还是高级语言的简洁5、运行shell脚本程序1、方式一:绝对路径方式二:相对路径3、方式三:解释器+文件路径4、方式四:当前shell进程中执行5、当前shell与原创 2021-05-31 14:45:02 · 132 阅读 · 1 评论 -
linux12shell编程 --> shell基础01
文章目录shell基础一 、编程与编程语言1、编程的目的是什么?2、什么是编程语言?3、什么是编程?4、 什么是程序5、什么是进程6、 编程的步骤?7、简单举例 --> shell 编程二 、编程语言分类1、编程的语言的发展经历2、高级语言三 、计算机完整体系结构图四 、shell介绍2、linux系统上自带多种shell解释器,无需安装3、为何要用shell?4、Shell VS python1、shell语言2、python语言五 、第一个shell程序1、编写shell程序的两种环境2、 编写s原创 2021-05-31 10:50:05 · 79 阅读 · 0 评论