脚本开发与自动化运维

shell脚本开发

grep搜索工具

参数:

  • -A<显示行数>-A NUM, --after-context = NUM,除了显示符合范本样式的那一行之
  • 外,并显示该行之后的内容。
  • -B<显示行数>--before-context = NUM,除了显示符合样式的那一行之外,并显示该
  • 行之前的内容。
  • -C<显示行数>-NUM, --context = NUM,除了显示符合样式的那一行之外,并显示该
  • 行之前后的内容。
  • -c:统计匹配的行数
  • -e :实现多个选项间的逻辑 or 关系
  • -E:扩展的正则表达式,grep -E 等同于 egrep
  • -f FILE:从 FILE 获取 PATTERN 匹配
  • -F :相当于 fgrep
  • -i --ignore-case #忽略字符大小写的差别。
  • -n:显示匹配的行号
  • -o:仅显示匹配到的字符串
  • -q: 静默模式,不输出任何信息
  • -s:不显示错误信息。
  • -v:显示不被 pattern 匹配到的行,相当于[^] 反向匹配
  • -w :匹配 整个单词

 

 

sed

sed [ 参数 ] '[ 地址定界 ] command' file

  • command】常用的有如下几种:
  • d:表示删除行。
  • p:打印该行。
  • a:在当前行之后插入新行新内容,每行末尾需要使用‘\’续行。
  • i:在当前行之前插入新行新内容,每行末尾需要使用‘\’续行。
  • cc 符号后的新行新内容,替换当前行中的文本,每行末尾需要使用‘\’续行,整行
  • 替换。
  • r:读取指定文件的内容。
  • w:写入指定文件。
  • s:替换指定字符

参数

 -n:静默模式。不输出模式空间内容到屏幕。

  • d:表示删除行。
  • p:打印该行。
  • a:在当前行之插入新行新内容,每行末尾需要使用‘\’续行;
  •  i:在当前行之插入新行新内容,每行末尾需要使用‘\’续行;
  •  cc 符号后的新行新内容,替换当前行中的文本,每行末尾需要使用‘\’续行,整行
  • 替换
  • r:读取指定文件的内容。
  • w:写入指定文件。
  • s :替换指定字符。
  • -i:直接将处理结果写到文件中。

实训一:安装nginx脚本

#!/bin/bash
# 查询是否安装了 ssh 服务,结果重定向到临时文件 temp_text 中
dpkg -l | grep nginx > temp_text
if [ $? -ne 0 ]
then
# 安装 ssh 服务
sudo apt-get install nginx -y
# 修改配置,允许 root 远程登录
fi
# 查询是否开启了 ssh 服务,结果重定向到临时文件 temp_text 中
ps -e | grep nginx > temp_text
if [ $? -ne 0 ]
then
sudo systemctl start nginx
fi

 

awk 基本语法

awk '{pattern + action}' {filenames}
  • $0 变量:指的是整条记录
  • NF:以空格或 tab 分隔
  • FS:默认为空格或 tab,如 tail -n 5 /etc/passwd |awk -F : '{print $1,$5}' ,将以冒号为分隔符,打印出 /etc/passwd 文件后 5 行的第一、第五列的内容
  •  $1 表示第一个域,$n 表示第 n 个域

 

统计test中a出现的次数:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/1734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用51单片机控制T0和T1分别间隔1秒2秒亮灭逻辑

#include <reg51.h>sbit LED1 P1^0; // 设置LED1灯的接口 sbit LED2 P1^1; // 设置LED2灯的接口unsigned int cnt1 0; // 设置LED1灯的定时器溢出次数 unsigned int cnt2 0; // 设置LED2灯的定时器溢出次数// 定时器T0 void Init_Timer0() {TMOD | 0x01;; // 定时器…

数据分析师平均薪资18322,这11个行业需求量最大!

2024年&#xff0c;是一个被数据深刻影响的时代。数据&#xff0c;如同无形的燃料&#xff0c;驱动着现代社会的运转。从全球互联网用户每天产生的2.5亿TB数据&#xff0c;到制造业的传感器、金融交易、医疗病历等各个领域的海量信息&#xff0c;数据的量级每年都在呈指数级增长…

Linux 内核设备树 ranges属性

今天有人问了我一下ranges属性&#xff0c;找了相关资料确认后&#xff0c;记录一下&#xff1a; 参考资料链接&#xff1a;让你完全理解linux内核设备树ranges属性地址转换 - vkang - 博客园 (cnblogs.com) ranges属性定义如下&#xff1a; ranges < local_address pa…

SAP专家级实施商解读:SAP S/4HANA Cloud(PCE私有云) 的五大误解

五个关于SAP S/4HANA Cloud&#xff08;PCE私有云&#xff09;的重要疑问&#xff1a; ■ SAP太贵了&#xff1f; ■ SAP S/4HANA Cloud 只适用于大型企业&#xff1f; ■ ERP项目&#xff0c;尤其是 SAP 解决方案&#xff0c;太耗时了&#xff1f; ■ ERP项目/云项目没有优势&…

JAVA学习笔记29(集合)

1.集合 ​ *集合分为&#xff1a;单列集合、双列集合 ​ *Collection 接口有两个重要子接口 List Set&#xff0c;实现子类为单列集合 ​ *Map接口实现子类为双列集合&#xff0c;存放的King–Value ​ *集合体系图 1.1 Collection接口 1.接口实现类特点 1.collection实现…

PL_to_PS中断传输数据

PL_to_PS中断传输数据 实验功能&#xff1a;将PL端的数据存入BRAM&#xff0c;然后在PS端读出数据&#xff0c;用串口打印。通过中断来触发 参考文章&#xff1a; https://www.cnblogs.com/fhyfhy/p/11760986.html [ZYNQ_PS与PL通过BRAM交互&#xff08;三&#xff1a;PSPL读…

