企业常用Linux正则表达式与三剑客企业生产环境及知识/企业中远程连接ssh工具,需要一定的配置(为什么连接有时慢?)

企业高薪思维:
1.学习去抓重点有价值知识
2.猛劲学,使劲学(能否给别人将会,讲明白,写明白,练习明白),在学习过程中你觉得学会了60-80%,其实你只会了40-50%,你要讲明白会操作,类似于1+1=2顺口成章一种记忆,面试中你给HR的感觉,和身边同类人专业度是不一样的!
为什么要有爱好?
1.横向交往不同【层次】人脉。
你认识多少没有什么用,有多少人认识你才是你的价值。
2.释放工作、生活、学习带来的各种压力。
3.认识你的另一半,有相同爱好两个人。
为什么要有特长?
1.带给人自信。
自信是成功的前提。
2.横向交往不同【层次】人脉。
把和你的特长有相同爱好的人成为你的粉丝。
3.让你失败的时候能够东山再起。

企业常用Linux正则表达与三剑客知识

正则表达

处理大量字符串文本定义的一套规则与方法

Linux三剑客正则表达式特点

  1. 工作上,一次处理一行
  2. 正则表达式可以将复杂的任务处理为简单的,提高操作Linux效率
  3. 仅被三剑客(grep/egrep,sed,awk)命令支持

正则表达式:为过滤特殊字符串而生

正则表达式与通配符有本质去别的:
通配符:所有的命令支持
正则表达式只支持三剑客

在centos6 之前是没有这一种标记的,centos7开始官方加上了这个标记(alias egrep=’egrep --color=auto‘)
在这里插入图片描述
在这里插入图片描述

LC_ALL环境变量设置

我们以后在工作中/安装好虚拟机,安装对应的yum/epel/网络工具时候,后面也可以进行配置LC_ALL(三剑客环境变量配置)

建议配置:配置后操作时不会出现异常匹配情况(export LC_ALL=C)
在这里插入图片描述
在命令行输入:
vim etc/profile编辑输入:
export LC_ALL=C并保存
在这里插入图片描述
. /etc/profile运行文件
echo $LC_ALL是否有C显示,有就是成功,否则重新来一遍配置操作
在这里插入图片描述
第二种处理方式:

EOF后面不要用多余的空格:
cat >>/etc/profile<<EOF
alias grep=‘grep --color=auto’
alias egrep=‘egrep --color=auto’
export LCALL=C
注意:eof前后都没有空格和其他符号
EOF
使用修改的内容生效
source /etc/profile

正则表达式的分类

基本正则表达式:
BRE对应的元字符:^$.[]*

扩展正则表达式:
ERE在BRE基础上增加了(){}?+|

基础正则表达式

实验环境:
mkdir ~/test -p
cat >~/test/wulin.txt<<EOF
i am wulin!
i study linux.

i like playgames ,and chinese chess!
my qq num is 99999999.

not 6763873677
EOF

给过滤的内容添加标识,把符合的标识内容过滤
^ 尖角号,^wulin,表示匹配以wulin为单词开头的行
在这里插入图片描述
$ 美元符,wulin$,表示匹配以wulin单词结尾的行
在这里插入图片描述

^ $组合符,表示空行(以 结尾的行)或者以 开头的行
在这里插入图片描述

. 点号,匹配任意的一个且只有一个字符
在这里插入图片描述

\转义符,特殊含义的字符让本有的含义显出原形(不受别的含义干扰)
在这里插入图片描述

(*) 重复前一个字符(来纳许0次或1次以上,当为0次的时候,表示什么也没有)
(0 * )所有的都出来了:
在这里插入图片描述

(. * )匹配所有的内容
在这里插入图片描述

(^. *) 匹配任意多个字符结尾的内容
( . *$)任意多个字符结尾的内容
[abc]匹配[]集合内的任意一个字符a,b,c;

