Shell基础编程2

echo的扩展功能使字体带颜色\033[32m是修改颜色后面的\033[0m是把字体颜色修改回来
shell函数:将一些需要重复使用的操作,定义为公共的语句块,使脚本代码更简洁,增强易读性,提高shell脚本的执行效率
写一遍函数名就是调用一遍函数
或者使用function定义函数
函数传值
编写脚本让查看服务状态显示颜色
字符串的处理:不改变变量的值,变量需要重复赋值才会改变
1、字符串的截取:${变量名:起始位置:长度},起始位置默认从0开始,
$RANDOM随机变量
编写随机8位密码脚本
2、字符串的替换:${变量名/旧的/新的},只替换第一个字符,两个//替换所有要替换的字符
替换空为删除
3、字符串的删除(掐头去尾):变量
从左到右${变量名#要删除的内容},也可以使用通配符,两个##表示匹配较长的字符
从右到左${变量名%要删除的内容},两个%%表示匹配较长的字符
编辑修改文件后缀名脚本
先创建10个文件
编写脚本
4、变量的初始值检测及设置:${变量名:-初始值},若变量已经存在并且不为空则返回变量的值,若为空则返回设置的初始值
输入密码时可以设置默认密码
正则表达式:使用若干符号配合工具对字符串进行增删改查操作
先把/etc/passwd的前5行传输到一个文件中作为实验文件
^符号匹配以什么为开头的字符串
$匹配以什么为结尾的字符串。
^$表示空行,表示取反-v
[ ]表示集合,里面的所有字母都查找,不是单个字符串
[a-z]、[A-Z]、[0-9],匹配任意字母和数字
[^]对集合取反,显示字母和数字之外的符号
如果echo $?等于0表示输入的是非数字
‘ . ’匹配当个字符
‘ * ’匹配前一个字符的任意次数
‘ .* ’表示任意字符
\{n,m\}匹配前一个字符n到m次
\{n\}匹配前一个字符n次
\{n,\}匹配前一个字符n次及以上
\(\)组合为整体,把0:当为一个整体
扩展正则规则需要加上-E或者egrep命令
{n,m}匹配前一个字符n到m次
()组合为整体
+匹配一个或多个字符,相当于\{1,\}或者{1,}
?最多匹配一次,相当于\{0,1\}
| 表示或者,匹配多个字符串
\b 单词边界,在旁边不允许出现数字字母下划线(或使用   \<xxx>\)
\w匹配数字字母下划线
\s匹配空格和tab键
\d匹配数字(和[0-9]等效)
匹配IP地址0-255拆分成三个部分(250-255、200-249、0-199)
:(25[0-5]\.|2[0-4][0-9]\.|1?[0-9]?[0-9]\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])
\d替换[0-9]:(25[0-5]\.|2[0-4]\d\.|1?\d?\d\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)
sed流式编辑器:可以对文档非交互式增删改查,逐行处理
1.前置指令 | sed 选项 条件 指令
2.sed 选项 条件 指令  被处理文档
选项:-n:屏蔽默认,-r:支持扩展正则,-i:修改源文件
条件:行号 , /字符串/
指令:p:输出,d:删除,s:替换
使用-n屏蔽默认输出
查看具体行的字符串
查看连续行
查看不连续多行
查看字符串的行
!取反
$表示最后一行,‘=’表示输出行号
例如以bin开头的是第几行
d删除
删除所有空行
s替换 符号 / / /(可替换# # #)
编写实验数据
没有说行号把每个行的第一个匹配的替换
匹配第二个数据
匹配第三列第三个数据
使用字符串匹配行然后再替换要替换是字符串
g表示全换
将/bin/bash替换/sbin/sh
或者修改s后面的三个字符
加-i修改源文件
编写脚本:下载配置http服务默认82端口
执行该脚本
此时修改成功
编写脚本:查找所有使用bash的账户,并且以账户名-->密码保存一个文件
执行脚本
()表示保留,将括号内复制,\数字表粘贴位置
a行下追加
i:行上追加
c:整行替换
awk:精确搜索,逐行处理,读取文档时执行 在  ‘{ }’中处理指令
1.前置指令 | awk 选项 条件 指令
2.awk 选项 条件 指令  被处理文档
选项:-F定义分隔符,默认空格分隔符
指令:print 输出
条件:/字符串/,$5~包含,NR/$3== != >= <= ,逻辑组合&& ||
$数字表示第几列,NF表示有几列,NR表示有几行
常量放在双引号中
输出根目录可用内存
查看网卡的数据量
在awk中不加双引号为变量
~包含,第五列不包含root
==,<=,>=,!=
输出第二行
第三列大于等于2
逻辑组合&&、||
这样会输出所有
==表示精确搜索
而~包含即可
运算
awk的处理时机, 执行额外任务
BEGIN任务,执行一次,读取文档前执行
逐行任务,执行n次,读取文档时执行
END任务,执行一次,读取文档后执行
统计用户
awk数组:相当于可以存储多个值的特殊变量
数组名[下标] = 下标对应的值
查看文件中相同的个数
awk的for循环:for(变量名 in 数组名){print 变量名}
统计文件中相同的个数并输出各自的个数
统计来访网站的IP地址和访问次数记录(/var/log/httpd/access_log)
当其他主机访问100次时也会统计到
把统计结果排序,sort (-n 表示按数字排序,-k表示第几列,-r表降序)默认升序 在n后面加r表降序
统计安全日志中登录主机失败的ip地址和次数
相关的awk应用

相关推荐

  1. Shell编程训练2

    2024-03-13 23:46:02       39 阅读
  2. shell编程-2

    2024-03-13 23:46:02       28 阅读
  3. 15_2 Linux Shell基础

    2024-03-13 23:46:02       24 阅读
  4. 第二节 shell脚本基础(1)(2)

    2024-03-13 23:46:02       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 23:46:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 23:46:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 23:46:02       87 阅读
  4. Python语言-面向对象

    2024-03-13 23:46:02       96 阅读

热门阅读

  1. 安卓kotlin面试题 81-90

    2024-03-13 23:46:02       37 阅读
  2. 【C语言学习路线】

    2024-03-13 23:46:02       43 阅读
  3. TypeScript之函数

    2024-03-13 23:46:02       39 阅读
  4. jetson orin nx重装Cuda加速的OpenCV4.5.4

    2024-03-13 23:46:02       46 阅读
  5. nodejs:npm i与npm i -S、npm i -D区别

    2024-03-13 23:46:02       39 阅读
  6. 知识图谱详细建立过程

    2024-03-13 23:46:02       41 阅读
  7. 320: 鸡兔同笼(python)

    2024-03-13 23:46:02       41 阅读
  8. HTML世界之标签Ⅱ

    2024-03-13 23:46:02       38 阅读
  9. 红帽认证知识储备-Linux安全

    2024-03-13 23:46:02       42 阅读