企业常用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这个文件)

取出Linux中执行ifconfig etho 后对应的IP地址(只能输出IP地址)

方法一:利用正则➕sed替换功能取ip
ifconfig eth0
ifconfig eth0|sed -n ‘2p’
取出来为
inet 10.0.0.130 netmask 255.0.0.0 broadcast 10.255.255.255

ifconfig sed -rn’2s###gp’
目标:10.0.0.130
1.干掉ip前面的部分
10.0.0.130 netmask 255.0.0.0 broadcast 10.255.255.255

2.干掉ip后面的部分
10.0.0.130
技巧:
想要的目标是10.0.0.130,干掉它前面的内容^.*net(如果broadcast后面还有一个inet的话,要进行区分这里变成星点net,如果有空格也可以加上空格,以任意多字符开头,给一个唯一结尾的内容)

ifconfig eth0|sed -rn ‘2s#^.星inet ##gp’
10.0.0.130 netmask 255.0.0.0 broadcast 10.255.255.255

net.*$(net前面有空格)以唯一的内容开头,任意多个字符结尾
ifconfig etho|sed -rn '2s#^.星inet ##gp’|sed -rn
‘s# net.星美元符号##gp’
10.0.0.130

测试题

  1. 取ip a结果的第一块网卡ip
    ip a
    ip a|grep eth0
    ip a|grep eth0|sed -n 2p
    ip a|grep eth0|sed -n 2p|sed -rn ‘s#^.*net ##gp’
    ip a|grep eth0|sed -n 2p|sed -rn 's#^.*net ##gp’|sed -rn ‘s#/B.星$##gp’

一条命令解决:
ip a|sed - rn ‘$#^.*inet(.星)/8 b.星美元符号#\1#gp’

2.取stat /etc/hosts中的数字权限644
stat /etc/hosts
stat /etc/hosts|sed -rn ‘4s#^.*(0##gp’
stat /etc/hosts|sed–rn '4s#^.星\(0##gp’|sed -rn ‘s#/-.星$##gp’

一条命令:
stat /etc/hosts|sed – rn ‘4s#^.*\(0(.星)/–.星$#\1#gp’

用一条sed命令来实现取IP

后向引用:
想要的内容要用括号括起来匹配,因为后面好把它拿出来。()\1进行取出来
ifconfig eth0|sed –rn ‘s#^.星inet (.*) net.星$#\1#gp’
如果inet (. *) 这两个之间没有空格讲会出现,ip后面有空格(不能精准执行)

补充–e多项编辑可以实现减少管道使用

ifconfig eth0|sed -ne ‘2s#^.*inet ##g’ -ne ‘2s# netm.星$##gp’

下一篇给大家写awk知识点,上面常见的sed用法写到这里后面,会给大家更新与补充!

1) 案例01: 取出文件的第3行 ⭐⭐⭐⭐⭐

-n表示取消默认输出,sed处理文件的时候会默认的输出每一行内容.
sed -n ‘3p’ /etc/passwd

2) 案例02: 取出/etc/passwd的第2行到第5行

⭐⭐⭐⭐⭐
sed -n ‘2,5p’ /etc/passwd

3) 案例03: 过滤出/etc/passwd中包含root的行

⭐⭐⭐⭐⭐
⚠ 注意
sed进行过滤的时候需要使用//ˌ并且里面支持基础正则
如果需要使用扩展正则需要使用sed -r选项

grep ‘root’ /etc/passwd
[root@calms~]# sed -n ‘/root/p’
/etc/passwd
root :x :0:0:root:/root:/bin/bash
operator:x :11:0:operator:/root:/sbin/nologin
[root@calms~]#
[root@calms~]# sed -n ‘/^root/p’
/etc/passwd
root:x :0:0:root:/root:/bin/bash

获取范围内的日志 ⭐⭐⭐⭐⭐

试着取出access.log过滤出11:05分到11:06分的日志
cat >/wulin/sed.txtEOF
101,wulin,CEO
102,wulin,CTO
103.wulin996,COO
104,yy,CFO
105,feixue,CIO
110,wuluin,COCO
EOF
1
2
3
4
5
6
7
8
[root@calms~]# sed -n ‘/102/ , /105/p’ sed.txt
102,bbao,CTO
103,wulin996,COO
104,yy,CFO
105,feixue,CIO

增删改查之替换-进阶

后向引用格式

应用说明:
后向引用或反向引用: 适用于sed命令处理/提取一行中的某一部分.sed命令配合正则实现取列.(类似于awk取列)

sed命令中用于处理列的方式.