MyBatis 框架学习(II)

MyBatis 框架学习(II) 文章目录 MyBatis 框架学习(II)1. 介绍2. 准备&测试2.1 配置数据库连接字符串和MyBatis2.2 编写持久层代码 3. MyBatis XML基础操作3.1 Insert 操作3.2 Delete 操作3.3 Update 操作3.4 Select 操作 4. #{} 与 ${}的使用5. 动态SQL操作5.1 < if >…

去除图像周围的0像素,调整大小

在做分割任务时&#xff0c;经常需要处理图像&#xff0c;如果图像周围有一圈0像素&#xff0c;需要去除掉&#xff0c;重新调整大小 数组的处理 如果图像的最外一圈为0&#xff0c;我们将图像最外圈的图像0去除掉。 import numpy as npdef remove_outer_zeros(arr):# 获取数…

纠正对CAN的错误认识

STM32CUBEMX系列——CAN通讯的配置_stm32cubemx 配置103 can-CSDN博客 STM32之CAN通信_stm32 can通信-CSDN博客 在回环模式下&#xff0c;发送的数据帧会在控制器内部被立即接收&#xff0c;而不会通过总线传播到其他节点。这种模式可以确保在没有其他节点干扰的情况下&#…

AI边缘计算盒子+ThingSense管理平台,推动明厨亮灶智慧监管新篇章

背景随着“互联网”时代的浪潮汹涌而至&#xff0c;国家及各地政府纷纷在“十四五”规划中明确指出&#xff0c;强化食品安全管理&#xff0c;利用技术手段实现智慧监管是刻不容缓的任务。为此&#xff0c;各地正加速推进“互联网明厨亮灶”的建设步伐&#xff0c;实现系统对接…

C# 使用 ThoughtWorks.QRCode 生成二维码

目录 关于 ThoughtWorks.QRCode 开发运行环境 方法设计 代码实现 调用示例 Logo图标透明化 小结 关于 ThoughtWorks.QRCode 二维码是用某种特定的几何图形按一定规律在平面分布的、黑白相间的、记录数据符号信息的图形&#xff0c;在应用程序开发中也被广泛使用&#x…

vue+node使用RSA非对称加密,实现登录接口加密密码

背景 登录接口&#xff0c;密码这种重要信息不可以用明文传输&#xff0c;必须加密处理。 这里就可以使用RSA非对称加密&#xff0c;后端生成公钥和私钥。 公钥&#xff1a;给前端&#xff0c;公钥可以暴露出来&#xff0c;没有影响&#xff0c;因为公钥加密的数据只有私钥才…

不同分辨率下搜狗输入法输入图标过大

现象 笔记本是2k屏外接1080p显示器&#xff0c;分辨率不同导致搜狗输入法在笔记本显示器上显示正常&#xff0c;而在1080p显示器下图标很大过大&#xff0c;一打字就显得很尴尬。 解决 找到以上三个可执行文件&#xff0c;分别右键打开属性-->兼容性-->更改高DPI设置 按…

安装nvm管理node版本

准备工作 卸载电脑上原有的nodejs&#xff0c;卸载后确保相关的文件夹也删除掉&#xff0c;否则会在nvm安装成功后管理node版本时造成冲突&#xff0c;例如执行nvm use 20.5.0时报exit status 145的错误。原本就没有安装过node的不用管 一、nvm的安装及使用 1、下载nvm&…

SS-Net复现

表1 8 labeled 样本复现结果–Dice&#xff1a;88.540501&#xff0c;Jaccard&#xff1a;79.60452&#xff0c;95HD&#xff1a;7.58588897&#xff0c;误差在可接受范围内 表2 7 labeled 样本复现结果–Dice&#xff1a;86.778431&#xff0c;Jaccard&#xff1a;77.665895&…

算法思想总结:栈

一、栈的经典应用&#xff1a;波兰表达式与逆波兰表达式 我们平时看到的 12*&#xff08;3-4*5&#xff09;6/7 叫做中缀表达式&#xff0c;平时我们习惯用这个计算的原因是我们可以整体地去看到这个表达式并且清楚地知道各个运算符的优先级&#xff0c;但是计算机并不一定知道…

微信小程序四(全局配置和页面配置页面跳转)

全局配置&#xff1a; 小程序根目录下的 app.json 文件用来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等 tabBar设置&#xff1a;最少两个最多5个 "tabBar": {"list":[{"pagePath": &qu…

“饕餮之路:贪吃蛇编程精粹“

目录 前言 1.写代码前的预准备 1.1修改控制台 1.2相关WinAPI32知识学习 1.2.1WinAPI32介绍 1.2.2 mode 命令 1.2.3 title 命令 1.2.4COORD 1.2.5GetStdHandle 1.2.6对控制台光标进行设置 1.2.6.1GetConsolrCursorInfo 1.2.6.2 CONSOLE_CURSOR_INFO 1.2.6.3SetConsol…

vos3000外呼系统客户端无法安装如何解决?

如果 VOS3000 外呼系统客户端无法安装&#xff0c;可以尝试以下解决方法&#xff1a; 检查系统要求&#xff1a; 确保你的计算机满足 VOS3000 外呼系统客户端的系统要求&#xff0c;包括操作系统版本、内存、处理器等。如果系统不符合要求&#xff0c;可能会导致安装失败或者运…

c语言中,数组取地址的书写格式

数组取地址 为了更好的区分数组取地址时的情况&#xff0c;我们建立两个数组&#xff0c;arr1一维数组和arr2二维数组&#xff0c;用printf函数来打印出每个例子arr1和arr2的地址&#xff0c;这样可以更加直观的区分出来。 首先我们看到第一组打印&#xff0c;可以看到若是直接…