([abc]匹配不包含 后面的任意字符a,b,c
,这里的^表示对[a,b,c]的取反,不能用!进行替代

测试题

1.过滤/etc/passwd中以nologin结尾的行
在这里插入图片描述

2.过滤/etc/passwd中以o开头的行
在这里插入图片描述

3.过滤/etc/passwd中至少含有1个0字符串的行
在这里插入图片描述

4.过滤/etc/目录中(不含子目录)下的所有文件
在这里插入图片描述

5.过滤/etc/services中含有点号的行
grep "." /etc/services

扩展正则

条件:grep -E====egrep
(+)匹配前一个字符1次或多次

区别,可以匹配0次
匹配0个0,或1个0,或多个0
[root@calms test3]# grep "0
" wulin.txt
匹配一个0或多个0
[root@calms test3]# grep “0*” wulin.txt

[ : /]+ 匹配括号内的:或/字符1次或多次
egrep “[: /]+” wulin.txt

egrep -o 参数把匹配的内容放在一列进行打印

?匹配前一个字符0次或1次

| 表示或者,同时过滤多个字符串
egrep “000|wulin” wulin.txt

0 分组过滤括起来的东西表示一个整体,另外0的内容可以被后面的\n进行引用,n为数字,表示引用第几个括号的内容

\n 引用前面()括号内的内容

a{n,m}匹配前一个字符最少n次,最多m次

a{n,}匹配前一个字符最少n次

a{n} 匹配前一个字符正好n次

a{,m}匹配前一个字符最多m次

特殊预定义表达式(了解)

在这里插入图片描述
[root@calms test]# egrep “[[:alnum:]]” wulin.txt
I am wulin!
I study linux.
I like playgames,chinese chess!
our site is http://www.wulincsdn.com
qq num is 99999999.
not 4900000448.
i am not wulin,but WULINS!
:d::f
etc/wulin//
[root@wulin test]# egrep “[[:alpha:]]” wulin.txt
I am wulin!
I study linux.
I like playgames,chinese chess!
our site is http://www.wulincsdn.com
qq num is 99999999.
not 4900000448.
i am not wulin,but WULINS!
:d::f
/etc/wulin//
[root@wulin test]# egrep “[:digit:]” wulin.txt
grep: character class syntax is [[:space:]], not [:space:]
[root@wulintest]# egrep “[[:digit:]]” wulin.txt
qq num is 99999999.
not 4900000448.

A after 显示过滤的字符串和它之后的多少行
-B before 显示过滤的字符串和它之前的多少行
-C context 显示过滤的字符串和它之前之后的多少行
[root@wulin test]# grep -A 3 5 b.txt
5
6
7
8
[root@wulin test]# grep -B 3 5 b.txt
2
3
4
5
[root@wulin test]# grep -C 3 5 b.txt
2
3
4
5
6
7
8

元字符表达式(了解)

在这里插入图片描述
在这里插入图片描述

Sed流编辑器(Linux三剑客老二)

对文件实现快速增删改查,查询最强大的是取行与替换

取行和替换
sed [选项] [sed内置命令字符] [输入文件]

options[选项] 解释说明

  1. -n取消默认的sed输出,常与sed内置命令的p连用
  2. -i 直接修改文件的内容,而不是输出到终端 如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件
    修改前备份,修改后检查(在备份的时候,cp –i.bak做替换的时候用bak作为扩展名,先备份完在进行做替换)

修改文件并备份:
cp wulin.txt{,.ori}
ls
sed ‘/wulin/d’ wulin.txt
wulun.tsed -i.bak '/wulin/d’wulin.txt(修改源文件前备份)
ls
怎么看改没改成功?
〉Windows专业比较工具bcompare

vimdiff(查看2个文件差异,更直观)
vimdiff wulin.txt wulin.txt.bak(wulin.txt为修改的文件,wulin.txt.bak为源文件)
操作后左右两边有对比功能,红色为修改过的内容

diff查看2个文件差异
diff wulin.txt wulin.txt.bak

  1. -e 允许多次编辑
  2. –r 支持扩展正则表达式

p 全拼为print,表示打印

d delete 删除(在文件中删除内容)
问题:删除含有wulin字符串的行
sed -n ‘/wulin/d’ wulin.txt’

问题:2-4行删除
删除前查看
sed '2,4p’wulin.txt
sed '2,4d’wulin.txt
sed = '2,4d’wulin.txt(=为sed的显示行号,存在问题不是一行显示内容)

cat –n显示行号,grep –n “.” wulin.txt也可以显示行号

s sub 替换(在文件中修改内容)
g global 全局替换
问题:将文件中的wulin字符串全部替换为wulinsckg*
sed ‘s#A#B#g’ 三个#理论上可以用任意字符,
sed -i.bak ‘s#A#B#g’
因为之前在案例中删掉了wulin.txt(但是我们在操作前已经进行了备份)cp wulin.txt.bak wulin.txt
会有提示符,输入y即可
cat wulin.txt(查看还原的内容是否回来)
sed ‘s#wulin#wulinsckg#g’ wulin.txt
会发现内容进行了替换
sed –i.bak ‘s#wulin#wulinsckg#g’ wulin.txt
vimdiff wulin.txt wulin.txt.bak(可以看到两边修改前后,及删除内容对比)

a append 追加(在文件中增加内容)

问题:在wulin.txt文件第二行后追加文本
cat –n wulin.txt
sed -i ‘2a i am wulint’ wulun.txt
vimdiff wulin.txt wulin.txt.bak(两边做了对比,并且在左边的第二行进行追加内容)

i insert 当前插入

问题:在wulin.txt文件的第二行插入文本
sed –i ‘2i i study linux’ wulin.txt
(在第二行插入,原来的第三行移动到第二行)
vimdiff wulin.txt wulin.txt.bak

= 显示行号
() \1 后向引用

练习题

1.取/etc/passwd中第5–15行,重定向到/test.txt
sed –n ‘5,15p’ /etc/passwd〉/test.txt
cat -n /test.txt

2.把/test.txt中以/sbin/nologin结尾的,都修改为/bin/bash

sed -i.bak ‘s#/sbin/nologin#/bin/bash#g’ test.txt

3.查找包含nobody的行
sed -n’/nobody/p’ /test.txt

4.第8行,插入#i am wulin
sed ‘8i i am wulin’ /test.txt
sed –i ‘8i i am wulin’ /test.txt
(补充
sed = ‘8i i am wulin’ /test.txt可以显示行号,但是会存在一个问题行号与内容没有在一行,如果要解决解决方式?
sed = ‘8i i am wulin’ /test.txt|sed ‘N:s/\n/ /’

5.删除9-14行,并修改文件
sed -i ‘9,14d’ /test.txt

问题:在wulin.txt文件的第二行插入两行文本
srd ‘2i i study linux \n’ test.txt

生产场景:配置ssh参数的案例
在文件中增加参数设置
egrep “Port” /etc/ssh/sshd_config
egrep “#Port” /etc/ssh/sshd_config
egrep “#Port|root” /etc/ssh/sshd_config
egrep “#Port|login” /etc/ssh/sshd_config
egrep -i “#Port|#PermitRootLogin” /etc/ssh/sshd_config
egrep -i “#Port|#PermitRootLogin|UseDNS” /etc/ssh/sshd_config
egrep -i “#Port|#PermitRootLogin|UseDNS|” /etc/ssh/sshd_config
egrep -i “#Port|#PermitRootLogin|UseDNS|GSSAPIAuthentication yes” /etc/ssh/sshd_config

根据上面案例解释了在企业中远程连接ssh工具,需要一定的配置(为什么连接有时慢?)

#Port 52113 (默认22断开,黑客也是知道这个端口,工作中这里要改)
#PermitRootLogin yes(禁止root远程登录)
GSSAPIAuthenyication no(解决连接慢)
UseDNS no (解决连接慢)
在后面集群架构阶段要求会一键化搭建
到时候怎么搭建?
sed ‘13i Port 52113\nPermitRootLogin no\nGSSAPIAUthentication no\nUseDNS no’ /etc/ssh/sshd_config
(这里我假如13行,这里大家学习先别进行修改,否则大家ssh远程连接不了,在企业中是要进行改的)

企业中一般我们会加上等号
sed ‘13i #===\nPort 52113\nPermitRootLogin no\nGSSAPIAUthentication no\nUseDNS no\n#=’ /etc/ssh/sshd_config

在命令行输入
sed –i.bak’13i #===\nPort 52113\nPermitRootLogin no\nGSSAPIAUthentication no\nUseDNS no\n#=’ /etc/ssh/sshd_config
查询:
sed -n ‘13,20’ /etc/sshd_config
sed -n ‘13,18p’ /etc/sshd_config

重启
systemctl restart sshd
(如果不这样做,需要vim编辑/etc/ssh/sshd_config文件,将其内容写入到vim这个文件)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

毅速3D打印随形透气钢:革新传统,引领未来

透气钢&#xff0c;这种多孔金属材料&#xff0c;既融合了金属材料的坚固性&#xff0c;又具备了透气材料的通透性。尤其在注塑模具的制造中&#xff0c;透气钢的作用不可忽视。通过镶嵌透气钢&#xff0c;能够有效解决因困气产生的注塑问题&#xff0c;使成型加工更为完善&…

【云计算】云数据中心网络(三):NAT 网关

《云网络》系列&#xff0c;共包含以下文章&#xff1a; 云网络是未来的网络基础设施云网络产品体系概述云数据中心网络&#xff08;一&#xff09;&#xff1a;VPC云数据中心网络&#xff08;二&#xff09;&#xff1a;弹性公网 IP云数据中心网络&#xff08;三&#xff09;…

做一个答题pk小程序多少钱

在探讨“做一个答题pk小程序多少钱”这一问题时&#xff0c;我们首先需要明确的是&#xff0c;小程序的价格并非固定不变&#xff0c;而是受到多种因素的影响。这些因素包括但不限于小程序的复杂度、功能需求、开发周期、技术难度以及开发团队的规模和经验等。因此&#xff0c;…

光网络中的低偏SOA与无源波导单片集成

----翻译自Aref Rasoulzadeh Zali等人2021年撰写的文章 摘要 在光通信系统中&#xff0c;非常需要可以通过简单工艺与无源光路单片集成的低偏振相关半导体光放大器&#xff08;SOA&#xff09;。然而&#xff0c;尽管已经报道了几种SOA&#xff0c;但在InP平台中将偏振无关的体…

MongoDB 索引全攻略

目录 一、索引介绍 1.1 单字段索引 1.2 复合索引 1.3 多键索引 1.4 主键索引 1.5 TTL 索引 1.6 地理空间索引 1.7 哈希索引 1.8 创建索引时注意事项 1.9 索引效果查看 二、索引实现原理 2.1 为什么使用 B-Tree 三、执行计划 一、索引介绍 任何数据库都有索引这一核心功能&…

sprinboot+vue集成neo4j图数据库

一 、java后台 1.1 package com.admin.domain;/*** 功能描述&#xff1a;** author wangwei* date 2024-01-15 22:13*/ public class ConnectWeb {private String connectWebId;private String connectWebName;private String connectWebInfo;private String personWebIdAlph…

指针专题(2)

前言 上一节我们学习了指针的相关内容&#xff0c;本节我们继续学习指针专题&#xff0c;更加深入的了解指针&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习 1.对数组名的深入理解 在上一节的内容中&#xff0c;我们提到了用指针来访问数组的操作&#xff0c…

昂科烧录器支持Nuvoton新唐科技的低功耗微控制器M482SIDAE

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Nuvoton新唐科技的低功耗微控制器M482SIDAE已经被昂科的通用烧录平台AP8000所支持。 M482SIDAE以Arm Cortex-M4F为核心&#xff0c;是带有DSP指令集的高效能低功耗微控制器。其…

Mybatis的注解开发

1、概述 mybatis中也提供了注解式开发方式&#xff0c;采用注解可以减少Sql映射文件的配置。 使用注解式开发的话&#xff0c;sql语句是写在java程序中的&#xff0c;这种方式也给sql语句的维护带来成本。 使用注解来映射简单语句会使代码显得更加简洁&#xff0c;但对于稍微…

ASP.NET基于WEB的工作计划流程管理系统的设计与实现

摘 要 信息技术的飞速发展&#xff0c;尤其是网络通讯技术、数据库技术及自动化技术的日新月异&#xff0c;为单位、企业的办公带来了极大的便利。但是由于单位、企业的工作性质众多&#xff0c;工作流程各有差异&#xff0c;企业、单位、部门之间的管理机制各不相同&#xf…

OpenHarmony实战开发-Web自定义长按菜单案例。

介绍 本示例介绍了给Webview页面中可点击元素&#xff08;超链接/图片&#xff09;绑定长按/鼠标右击时的自定义菜单的方案。 效果预览图 使用说明 长按Web页面中的图片或者链接元素&#xff0c;弹出自定义的Menu菜单&#xff0c;创建自定义的操作&#xff0c;如复制图片、使…

定时器详解

定时器&#xff1a;Timer类 常用方法方法&#xff1a; 1.schedule(TimeTask timetask,long delay,(long period)): TimeTask&#xff1a;实现了Runnable类&#xff0c;实现时需要重写run方法 delay&#xff1a;表示延迟多少(decay)后开始执行任务&#xff0c;单位是毫秒&#x…

密码学 | 椭圆曲线密码学 ECC 入门(四)

目录 正文 1 曲线方程 2 点的运算 3 求解过程 4 补充&#xff1a;有限域 ⚠️ 知乎&#xff1a;【密码专栏】动手计算双线性对&#xff08;中&#xff09; - 知乎 ⚠️ 写在前面&#xff1a;本文属搬运博客&#xff0c;自己留着学习。注意&#xff0c;这篇博客与前三…

LeetCode in Python 200. Number of islands (岛屿数量)

岛屿数量既可以用深度优先搜索也可以用广度优先搜索解决&#xff0c;本文给出两种方法的代码实现。 示例&#xff1a; 图1 岛屿数量输入输出示意图 方法一&#xff1a;广度优先搜索(bfs) 代码&#xff1a; class Solution:def numIslands(self, grid):if not grid:return 0…

【WSL报错】执行:wsl --list --online;错误:0x80072ee7

【WSL报错】执行:wsl --list --online&#xff1b;错误:0x80072ee7 问题情况解决方法详细过程 问题情况 C:\Users\17569>wsl --list --online 错误: 0x80072ee7 解决方法 开系统代理&#xff0c;到外网即可修复&#xff01;&#xff01;&#xff01;&#xff01;&#x…

Yolov8项目实践——基于yolov8与OpenCV实现目标物体运动热力图

概述 在数据驱动和定位的世界中&#xff0c;对数据进行解释、可视化和决策的能力变得日益重要。这表明&#xff0c;使用正确的工具和技术可能是项目成功的关键。在计算机视觉领域&#xff0c;存在许多技术来解释从视频&#xff08;包括录像、流媒体或实时视频&#xff09;中获…

「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

软件成分分析&#xff08;Software Composition Analysis&#xff0c;SCA&#xff09;是一种用于识别和分析软件内部组件及其关系的技术&#xff0c;旨在帮助开发人员更好地了解和管理其软件的构建过程&#xff0c;同时可帮助安全人员揭秘软件内部结构的神秘面纱。SCA技术的发展…

递归、搜索与回溯算法:回溯,决策树

回溯算法是⼀种经典的递归算法&#xff0c;通常⽤于解决组合问题、排列问题和搜索问题等。 回溯算法的基本思想&#xff1a;从⼀个初始状态开始&#xff0c;按照⼀定的规则向前搜索&#xff0c;当搜索到某个状态⽆法前进时&#xff0c;回退到前⼀个状态&#xff0c;再按照其他…

【计算机组成原理】运算方法和运算器

数据与文字的表示方法 1. 数据格式1.1 定点数表示方法1.1.1 定点小数1.1.2 定点整数 1.2 浮点数表示方法1.2.1 浮点数表示1.2.2 浮点数的规格化1.2.2.1 尾数为原码表示的规格化1.2.2.2 尾数为补码表示的规格化 1.2.3 IEEE754标准⭐ 1.3 十进制数串的表示方法1.3.1 字符串形式1.…

网盘——私聊

在私聊这个功能实现中&#xff0c;具体步骤如下&#xff1a; 1、实现步骤&#xff1a; A、客户端A发送私聊信息请求&#xff08;发送的信息包括双方的用户名&#xff0c;聊天信息&#xff09; B、如果双方在线则直接转发给B&#xff0c;不在线则回复私聊失败&#xff0c;对方…
最新文章