使用格式:
使用替换的形式 s###g
前2个井号之间通过正则与(),对数据进行分组.
后面2个井号之间通过\数字,去调用前面分组的内容.
整体是后面调用前面分组的内容,称之为反向引用/后向引用.
应用场景: 某一行中对部分数据进行加工与处理,提取某一部分数据

输出12345678
通过sed加工变成1<234567>8
echo 12345678 |sed -r ‘s#(1)(.*)(8)#\1<\2>\3#g’
1<234567>8

案例 取出网卡ip地址

方法01
[root@calms~]# ip a s eth0 | sed -n
‘3p’ | sed -r ‘s#^.et ([0-9.]+)/.$#\1#g’

10.0.0.200
方法02 进阶
sed -n ‘3p’+ sed -r ‘s#^.et ([0-9.]+)/.$#\1#g’

= sed -nr ‘3 s#^.et ([0-9.]+)/.$#\1#g p’
方法03 awk

[root@calms~]# ip a s eth0 | sed -n
‘3p’ |awk ‘{print $2}’ |sed ‘s#/24Վˁg’
10.0.0.200

方法04 awk
[root@calms~]# ip a s eth0 | sed -n
‘3p’ |awk -F “[ /]+” ‘{print $3}’
10.0.0.200

方法05-06 awk
ip a s eth0 | sed -n ‘3p’ |awk -F “[ /]+” ‘{print
$3}’
[root@calms~]# ip a s eth0 | awk -F "
[ /]+" ‘NR=3{print $3}’
10.0.0.200

方法07
hostname -I

取出stat /etc/hosts中的0644或644

[root@calms~]# stat /etc/hosts |sed -
n ‘4p’ | sed -r ‘s#^.(([0-9]+)/.$#\1#g’
0644

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

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

相关文章

阿里天池-淘宝用户购物行为数据可视化分析

目录 背景&#xff1a;数据说明&#xff1a;任务描述数据分析1. 流量分析2.漏斗分析 背景&#xff1a; 本次可视化分析的目的是针对脱敏过的用户行为数据&#xff08;包括浏览、收藏、加购和购买4类数据&#xff09;进行分析&#xff0c;使用Python、Numpy、Pandas和Matplotli…

面试十七、list和deque

一、 Deque Deque容器是连续的空间&#xff0c;至少逻辑上看来如此&#xff0c;连续现行空间总是令我们联想到array和vector,array无法成长&#xff0c;vector虽可成长&#xff0c;却只能向尾端成长&#xff0c;而且其成长其实是一个假象&#xff0c;事实上(1) 申请更大空间 (…

【C++】 二叉排序树BST(二叉搜索树)

目录 二叉搜索树的概念 二叉搜索树操作 基本框架 插入 二叉搜索树的删除(重点) 二叉搜索树的查找 拷贝构造 析构函数 operator 遍历 递归构造搜索二叉树 插入 删除 查找 二叉树的应用 二叉搜索树的性能分析 代码示例 BSTree.h Test.cpp 二叉搜索树的概念 二…

LMDeploy 量化部署 LLM-VLM 实践——作业

LMDeploy 量化部署 LLM-VLM 实践——作业 一、 基础作业1.1、配置 LMDeploy 运行环境1.2、以命令行方式与 InternLM2-Chat-1.8B 模型对话 二、进阶作业2.1、设置 KV Cache 最大占用比例为0.4&#xff0c;开启 W4A16 量化&#xff0c;以命令行方式与模型对话2.1.1、初始显存占用…

52 文本预处理【动手学深度学习v2】

将文本作为字符串加载到内存中。 将字符串拆分为词元&#xff08;如单词和字符&#xff09;。 建立一个词表&#xff0c;将拆分的词元映射到数字索引;将文本转换为数字索引序列&#xff0c;方便模型操作。

linux_python源码安装及基础设置odoo安装

python源码安装及基础设置 1、资源下载2、源码安装3、 yum安装pip4、pip安装虚拟环境1、安装虚拟环境库2、配置环境变量3、创建自己的虚拟环境 5、安装升级pip的两种方式1、get-pip.py升级2、安装源码升级 6、odoo部署 1、资源下载 python3.13 python版本库 2、源码安装 yum…

绿联 安装qbittorrent及一些常见错误的解决办法

绿联 安装qbittorrent及一些常见错误的解决办法 1、镜像 linuxserver/qbittorrent:latest 2、安装 2.1、创建容器 按需决定是否进行资源限制。 2.2、基础设置 2.3、网络 桥接即可。 注&#xff1a;如果使用IPV6&#xff0c;请选择"host"模式。 注&#xff1a;如…

Nodejs安装与配置--基于Linux系统--RedHat7.9

