Linux10 三剑客 正则表达式

三剑客

grep

擅长过滤,按行过滤

首先要把多个虚拟机的网络改成一种形式

爆破攻击:‌爆破攻击是一种尝试通过穷举法(即尝试所有可能的组合)来破解密码或身份验证的方法。这种攻击通常用于尝试登录到系统、网络或应用程序,通过不断尝试用户名和密码的组合来找到正确的登录信息。爆破攻击可以针对各种身份验证机制,包括但不限于用户名和密码、验证码等。

系统自动记录:Linux  /var/log/secure

可以通过grep指令去筛选日志中异常的指令或IP,查看是否有人爆破攻击自己的主机

我们cd到log里面,可以发现有一个secure文件

我们cat  secure 会发现里面有一行一行的记录,记录的是谁在登录这个主机

 

我们从中可以看到是哪个IP登录的,因为什么原因登陆失败

与grep 'Failed password' secure等价

这个指令可以查找到登录本主机出现密码错误的指令,从而查找到相应的IP

我们的目的是为了将IP筛选出来,我们可以使用-p参数

这我们就需要正则表达式了,我么可以搜索,正则表达式 在线工具进行查找

 grep 'Failed password' secure | grep -P "正则表达式"  通过这个指令筛选出对应的IP

-Po仅筛选IP

CTRL+k删掉空格后面内容

grep 'Failed password' secure | grep -P "正则表达式" | sort -n  对IP排序

grep 'Failed password' secure | grep -P "正则表达式" | sort -n | uniq -c  去重,显示出重复次数

如果看到IP登录次数异常,那可能就是在爆破攻击

我们来查找一下services文件

将钱前50行输出到一个新的文件中去

我们可以看到这有一个text.txt

我们可以查看一下这两条指令的不同

grep '关键词'  文件名  过滤出包含关键词的内容

-n显示行数

我们可以通过vi指令特定到某一行的内容修改

该指令是对结果进行统计

效果同上

-i 表示不区分大小写

-v 表示取反,取出没有关键词的行

-w 表示精准匹配,只会匹配出与整个关键词的项,而不是包含关键词的项

-o只显示结果

-A2将关键词后面的两行也显示出来了

-B2显示前两行

-C2前后两行都显示出来

-E匹配某关键词,例如图中,表示匹配某tp

-P '\d+'  匹配数字

-P '\d{数字}'  匹配几位数字

-E 和-P都可以指定正则

sed

我们建一个文件

我们把1.txt修改成这样

我们打印一下3a,p表示打印的意思,基本格式如图所示

sed会默认把文件内容全部打印一边,再把匹配的内容在打印一遍

如果我们想单独打印,我么可以加上-n参数

打印

删除后所剩的文件,并没有删除源文件

-i参数直接修改文件内容而不是输出终端

该指令表示把以#开头的行删掉

删除1-3行

在第四行下面插入hello l11

在第三行前面插入bye bye

我们可以通过sed 's#被替换#替换成#' 文件名   的指令进行替换操作

表示每一行第一个大写的A被替换成xxx

表示所有的A都被替换成xxx,我们只需要在‘’里添加g

表示不区分大小写,所有的aA都替换

awk

我们先创建一个文件,并加入以下内容

awk按空格识别一列

我们使用该指令取第一列,$1

NF取最后一列

我们可以看到最后一列显示在前,第一列显示在后,我们可以由此发现,基于awk,我们可以对文档进行重新排版

创建一个新的文件,并输入这些内容

用awk计算

取第一行

我们可以通过awk指令过滤出ip,比正则要方便

awk可以指定分隔符,第一个''里就是指定的分隔符

还可以拼凑指定文本

找出第一列数据中带有h的,并取出第二列和第三列

正则表达式

正则表达式就是一套处理大量的字符串而定义的规则和方法

我们先把services中的前一百行拿到test文件中做示例

^表示以...开头

-E表示正则,-v表示取反-Ev在这里表示取不以#开头的

$表示以...结尾

^$表示空行(将所有空行匹配出来)

得到非空行数据

在源文件中删除空行-i

找到含有udp的行

