C++学习之shell高级和正则表达式
目录
1.正则表达式
2.C中使用正则
3.复习
4.sort命令
5.uniq命令
6.wc命令
7.grep命令
8.find命令
9.xargs命令
10.sed命令
11.awk命令
12.crontab
1.正则表达式
1 管道
使用| 将多个命令拼接在一起
原理,就是将前一个命令的标准输出作为后一个命令的标准输入来重定向 ,标准错误输出是不会重定向
需求,编写一个简单的管道命令,读取标准输入,将标准输入的数据转为大写,然后输出
more 命令
将标准输入的内容进行缓慢向下查看,要人工操作向下
只支持向下走,不支持往回走
less 命令
比more更加完善,支持往回滚,也支持类似vim的操作,查找 hjkl
2.C中使用正则
2 tee 命令
将标准输出重新输出,同时存一份到文件
常用的场景
开一个服务,服务一直在刷log,需要实时看到log,但是又想将log存成一个文件
3.复习
3 文件重定向
cmd > file 把标准输出重定向到新文件中
cmd >> file 追加
cmd > file 2>&1 标准出错也重定向到1所指向的file里
2>&1
文件描述符2 也重定向到文件描述符1的位置
标准错误输出也重定向到标准输出的位置
cmd >> file 2>&1
cmd < file
将file的内容重定向到cmd命令的标准输入
cmd < file1 > file2 输入输出都定向到文件里
cmd < &fd 把文件描述符fd作为标准输入
cmd > &fd 把文件描述符fd作为标准输出
cmd < &- 关闭标准输入
4.sort命令
4 函数
function 函数名() #小括号里边也不需要填参数列表
{
local var=value #局部变量
return 1 #return 只能返回整数,不能返回其他类型 ,返回值是作为退出状态来使用
}
function关键字可以省略 ,小括号也可以省略 ,但是两个必须要保留一个,不然解析器不知道是要定义一个函数
调用函数的方法,就跟普通命令一样
函数名 arg1 arg2 ...
函数的执行状态看return语句,如果没有return语句,就以函数里边最后一条执行的指令的返回状态作为整个函数的退出状态
函数支持递归
遍历目录,包括子目录,如果是文件就输出xxx是文件,如果是目录就输出xxx是目录
函数的传参
也是使用 $1 $2 ... 来获取函数内的参数
#!/bin/bash
function visit
{
local dir="$1"
for f in `ls $1`
do
if [ -f "$dir/$f" ]
then
echo "$dir/$f is a file"
elif [ -d "$dir/$f" ]
then
echo "$dir/$f is a dir"
visit "$dir/$f"
else
echo "$dir/$f is not recognized"
fi
done
}
visit .
脚本的调试
-n 遍历一下脚本,检查语法错误
-v 一遍执行脚本一遍将解析到的脚本输出来
-x 执行脚本的同时打印每一句命令,把变量的值都打印出来 (常用)
打开调试的方法
1. bash -x 脚本.sh
2. 脚本开头 使用 #!/bin/bash -x
3. 脚本中显式的使用 set -x 打开 使用 set +x 关闭调试
5.uniq命令
5 正则表达式
练习:
1 以S开头的字符串
^S
2 以数字结尾的字符串
[0123456789] 匹配任意数字
[0-9]
\d
$ 匹配字符串结尾
[0-9]$
3 匹配空字符串(没有任何字符)
^$
4 字符串只包含三个数字
^\d\d\d$
^\d{3}$
{n} 花括号括起来一个数字,表示前面的单元重复n次
5 字符串只有3到5个字母
控制最少重复次数和最大的重复次数
{m,n} m表示前面单元最小重复次数,n表示最大重复次数
[a-zA-Z] 表示大小写字母 如果中括号中有多个区间,区间之间不要留空格或其他分隔符
^[a-zA-Z]{3,5}$
6 匹配不是a-z的任意字符
[^a-z] 中括号中第一个字符如果是^,表示区间取反
^[^a-z]$
7 字符串有0到1个数字或者字母或者下划线
{0,1} 表示重复0-1次
? 也可以表示0-1次重复
^[0-9a-zA-Z_]?$
^\w?$
8 字符串有1个或多个空白符号(\t\n\r等)
\s 表示空白字符 包括 \t\n\r ....
{1,} 表示重复1-n 跟+号一样
^\s+$
9 字符串有0个或者若干个任意字符(除了\n)
. 代表任意字符,除了\n
^.{,}$ 花括号中两个参数置空表示重复次数任意 0-n
^.*$ *表示前面的单元重复0-n次
? 0-1
+ 1-n
* 0-n
10 匹配0或任意多组ABC,比如ABC,ABCABCABC
使用小括号来讲多个单元重新组合成为一个单元
^(ABC)*$
11 字符串要么是ABC,要么是123
| 表示选择,选择两边的正则匹配一个
^ABC$|^123$
^(ABC|123)$ 小括号也可以将选择范围控制在括号内
12 字符串只有一个点号
做转义 还是使用\
^\.$
13 匹配十进制3位整数
100 - 999
^[1-9][0-9]{2}$
匹配十进制 0-999 的数字
分段
一位数
[0-9]
两位数
10-99
[1-9][0-9]
三位数
[1-9][0-9]{2}
^([0-9]|[1-9][0-9]{1,2})$
14 匹配0-255的整数
匹配 ip
分段
一位数
[0-9]
两位数
10-99
[1-9][0-9]
三位数
100-199
1[0-9]{2}
200-249
2[0-4][0-9]
250-255
25[0-5]
15 匹配端口号
0-65535
16 email
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
基础的正则
+?* 是普通字符
扩展的正则
+?* 是特殊字符
perl的正则
最常用
perl正则在扩展正则之上添加了一些特殊符号
\d \w \s ....
6.wc命令
6 sort
命令从标准输入中读取数据然后按照字符串内容进行排序
-f 忽略字符大小写
-n 比较数值大小
-t 指定分割符,默认是空格或者tab
-k 指定分割后进行比较字段
-u 重复的行只显示一次
-r 反向排序
-R 打乱顺序
同样的两行洗不乱
将/etc/passwd 根据用户id来排序
sort -t: -k3 -n < /etc/passwd
7.grep命令
7 uniq
去除重复的行,前提是重复的行连续
-c 显示每行重复的次数
-d 仅显示重复过的行
-u 仅显示不曾重复的行
sort < test.txt | uniq
8.find命令
9 grep
global regular expression print
-c 只输出匹配行的计数
-i 不区分大小写
-H 文件名显示
-r 递归遍历目录
-n 显示行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行,这个参数经常用于过滤不想显示的行
-E 使用扩展的正则表达
-P 使用perl的正则表达式
-F 匹配固定的字符串,而非正则表达式
egrep = grep -E
fgrep = grep -F
rgrep = grep -r
grep 默认使用的是基础的正则
9.xargs命令
10 find
find pathname -options [-print -exec -ok ...]
option 选项如下:
-name 按照文件名查找文件。
find . -name "1.txt"
-perm 按照文件权限来查找文件。
find . -perm 660
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在
n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-atime 访问时间
-ctime 创建时间
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
-exec
find . -name "*.txt" -exec gzip {} \;
查找当前目录下的txt文件并且打包成为gzip
每找到一个文件,就会执行exec后面的命令
gzip ./a/2.txt
gzip ./a/6.txt
最后是一个\; 反斜杠不能省,作为当前exec后面命令的结束符
-ok
跟-exec用法一样,但是每找到一个文件要执行后面的命令前会给用户确认
10.sed命令
11 xargs
将标准输入的参数整齐的拼凑在一行里边
单独使用该命令没什么用,要配合其他命令来使用
docker ps -aq | xargs docker rm -f
find . -name "*.txt" | xargs -I{} mv {} xxx/
-I{} 指定一个替换字符串作为参数替换
11.awk命令
12 sed
文本1 -> sed + 脚本 -> 文本2
ed 编辑器 -> sed -> vim
sed option 'script' file1 file2 ... sed 参数 ‘脚本(/pattern/action)’ 待处理文件
sed option -f scriptfile file1 file2 ... sed 参数 –f ‘脚本文件’ 待处理文件
p, print 打印
a, append 追加
i, insert 插入
d, delete 删除
s, substitution 替换
12.crontab
13 awk
awk option 'script' file1 file2 ...
awk option -f scriptfile file1 file2 ...
最常见用法就是过滤哪一列
xxxx | awk '{print $2}'
脚本格式
{actions}
每一行文本都无条件的执行脚本
/pattern/{actions}
匹配了模式之后再执行后面的动作
condition{actions}
BEGIN
在遍历文本的第一行之前会执行某个动作
END
在遍历完文本之后再去执行某个动作
ProductA 30
ProductB 76
ProductC 55
在输出表格之前输出表头 产品名字 库存
输出完表格之后 输出 库存总量 : xxxx
在遍历之前输出表头
BEGIN{
printf "%s\t%s\n","产品","库存";
sum=0;
}
在遍历每一行的过程中输出每一行的内容,将库存加到sum变量
{
printf "%s\t%s\n",$1,$2;
sum+=$2;
}
遍历完之后输出sum变量
END{
printf "库存总量:%d\n",sum
}
相关文章:
C++学习之shell高级和正则表达式
目录 1.正则表达式 2.C中使用正则 3.复习 4.sort命令 5.uniq命令 6.wc命令 7.grep命令 8.find命令 9.xargs命令 10.sed命令 11.awk命令 12.crontab 1.正则表达式 1 管道 使用| 将多个命令拼接在一起 原理,就是将前一个命令的标准输出作为后一个…...
SpringBoot获取用户信息常见问题(密码屏蔽、驼峰命名和下划线命名的自动转换)
文章目录 一、不返回password字段二、返回的createTime和updateTime为空原因解决:开启驼峰命名和下划线命名的自动转换 一、不返回password字段 在字段上面添加JsonIgnore注解即可 JsonIgnore // 在把对象序列化成json字符串时,忽略该字段 private Str…...
优化PCB Via Stub系列(2) – 运用U-Turn Via设计破解阻抗匹配困境,改善信号完整性
在PCB设计中,往往透过制程改善如背钻、盲孔或埋孔,来消除不必要的Via stub,可是多出来的制造成本会压低产品的毛利,可是又有什么办法可以不透过制程改善以缩小Via stub带来的SI困扰呢? 本周我们来讲从Layout布局的角度…...
飞鸟游戏模拟器 1.0.3 | 完全免费无广告,内置大量经典童年游戏,重温美好回忆
飞鸟游戏模拟器是一款专为安卓用户设计的免费游戏模拟器,内置了大量经典的童年游戏。该模拟器拥有丰富的游戏资源,目前已有约20,000款游戏,包括多种类型如冒险、动作、角色扮演等。用户可以直接搜索查找想要玩的游戏进行下载并启动。游戏库中…...
钓鱼网页散播银狐木马,远控后门威胁终端安全
在当今网络环境下,许多人都有通过搜索引擎下载应用程序的习惯,虽然这种方式简单又迅速,但这也可能被不法分子所利用,通过设置钓鱼网站来欺骗用户。这些钓鱼网站可能会通过各种方式吸引用户点击,从而进行病毒的传播&…...
一文读懂 JavaScript 中的深浅拷贝
在 JavaScript 编程里,深浅拷贝是处理数据时极为关键的概念。理解它们的差异,能帮我们规避许多数据操作上的 “陷阱”。今天,咱们就借助简单的 “abc” 相关示例,深入探索深浅拷贝的奥秘,并且通过在浏览器控制台输出结…...
5G技术在工业4.0中的应用:连接未来,驱动智能制造
5G技术在工业4.0中的应用:连接未来,驱动智能制造 引言 工业4.0,作为第四次工业革命的核心,已经在全球范围内掀起了智能制造的浪潮。它不仅包括了自动化生产、智能物流、云计算和大数据的应用,更是融合了互联网、物联网…...
驱动开发硬核特训 · Day 25 (附加篇):从设备树到驱动——深入理解Linux时钟子系统的实战链路
一、前言 在嵌入式Linux开发中,无论是CPU、外设控制器,还是简单的GPIO扩展器,大多数硬件模块都离不开时钟信号的支撑。 时钟子系统(Clock Subsystem),作为Linux内核中基础设施的一部分,为设备…...
数据结构---单链表的增删查改
前言: 经过了几个月的漫长岁月,回头时年迈的小编发现,数据结构的内容还没有写博客,于是小编赶紧停下手头的活动,补上博客以洗清身上的罪孽 目录 前言 概念: 单链表的结构 我们设定一个哨兵位头节点给链…...
【codeforces 2104D,E】欧拉筛,字符串上dp
【codeforces 2104D,E】欧拉筛,字符串上dp Problem - D - Codeforces 题意: 给定一个长度为 n n n的数组 a 1 , a 2 , . . . , a n a_1, a_2, ... , a_n a1,a2,...,an,其中 2 ≤ a i ≤ 1 0 9 2 \leq a_i \leq 10^9 2≤…...
UEC++第15天|番茄插件、实现跳跃、实现背景运动
这是flyBird的第二天,做了一些简单的功能,明天继续更新 vs的番茄插件 在visual stdudio里使用可以帮助代码补全,这一篇博客写的不错,大家可以参考一下。VS2019 安装番茄助手(Visual Assist x 插件)攻略_vs…...
论文笔记-基于多层感知器(MLP)的多变量桥式起重机自适应安全制动与距离预测
《IET Cyber-Systems and Robotics》出版山东大学 Tenglong Zhang 和 Guoliang Liu 团队的研究成果,文章题为“Adaptive Safe Braking and Distance Prediction for Overhead Cranes With Multivariation Using MLP”。 摘要 桥式起重机的紧急制动及其制动距离预测是…...
[论文阅读]Adversarial Semantic Collisions
Adversarial Semantic Collisions Adversarial Semantic Collisions - ACL Anthology Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP) 对抗样本是相似的输入但是产生不同的模型输出,而语义冲突是对抗样本的逆…...
Redis Sentinel 和 Redis Cluster 各自的原理、优缺点及适用场景是什么?
我们来详细分析下 Redis Sentinel (哨兵) 和 Redis Cluster (集群) 这两种方案的原理和使用场景。 Redis Sentinel (哨兵) 原理: Sentinel 本身是一个或一组独立于 Redis 数据节点的进程。它的核心职责是监控一个 Redis 主从复制 (Master-Slave) 架构。多个 Sentinel 进程协同…...
面向人工智能、量子科技、人形机器人等产业,山东启动制造业创新中心培育认定
从山东省工业和信息化厅了解到,2025年山东省制造业创新中心培育和认定已启动,重点面向全省传统优势产业、新兴产业及未来产业等领域,鼓励具备条件的龙头企业牵头创建省制造业创新中心。 今年,山东重点面向全省冶金、化工、轻工、…...
无锡哲讯科技:SAP财务系统——赋能企业智慧财务管理
数字化时代,财务管理的新挑战 在全球化竞争和数字经济快速发展的背景下,企业财务管理正面临前所未有的挑战。传统的财务核算方式效率低下、数据孤岛严重、决策滞后,难以满足现代企业高效运营的需求。如何实现财务数据的实时整合࿱…...
Linux命令使用记录(自用)
阿里开源镜像站:https://developer.aliyun.com/mirror/?spma2c6h.13651102.0.0.6c2a1b11I9pmUD&serviceTypemirror&tag top命令 top [选项] -p 只显示某个进程的信息 -d 设置刷新时间,默认是5s -c 显示产生进程的完整命令,默认是进程…...
Spring Security 的 CSRF 防护机制
CSRF:跨站请求伪造(Cross-Site Request Forgery) Spring Security 中的 .csrf() 是用来开启或配置这种保护机制,防止恶意网站“冒充用户”向你的网站发起请求。 一、CSRF 攻击原理简要 CSRF 的典型攻击场景如下: 用…...
跨平台项目部署全攻略:Windows后端+Mac前端在服务器的协同实战
当你的后端(Flask+MySQL,Windows开发)与前端(Vue,Mac开发)需要统一部署到服务器并实现交互时,完全可以通过「跨平台适配+反向代理」方案实现。本文将分步骤讲解如何在 Linux服务器(推荐)或 Windows服务器 上部署,并解决跨平台兼容性、跨域请求等核心问题。 一、技术…...
第八章 磁盘管理未完待续
1.磁盘管理 磁盘简介 名词:磁盘/硬盘/disk 存储设备类型从工作原理区分 机械 机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及 控制电机,磁头控制器,数据转换器,接口&…...
杰理AC79-WiFi 的 AP、STA 和 Monitor 模式
WiFi 的 AP、STA 和 Monitor 模式是无线网卡的不同工作模式,它们的区别如下: AP 模式(Access Point 模式,接入点模式) 功能:将有线网络转换为无线网络,允许其他无线设备连接到该网络ÿ…...
MAC安装unar并解压.rar文件
MAC上默认解压.zip文件,对.rar文件进行解压需要安装专门对软件。本文记录如何在命令行安装unar并对.rar文件进行解压。 命令行安装 brew install unar打印如下log则安装成功 使用brew list unar检查是否安装成功 brew list unar使用unar解压 unar 文件名.rar...
`nmi_watchdog` 与 `softlockup_panic` 的区别与关系
1. 功能区别 参数作用触发条件影响nmi_watchdog启用 NMI(不可屏蔽中断)看门狗检测 CPU 是否长时间不执行调度(软死锁)仅记录警告(默认),需配合 softlockup_panic 才会触发 panicsoftlockup_pan…...
【Bash】可以请您解释性地说明一下“2>1”这个语法吗?
Qwen3-235B 当然可以!我们一步步拆解 2>&1 的含义,用生活化的例子来理解它: 🧠 前提知识:三个“水流通道” 在 Linux/Unix 系统中,程序运行时有三种默认的“水流通道”: 标准输入&…...
打造美观 API 文档:Spring Boot + Swagger 实战指南
目录 打造美观 API 文档:Spring Boot Swagger 实战指南导语一、Swagger 简介二、Spring Boot 2 集成 Swagger1. 添加依赖2. 配置 Swagger3. 访问 Swagger UI 三、Spring Boot 3 集成 Swagger1. 添加依赖2. 配置 Swagger3. 访问 Swagger UI 四、多种接口文档风格展示…...
如何在 Android 上恢复已删除的照片?:简短指南
没有什么比不小心从 Android 智能手机中删除所有照片更糟糕的了。这样,除非您在重置之前已经备份了数据,否则您的所有照片都会消失。如果您忘记备份照片,您仍然可以按照一些简单的技术在 Android 设备上恢复已删除的照片。 如何在 Android 上…...
第十六届蓝桥杯大赛网安组--几道简单题的WP
目录 1. ezEvtx 2.flowzip 3.Enigma 4.星际XML解析器 1. ezEvtx 题目内容 EVTX文件是Windows操作系统生成的事件日志文件,用于记录系统、应用程序和安全事件。(本题需要选手找出攻击者访问成功的一个敏感文件,提交格式为flag{文件名},其中…...
Element:Cheack多选勾选效果逻辑判断
效果展示 取消子级勾选,父级的勾选效果 代码合集 (1)组件代码 fromlist.cheackType 类型,permissio表示是权限. fromlist:[{id:1,children:[{...}]},...]传递的数据大致结构 <!-- 操作权限 --><template v-if"…...
从摄像头到 RAW 数据:MJPEG 捕获与验证
从摄像头捕获 MJPEG 原始数据:完整指南与验证方法 🔍 引言 MJPEG(Motion JPEG)是一种常见的视频压缩格式,广泛应用于摄像头、监控系统和嵌入式设备。在某些场景下,我们需要直接从摄像头获取 MJPEG 原始数据…...
【展位预告】正也科技将携营销精细化管理解决方案出席中睿营销论坛
在医药行业面临政策深化、技术迭代、全球化竞争的多重挑战下,第二届中睿医药健康生态生长力峰会暨第三十五届中睿医药营销论坛将于广州盛大启幕。5月19-20日本次峰会以“聚焦政策变革、把握产业趋势、构建生态共赢”为核心,旨在通过全产业链资源整合与创…...
记录 Flink jdbc、mysql-cdc 连接 mysql8 碰到的适配问题
前言 记录 Flink jdbc、mysql-cdc 连接 mysql8 碰到的小问题 版本 Flink 1.15.3mysql-cdc 2.3.0MySQL 8.0.27 cdc_mysql2mysql MySQL5 之前主要用 MySQL5 ,下面是 MySQL5 的 sql ,具体见 Flink MySQL CDC 使用总结 set yarn.application.namecdc_mysql2mysql;…...
TCP概念+模拟tcp服务器及客户端
目录 一、TCP基本概念 二、ser服务器代码 三、cil客户端代码 一、TCP基本概念 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。以下是TCP的一些基本概念: 面向连接&…...
高翔《视觉SLAM十四讲》第七章视觉里程计3d-2d位姿估计代码详解与理论解析
高翔《视觉SLAM十四讲》第七章代码详解与理论解析 一、三维空间位姿估计核心算法实现 在视觉SLAM领域,3D - 2D位姿估计是确定相机在三维空间中位置和姿态的关键技术。本部分将详细解析其工程实现框架,同时说明代码模块的划分逻辑。 代码整体结构清晰,各模块分工明确,主要…...
Elasticsearch 内存使用指南
作者:来自 Elastic Valentin Crettaz 探索 Elasticsearch 的内存需求以及不同类型的内存统计信息。 Elasticsearch 拥有丰富的新功能,帮助你为你的使用场景构建最佳搜索解决方案。浏览我们的示例笔记本了解更多信息,开始免费云试用࿰…...
【Stable Diffusion】原理详解:从噪声到艺术的AI魔法
引言 Stable Diffusion是 stability.ai 开源的图像生成模型,是近年来AI生成内容(AIGC)领域最具突破性的技术之一。它通过将文本描述转化为高分辨率图像,实现了从“文字到视觉”的创造性跨越。其开源特性与高效的生成能力ÿ…...
并发设计模式实战系列(9):消息传递(Message Passing)
🌟 大家好,我是摘星! 🌟 今天为大家带来的是并发设计模式实战系列,第九章消息传递(Message Passing),废话不多说直接开始~ 目录 一、核心原理深度拆解 1. 消息传递架构 2. 并发…...
【MCP Node.js SDK 全栈进阶指南】高级篇(3):MCP 安全体系建设
背景 随着MCP协议在企业和个人应用中的广泛采用,安全性已成为MCP系统设计和开发中不可忽视的核心要素。一个健壮的MCP安全体系不仅能保护敏感数据和用户隐私,还能确保AI模型与外部工具交互的可靠性和完整性。本文将深入探讨MCP TypeScript-SDK的安全体系建设,帮助开发者构建…...
C++智能指针
智能指针是C中用于自动管理动态分配内存的类模板,它们通过在适当的时机自动释放内存来帮助防止内存泄漏。C11引入了以下几种主要的智能指针: 1. std::unique_ptr 独占所有权的智能指针,同一时间只能有一个unique_ptr指向特定对象。 #inclu…...
基于STM32、HAL库的ATECC608B安全验证及加密芯片驱动程序设计
一、简介: ATECC608B是Microchip公司生产的一款安全加密芯片,提供以下主要特性: 基于硬件的高安全性加密算法 ECC P-256加密引擎 SHA-256哈希算法 AES-128加密 真随机数生成器(TRNG) 16KB安全存储空间 IC接口(最高1MHz) 低功耗设计,适合物联网应用 二、硬件接口: ATECC60…...
【安全扫描器原理】ICMP扫描
【安全扫描器原理】ICMP扫描 1.ICMP协议概述2.ping命令3.tracert命令4.ICMP通信实例5.ICMP协议内容6.ICMP扫描的安全性7.ICMP扫描器的原理及优化策略1.ICMP协议概述 ICMP是TCP/IP协议族中的一个重要协议,主要用于在IP主机之间、主机和路由器之间传递控制消息,这些控制消息包…...
前端 AI 开发实战:基于自定义工具类的大语言模型与语音识别调用指南
在人工智能技术快速发展的今天,将大语言模型(LLM)和语音识别(ASR)功能集成到前端应用中,已经成为提升用户体验、打造智能化应用的重要手段。本文将结合一段实际的 AI 工具类代码,详细讲解如何在…...
组件轮播与样式结构重用实验
任务一:使用“Swiper 轮播组件”对自行选择的图片和文本素材分别进行轮播,且调整对应的“loop”、“autoPlay”“interval”、“vertical”属性,实现不同的轮播效果,使用Swiper 样式自定义,修改默认小圆点和被选中小圆…...
(计数)洛谷 P8386 PA2021 Od deski do deski/P10375 AHOI2024 计数 题解
题意 给定 n n n, m m m,求满足以下限制的长度为 n n n 的序列数目: 每个元素在 [ 1 , m ] [1,m] [1,m] 之间;一次操作定义为删除一个长度至少为 2 2 2 且区间两端相等的区间,该序列需要在若干次操作内被删空。 …...
基于C++数据结构双向循环链表实现的贪吃蛇
大二上数据结构I-课程设计 1.设计思路 建模:程序界面是一个二维平面图蛇:蛇的身体可以看作是链表的节点,当蛇吃到食物时,就增加一节链表节点食物:相应地在边界内随机生成蛇的移动:取得上下左右键的ASCII码…...
H3C ER3208G3路由实现内网机器通过公网固定IP访问内网服务器
内网机器可以通过内网访问服务器;公网机器可以通过公网固定IP访问服务器;但内网机器无法通过公网固定IP访问内网服务器;想实现内网机器通过公网固定IP访问内网服务器 WEB登录管理后台,网络设置->NAT配置,选“高级配…...
Vue3+Three JS高德地图自定义经纬度实现围栏
Vue3实现代码 index.html需要引入three.js <script src"https://cdn.jsdelivr.net/npm/three0.142/build/three.js"></script> 围栏组件 <template><div id"mapContainer" ref"mapContainer"></div> </templ…...
远程访问你的家庭NAS服务器:OpenMediaVault内网穿透配置教程
文章目录 前言1. OMV安装Cpolar工具2. 配置OMV远程访问地址3. 远程访问OMV管理界面4. 固定远程访问地址 前言 在这个数据爆炸的时代,无论是管理家人的照片和视频,还是企业老板处理财务报表和技术文档,高效的数据管理和便捷的文件共享已经变得…...
4.2.3 MYSQL事务原理分析
文章目录 4.2.3 MYSQL事务原理分析1. 事务1. 前提:并发连接访问2. 事务定义3. 事务语句:4. acid特性5. undolog-回滚日志6. redolog-重做日志 2. 隔离级别1. 四种隔离级别2. 并发问题解释3. 隔离级别设置 3. MVCC(Multiversion Concurrency Control&…...
极狐GitLab 如何使用文件导出迁移项目和群组?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 用文件导出迁移项目和群组 (FREE ALL) 推荐使用 直接传输 迁移群组和项目。然而,在某些情况下,您可能…...
Linux/AndroidOS中进程间的通信线程间的同步 - 管道和FIFO
前言 管道是 UNIX 系统上最古老的 IPC 方法,它在 20 世纪 70 年代早期 UNIX 的第三个版本上就出现了。管道为一个常见需求提供了一个优雅的解决方案:给定两个运行不同程序的进程,在 shell 中如何让一个进程的输出作为另一个进程的输入呢&…...