nodejs安装从未这么简单 1、nodejs版本设置&#xff1f; curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - 其他版本如下&#xff1a; * https://rpm.nodesource.com/setup_16.x — Node.js 16 "Gallium" (deprecated) * https://rpm.nodesource.co…

基于python实现web漏洞挖掘技术的研究(django)

基于python实现web漏洞挖掘技术的研究(django) 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;网络爬虫&#xff0c;SQL注入&#xff0c;XSS漏洞工具&#xff1a;pycharm、Navicat、Maven 系统的实现与漏洞挖掘 系统的首页面 此次的系统首页面是登录的页…

(二)Servlet教程——我的第一个Java程序

首先打开记事本&#xff0c;输入如下的代码&#xff0c;请注意字母的大小写 public class MyFirst{ public static void main(String[] args){ System.out.println("This is My first Java..."); } } 将该txt文件命名为MyFirst.java 打开cmd命令行窗口&#xff0…

100吨微机控制电液伺服钢绞线拉伸试验机

一、简介 主机为四立柱、两丝杠、油缸下置式&#xff0c;拉伸空间位于主机的上方&#xff0c;压缩、弯曲试验空间位于主机下横梁和工作台之间。测控系统采用全数字多通道闭环测控系统&#xff0c;具有三闭环功能&#xff0c;即可以进行应力、应变、位移闭环等控制方式&#xf…

ThingsBoard通过规则链使用邮件发送报警信息

1、描述 2、通过规则链路配置发送邮件只需 两步 3、案例 1、基础链路 2、选择变换节点里面的To Email 3、 编辑节点to email 4、 将创建告警与to email链接 5、选择外部节点中的send email 6、配置邮箱相关信息&#xff0c;如过不知道密钥如何获取的&#xff0c;请查看下…

Java转go,我用了12小时,10小时在解决环境问题

Part1 问题背景 作为一个资深的Java开发者&#xff0c;我深知面向对象的高级语言&#xff0c;语法是不用学的。需要的时候搜索就可以了&#xff0c;甚至可以用ChatGPT来写。 之前我做一个安全多因素校验服务。因为是临时服务&#xff0c;扩展性上基本没有要求&#xff0c;为了快…

Opensbi初始化分析:设备初始化

Opensbi初始化分析&#xff1a;设备初始化 设备初始化sbi_init函数coldinit&#xff0c;冷启动初始化sbi_scratch_init函数sbi_domain_init函数sbi_hsm_initsbi_platform_early_initsbi_hart_initsbi_console_initsbi_platform_irqchip_init中断控制器的初始化sbi_ipi_init函数…

AutoPSA的埋地数据

用户在使用埋地算法时&#xff0c;问“不排水抗剪强度”什么意思&#xff1f; A:这个是土壤的参数&#xff0c;如果不填&#xff0c;软件会自动计算. 还有&#xff0c;垫片厚度&#xff0c;覆土压实乘子的数据没有从AutoPDMS导出时&#xff0c;需要手动输入一下。 其他&#…

【数据结构】二叉树链式结构的实现《遍历,实现》(题库+解析+源码)

前言 二叉树的学习离不开对堆的理解&#xff0c;这是上篇堆的传送门 http://t.csdnimg.cn/F6Jp3 1.二叉树链式结构的实现 1.1 前置说明 在学习二叉树的基本操作前&#xff0c;需先要创建一棵二叉树&#xff0c;然后才能学习其相关的基本操作。由于现在大家对二 叉树结构掌握还…

Linux中inode号与日志分析

一.inode号 1.inode表结构 元信息&#xff1a;每个文件的属性信息&#xff0c;比如&#xff1a;文件的大小&#xff0c;时间&#xff0c;类型&#xff0c;权限等&#xff0c;称为文件的元数据(meta data 元信息 ) 元数据是存放在inode&#xff08;index node&#xff09;表中…

python基础知识二(标识符和关键字、输出、输入)

目录 标识符和关键字&#xff1a; 什么是标识符&#xff1f; 1. 标识符 2. 标识符的命名规则 什么是关键字&#xff1f; 1. 关键字 2. 关键字的分类 标识符和关键字的区别&#xff1a; ​​​输出&#xff1a; 1. 普通的输出 2. 格式化输出 格式化操作的目的&#…

【电控笔记6.3】采样-Z转换-零阶保持器

本质 数字转模拟:零阶保持器 采样 z-1所描述的物理意义即为延迟T时间的拉氏转换e-sT 信号采样延时

AI音乐:探索变现之路的新篇章

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;音乐领域也不例外。AI音乐作为一种新兴的音乐创作方式&#xff0c;正逐渐改变着传统音乐产业的格局。然而&#xff0c;如何将AI音乐变现&#xff0c;成为了摆在众多…