.表示任意匹配

新建一个文件并输入该内容

我们可以看到这两个的区别,下面的22是以两个2为一组,所以第二行会有一个2没有被匹配到

这个意思是前面的1会匹配到,而2几次都可以

我们也可通过grep指令得到去掉空格和#开头的每一行

我们通过该指令可以去除#后面的所有

我们在通过这个指令去除空行

我们可以通过这个指令筛选数字

我们也可以同时对两个条件进行筛选

取反,取不是0-9的

我们可以通过这条指令来匹配IP

单独把IP提出来

+重复一到多次

0重复0到多次

per正则表达式

这个指令匹配IP会更精准

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

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

相关文章

C#方法

在 C#中,方法的定义包括任意方法修饰符(如方法的可访问性)、返回值的类型, 然后依次是方法名、输入参数的列表(用圆括号括起来)和方法体(用花括号括起来)。 [修饰符] 返…

【昂贵的婚礼】

题目 代码 #include<bits/stdc.h> using namespace std; typedef pair<int, int> PII; #define x first #define y second const int N 110, M 10110; int h[N], e[M], ne[M], w[M], idx; bool st[N]; int n, m; int dist[N]; int tier[N]; void add(int a, int…

爬虫 Web Js 逆向:RPC 远程调用获取加密参数(1)WebSocket 协议介绍

RPC (Remote Procedure Call) 是远程调用的意思。 在 Js 逆向时&#xff0c;本地可以和浏览器以服务端和客户端的形式通过 WebSocket 协议进行 RPC 通信&#xff0c;这样可以直接调用浏览器中的一些函数方法&#xff0c;不必去在意函数具体的执行逻辑&#xff0c;可以省去大量…

超详细!!!electron-vite-vue开发桌面应用之Electron Forge打包项目(三)

云风网 云风笔记 云风知识库 electronforge可将前端静态页面打包成.exe、.deb和.rpm等&#xff0c;能适配各种平台 一、安装依赖 cd my-app npm install --save-dev electron-forge/cli npm exec --packageelectron-forge/cli -c "electron-forge import"安装后pack…

简化工作流连线以及让工作流易于操作的插件:rgthree-comfy与cg-use-everywhere

当我们想要在工作流中进行多种不同配置、功能模块&#xff0c;并在多种不同配置、功能模块间进行切换&#xff0c;每次可以执行不同配置、功能模块&#xff0c;用原来简单的连线方式连接各个节点时&#xff0c;除了连线会十分复杂外&#xff0c;要切换不同配置、功能模块&#…

直接插入排序(C语言)

一、图解 思想: 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为 止&#xff0c;得到一个新的有序序列 。 当插入第i(i>1)个元素时&#xff0c;前面的array[0],array[1],…,array[i-1]已经排好序&#xff0c;此时…

【Java】如何使用jdbc连接并操作MySQL,一文读懂不迷路,小白也能轻松学会

JDBC的原理 JDBC&#xff08;Java Database Connectivity&#xff09;是Java提供的用于连接和操作数据库的API。它允许Java应用程序与各种数据库进行交互&#xff0c;以下是JDBC的基本原理&#xff1a; 驱动程序管理&#xff1a;JDBC使用不同的数据库驱动程序来连接不同类型的…

兼容并蓄,高效集成:EasyCVR视频综合接入能力助力多元化项目需求

随着视频技术的不断进步&#xff0c;视频监控、视频直播、执法记录仪、语音可视对讲、无人机等视频资源的应用场景日益丰富。这些视频资源不仅在数量上快速增长&#xff0c;而且在质量、格式、编码标准等方面也呈现出多样化的特点。因此&#xff0c;为了有效整合这些资源&#…

2024年06月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 列表 fruit = [‘西瓜’, ‘菠萝’, ‘哈密瓜’, ‘葡萄’],以下哪个选项,可以获取列表最后一个元素?( ) A:fruit[len(fruit)] B:fruit[len(fruit) - 1] C:fruit[len(fruit) + 1] D:fr…

echarts学习:绘制地图

