![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Shell基础
文章平均质量分 82
做咩啊~
~
展开
-
14.shell awk数组
这里的sort 命令用于排序,-n:按照数值大小进行排序,-r以相反的顺序来排序。2.要统计某个字段的值,就将该字段作为数组的索引,然后对索引进行遍历。在之前的基础上加一个判断,判断IP的访问量是否大于100,大于就打印。数组其实也算是变量,传统的变量只能存储一个值,但数组可以存储多个值。3.统计访问最多的10个页面($request top 10)5.统计访问状态码为404及出现的次数($status)在之前的基础上,对状态码进行判断,等于404就打印。1.统计访问最多的10个IP。原创 2024-06-12 19:09:40 · 405 阅读 · 0 评论 -
13.shell awk基础
3、以:为分隔符,匹配/etc/passwd文件中第7个字段不为/bin/bash的所有行信息。2、以:为分隔符,匹配/etc/passwd文件中第7个字段为/bin/bash的所有行信息。2、以:为分隔符,匹配passwd文件中第3个字段小于50并且第4个字段大于50的所有行信息。4、以:为分隔符,匹配/etc/passwd文件中第3个字段包含3个数字以上的所有行信息。{action}:是在匹配到模式的行上执行的动作。1、以:为分隔符,匹配/etc/passwd文件中第3个字段小于50的所有行信息。原创 2024-06-12 15:44:33 · 694 阅读 · 0 评论 -
12.shell sed文本处理工具
打印/etc/passwd中第8行开始,到含有/sbin/nologin的内容的行结束内容,这里/需要转义一下。修改passwd文件中匹配到/sbin/nologin的行,将匹配到行中的login为该大写的LOGIN。打印/etc/passwd中开头为root的行开始,到开头为ftp的行结束的内容。打印/etc/passwd中第10行开始,到含有ftp的内容的行结束的内容。删除/etc/passwd中以bin开头的行,到以ntp开头的行的所有内容。删除/etc/passwd中的第8行到第14行的所有内容。原创 2024-05-30 14:35:07 · 712 阅读 · 0 评论 -
11.shell grep+正则表达式过滤数据
使用grep正则表达式方式,匹配 qq、163、sina的 email地址。使用grep正则表达式方式,排除nginx日志文件的空行和#号开头的行。使用grep正则表达式方式,排除nginx日志文件的空行和#号开头的行。使用grep正则表达式方式,匹配133、135开头的手机号码。在面对大量的日志,程序,以及命令的输出,过滤我们需要的内容。9.匹配有数字的行,开头结尾必须是数字,数字最多必须是9位。使用grep正则方式方式,提取eth0的IP地址。匹配空行、#开头的行、空格#开头的行。原创 2024-05-16 18:22:18 · 370 阅读 · 0 评论 -
10.shell数组
数组其实也算是变量,传统的变量只能存一个值,但是数组可以存多个值。实际使用中主要通过for循环遍历数组中的数据在awk、zabbix低级自动发现会使用到。原创 2024-04-28 18:05:52 · 943 阅读 · 1 评论 -
9.shell 函数
在Shell中,函数是一段可重复使用的代码块,用于封装重复使用的代码,以提高代码的简洁性和可读性。屏蔽忽视HUP、INT、TSTP信号,挂起、中断、停止进程的运行等操作,程序是不会退出的。按下4会清空屏幕,展示一级页面,这里为了展示,又将终端历史输出调了出来。即local定义的变量值只能在函数体内部使用,出了函数体将无法使用;输入其他任何,就会结束本次循环,继续下一次的循环,重新提示用户输入。在Shell脚本中,可以通过在函数定义时指定参数来传递参数,函数的退出状态码通常用于脚本中判断函数的执行结果。原创 2024-04-11 18:12:54 · 638 阅读 · 0 评论 -
8.shell while循环
表示要退出循环,当碰到break,break后的代码都不会被执行,无论还剩下多次循环,都会退出这个循环。表示要结束本次循环,continue下面的代码都不会被执行,但会继续下一次的循环。等循环结束后,继续执行循环之后的代码。其中,read line命令用于读取文件中的每一行,并将其存储在line变量中。循环嵌套continue,打印1-9当数值为5则跳过本次循环,继续下一次循环。循环嵌套break,打印1-9当数值为5则停止。5)最后统计猜了多少次(猜对了多少次,失败多少次)原创 2024-04-03 11:47:04 · 943 阅读 · 0 评论 -
7.shell for循环
批量创建用户脚本,需要用户输入创建的用户数量(必须是整数),同时还需要用户输入前缀(前缀不能为空)。例如:前缀qq,个数6,代表创建qq1~qq6,总共6个用户。现在希望对ip.txt的每个IP地址进行端口的探测,探测的端口号来源于port.txt文件中,最后将开放的端口和IP保存到一个ipportok.txt文件。循环批量创建用户,需要填入用户的数量、用户的前缀、用户的统一密码(使用read、case、for语句)批量创建用户脚本,需要用户输入创建的用户数量,以及需要用户输入创建的前缀。原创 2024-03-27 17:46:23 · 798 阅读 · 0 评论 -
6.shell case控制语句
case语句中,会将case获取的变量值与表达式部分的值1、值2、值3等逐个进行比较,如果变量值和某个表达式的值(例如值1)相匹配,就会执行值(例如值1)后面对应的指令(例如指令1,其可能是一组指令),直到执行到双分号(;以nginx为例,升级一下nginx的错误定向,当服务启动失败时候,可以选择修复,选择修复,就直接定位到报错的文件的具体行进行修复。获取nginx的状态 7种状态,将每种提取出来,然后执行脚本,根据用户输入的状态名称,输出状态值即可。根据输入的编号,输出对应的字符串。原创 2024-03-21 17:38:48 · 891 阅读 · 0 评论 -
5.shell if判断语句
if其实就是模仿人类的判断来进行的,要么真、要么假、就这两种结果。原创 2024-03-13 00:03:17 · 1110 阅读 · 0 评论 -
4.shell变量运算
再通过awk获取到想要输出的信息 (包含up的行,第6列,就是我们想要的信息) 3.通过 ( 365 - 已过的天数)/ 7 还有多少周到下一个新年。 2.通过已获取的天数 /7 是不是就能知道已经过了多少周。 1.可以选择直接传递参数的方式。要能控制能传入的个数。2.系统的环境变量,可直接使用,任何用户都行。3.预定义变量,Shell内置的方法。 2.拿到传入的值之后,进行加减乘除。是一个已经完成执行但仍在进程表中的进程。 1.今天是今年的第多少天。可以获得今天的是今年的第几天。原创 2024-03-07 13:49:57 · 843 阅读 · 0 评论 -
3.Shell变量替换
变量string=“Bigdata process is Hadoop, Hadoop is open source project”,4)、替换全部Hadoop为Linux 用户输入数字1|2|3|4,可以执行对应项的功能,untli循环常用于当判断条件不成立时才进行循环,一旦条件成立就终止循环。查看内存当前使用状态,如果使用率超过80%,就告警。3)、替换第一个Hadoop为Linux。2.如何根据提取出的内存指标,3.将数据使用变量替换处理后再进行比对。2)、删除字符串中所有的Hadoop。原创 2024-03-01 19:07:16 · 250 阅读 · 0 评论 -
2.shell变量
变量是shell中传递数据的一种方法就是用一个固定的字符串去表示不固定的值,便于后续引用用户自定义变量,在当前shell有效定义变量,变量名=变量值,不能出现(横杠)命名定义变量有空格时,必须使用双引号cat var.sh/bin/bashecho "#当前shell脚本的文件名: $0"echo "#第1个shell脚本位置参数:$1"echo "#第2个shell脚本位置参数:$2"echo "#第3个shell脚本位置参数:$3"echo "#所有传递的位置参数是: $*"原创 2024-02-28 18:59:08 · 932 阅读 · 0 评论 -
1.Shell基本概述
shell是一个命令解释器,在操作系统的最外层,负责直接与用户进行对话,将用户输入的命令翻译给操作系统,并将处理的结果输出至屏幕。1.可以理解为,将系统命令堆积在一起,然后按照顺序执行(系统命令堆积)2.相对高级一点的,就需将特定的语法+特定的格式+系统命令 组织起来成为一个.sh结尾的脚本文件例如cat 1.sh/usr/bin/bash (#特定格式 )#特定语法 # if case while d等等 结合所谓的流程控制语句,来确保我们的Shell能正常的执行成功。原创 2024-02-27 15:38:04 · 237 阅读 · 0 评论