前言 经过之前一段时间的磨砺&#xff0c;我具备了基本的使用echarts绘制图表的能力。但是在最近这几个月里我接连遇到了几个棘手的任务&#xff0c;这大大的提升了我的echarts水平。其中我遇到的第一个高难度任务就是使用echarts绘制如下的地图&#xff1a; 简单的分析一下&a…

Android studio 引入Json文件

Xcode引入json文件非常简单&#xff0c;没想到Android Studio是有讲究的&#xff0c;必须指定位置。 跟 lib 同一级目录下 创建一个assets&#xff08;如果不存在就创建&#xff09; future: DefaultAssetBundle.of(context).loadString(assets/appcenter.json),针对我这个路…

使用Leaks定位iOS内存泄漏问题并解决

使用Leaks定位iOS内存泄漏问题并解决 前言 内存泄漏问题一直是程序开发中最令人头疼的问题&#xff0c;特别是C/C。虽然C/C在C11之后引入了许多新特性&#xff0c;包括智能指针&#xff0c;自动类型推导等&#xff0c;但C中动态内存的分配和释放仍然需要程序员来显式地进行。…

【网络协议】精讲TCP通信原理!

前言 TCP 把连接作为最基本的对象&#xff0c;每一条 TCP 连接都有两个端点&#xff0c;这种端点我们叫作套接字&#xff08;socket&#xff09;&#xff0c;它的定义为端口号拼接到 IP 地址即构成了套接字&#xff0c;例如&#xff0c;若 IP 地址为 192.3.4.16 而端口号为 80&…

CSS设置文本超出显示省略号

一、单行文本显示省略号 <div class"box"><p>测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本测试文本…

C# 静态方法和实例方法

一、静态成员&#xff0c;实例成员&#xff0c;静态方法&#xff0c;实例方法 静态成员就是用static修饰的字段&#xff1b; 实例成员就是没有被static修饰的字段&#xff1b; 静态方法就是用static修饰的方法&#xff1b; 实例方法就是没有被static修饰的方法&#xff1b;…

无人机之如何避免飞行错误篇

在无人机飞行中&#xff0c;飞手可能会遇到各种问题&#xff0c;这些问题不仅会影响飞行效果&#xff0c;还可以带来安全隐患。以下是一些常见的错误及避免方法&#xff0c;帮助飞手提高飞行稳定性和安全性&#xff1a; 一、校准传感器 IMU&#xff08;惯性测量单位&#xff0…

HttpClient在ASP.NET Core中的最佳实践:实现高效的HTTP请求

引言 在现代Web开发中&#xff0c;HTTP请求的高效性和可靠性对于应用的整体性能至关重要。ASP.NET Core提供了HttpClient类&#xff0c;它是一个强大且灵活的工具&#xff0c;可以用来发送HTTP请求并处理响应。然而&#xff0c;如何在ASP.NET Core中实现高效的HTTP请求&#x…

【Linux】手把手教你从零上手Vim编辑器

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 目录 &#x1f4cc;写在前面 &#x1f4cc;Vim是什么 &#x1f4cc;手把手教你开始使用Vim &#x1f38f;使用Vim编辑第一个程序 &#x1f38f;Normal(命令模…

Ilya Sutskever 2023年伯克利大学演讲回顾:无监督学习与GPT的数学基础

引言 在2023年&#xff0c;OpenAI联合创始人之一的Ilya Sutskever在伯克利大学进行了一次极具影响力的演讲。这场演讲虽然内容复杂晦涩&#xff0c;但却被认为是人工智能发展历史上的一个重要里程碑。在演讲中&#xff0c;Sutskever深入探讨了无监督学习的数学依据&#xff0c…

CocoaPods 官宣进入维护模式,不在积极开发新功能,未来将是 Swift Package Manager 的时代

昨天 CocoaPods 官宣现在项目**处于维护模式 **&#xff0c;简单来说&#xff0c;就是 CocoaPods 不会再像以前一样积极投入资源进行开发&#xff0c;所谓维护模式&#xff0c;就是让项目处于「可用」的状态&#xff0c;而此时距离 CocoaPods 的出现&#xff0c;也过去了有 13 …