当前位置: 首页 > news >正文

day019-特殊符号、正则表达式与三剑客

文章目录

  • 1. 磁盘空间不足-排查流程
  • 2. 李导推荐书籍
    • 2.1 大话存储
    • 2.2 性能之巅
  • 3. 特殊符号
    • 3.1 引号系列(面试题)
    • 3.2 重定向符号
      • 3.2.1 cat与重定向
      • 3.2.2 tr命令:替换字符
      • 3.2.3 xargs:参数转换
      • 3.2.4 标准全量追加重定向
  • 4. 正则表达式
    • 4.1 基础正则
      • 4.1.1 测试文件
      • 4.1.2 查找以I开头的行
      • 4.1.3 查找以m结尾的行
      • 4.1.4 查找非空行
      • 4.1.5 排除sshd配置文件中空行和以#开头的行
      • 4.1.6 过滤出以I开头以!结尾的行
      • 4.1.7 过滤出含有大写字符的行
      • 4.1.8 过滤出含有大写字符或数字的行
      • 4.1.9 过滤出文件中以I或m或n开头的并且以!或数字结尾的行
      • 4.1.10 过滤出以.结尾的行
    • 4.2 扩展正则
      • 4.2.1 查询sshd或rsyslog进程
      • 4.2.2 统计文件中单词次数,取出前5
      • 4.2.3 统计文件中字母次数,取出前5
      • 4.2.4 过滤最少有3个最多有5个连续数字的行
      • 4.2.5 小括号():表示一个整体
  • 5. awk和正则
    • 5.1 取出passwd文件中第1、2列和最后一列
    • 5.2 取出ip a命令中的ip地址
    • 5.3 获取文件中系统的运行时间
    • 5.4 awk取行
  • 6. 思维导图

1. 磁盘空间不足-排查流程

在这里插入图片描述

2. 李导推荐书籍

2.1 大话存储

在这里插入图片描述

2.2 性能之巅

在这里插入图片描述

3. 特殊符号

3.1 引号系列(面试题)

引号说明
反引号执行命令
单引号所见即所得。单引号中的内容不会被解析,直接进行输出。
双引号一些特殊符号会被解析:``,$(),$……
不加引号特殊符号会被解析,额外支持{}、*通配符

3.2 重定向符号

重定向符号说名使用
>或1>标准输出重定向创建文件并写入内容
>>或1>>标准输出追加重定向修改配置文件
2>标准错误输出重定向较少单独使用
2>>标准错误输出追加重定向较少单独使用
>>oldboy.log 2>&1;
&>>oldboy.log
正确输出和错误输出都写入到同一个文件运行脚本或命令时经常使用
<或0<标准输入重定向,与特定命令使用,读取文件内容:tr、xargs其他命令几乎不会用
<<或0<<标准输入追加重定向,cat命令向文件中批量写入多行内容cat常用

3.2.1 cat与重定向

  • cat命令写文件

在这里插入图片描述

  • EOF为标识符标识内容的结束,用其他符号也行。

3.2.2 tr命令:替换字符

[root@oldboy99-Kylin /oldboy]# cat w.txt 16:26:42 up 83 days,  7:42,  1 user,  load average: 0.00, 0.00, 0.0007:05:48 up 18:42,  2 users,  load average: 0.01, 0.01, 0.00
[root@oldboy99-Kylin /oldboy]# tr 'a-z' 'A-Z' < w.txt 16:26:42 UP 83 DAYS,  7:42,  1 USER,  LOAD AVERAGE: 0.00, 0.00, 0.0007:05:48 UP 18:42,  2 USERS,  LOAD AVERAGE: 0.01, 0.01, 0.00
  • tr接受标准输入的数据,将数据中的小写字符都替换成本大写字符

3.2.3 xargs:参数转换

  • xargs的作用:从标准输入接受多个参数并转换成多行
  • seq num:形成一列的序列数字
[root@oldboy99-Kylin /oldboy]# seq 10 > num.txt
[root@oldboy99-Kylin /oldboy]# cat num.txt
1
2
3
4
5
6
7
8
9
10
[root@oldboy99-Kylin /oldboy]# xargs -n 3 < num.txt
1 2 3
4 5 6
7 8 9
10

3.2.4 标准全量追加重定向

  • >>oldboy.log 2>&1
  • &>>oldboy.log
[root@oldboy99-Kylin /oldboy]# echo skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# echo skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# echo skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# echo1 skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# echo1 skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# echo1 skx >> oldboy.log 2>&1
[root@oldboy99-Kylin /oldboy]# cat oldboy.log 
skx
skx
skx
-bash: echo1: command not found
-bash: echo1: command not found
-bash: echo1: command not found

4. 正则表达式

正则表达式:regular expression,对字符进行查找或过滤。

正则表达式符号命令
基础正则^、&、.、*、[]grep、sed、awk
扩展正则|、+、{}、()、?egrep/grep -E、sed -r、awk

4.1 基础正则

4.1.1 测试文件

cat >/oldboy/re.txt<<EOF
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and
chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
EOF

4.1.2 查找以I开头的行

[root@oldboy99-Kylin /oldboy]# grep '^I' re.txt -n
1:I am oldboy teacher!
2:I teach linux.
4:I like badminton ball ,billiard ball and chinese chess!

4.1.3 查找以m结尾的行

  • 文件中以m结尾的行最后还有空格
  • cat -A:显示文件中的隐藏字符
[root@oldboy99-Kylin /oldboy]# cat -A re.txt 
I am oldboy teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://oldboy.blog.51cto.com  $
our size is http://blog.oldboyedu.com  $
$
my qq is 49000448$
not 4900000448.$
$
my god ,i am not oldbey,but OLDBOY!$
[root@oldboy99-Kylin /oldboy]# grep 'm  $' re.txt 
my blog is http://oldboy.blog.51cto.com  
our size is http://blog.oldboyedu.com  

4.1.4 查找非空行

  • ^$:表示过滤空行
[root@oldboy99-Kylin /oldboy]# grep -vn '^$' re.txt 
1:I am oldboy teacher!
2:I teach linux.
4:I like badminton ball ,billiard ball and chinese chess!
5:my blog is http://oldboy.blog.51cto.com  
6:our size is http://blog.oldboyedu.com  
8:my qq is 49000448
9:not 4900000448.
11:my god ,i am not oldbey,but OLDBOY!

4.1.5 排除sshd配置文件中空行和以#开头的行

grep -Evn '^$|^#' /etc/ssh/sshd_config

4.1.6 过滤出以I开头以!结尾的行

  • .:表示任意字符
  • *:表示前一个字符出现0次或多次
[root@oldboy99-Kylin /oldboy]# grep '^I.*!$' re.txt 
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!

4.1.7 过滤出含有大写字符的行

[root@oldboy99-Kylin /oldboy]# grep -n '[A-Z]' re.txt 
1:I am oldboy teacher!
2:I teach linux.
4:I like badminton ball ,billiard ball and chinese chess!
11:my god ,i am not oldbey,but OLDBOY!

4.1.8 过滤出含有大写字符或数字的行

[root@oldboy99-Kylin /oldboy]# grep -n '[A-Z0-9]' re.txt 
1:I am oldboy teacher!
2:I teach linux.
4:I like badminton ball ,billiard ball and chinese chess!
5:my blog is http://oldboy.blog.51cto.com  
8:my qq is 49000448
9:not 4900000448.
11:my god ,i am not oldbey,but OLDBOY!

4.1.9 过滤出文件中以I或m或n开头的并且以!或数字结尾的行

[root@oldboy99-Kylin /oldboy]# grep '^[Imn].*[0-9!]$' re.txt 
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
my qq is 49000448
my god ,i am not oldbey,but OLDBOY!

4.1.10 过滤出以.结尾的行

[root@oldboy99-Kylin /oldboy]# grep -n '\.$' re.txt 
2:I teach linux.
9:not 4900000448.
####################################################
[root@oldboy99-Kylin /oldboy]# grep -n '[.]$' re.txt 
2:I teach linux.
9:not 4900000448.

4.2 扩展正则

4.2.1 查询sshd或rsyslog进程

[root@oldboy99-Kylin /oldboy]# ps -ef |grep -E '[s]shd|[r]syslog'
root         866       1  0 08:27 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root         908       1  0 08:27 ?        00:00:01 /usr/sbin/rsyslogd -n -i/var/run/rsyslogd.pid
root        1670     866  0 09:55 ?        00:00:00 sshd: root [priv]
root        1696    1670  0 09:55 ?        00:00:00 sshd: root@pts/0

4.2.2 统计文件中单词次数,取出前5

  • +:前一个字符出现一次或多次
  • -o:输出匹配的字符
[root@oldboy99-Kylin /oldboy]# grep -Eo '[a-zA-Z]+' re.txt |sort |uniq -c |sort -k1nr |head -53 blog3 I3 is3 my2 am

4.2.3 统计文件中字母次数,取出前5

[root@oldboy99-Kylin /oldboy]# grep -Eo  '[a-zA-Z]' re.txt |sort |uniq -c |sort -k1nr |head -518 o15 l12 b11 i11 t

4.2.4 过滤最少有3个最多有5个连续数字的行

[root@oldboy99-Kylin /oldboy]# grep -E '[0-9]{3,5}' re.txt 
my qq is 49000448
not 4900000448.

4.2.5 小括号():表示一个整体

[root@oldboy99-Kylin /oldboy]# lscpu |grep -E 'L(1d|1i|2|3)'
L1d cache:                          32 KiB
L1i cache:                          32 KiB
L2 cache:                           256 KiB
L3 cache:                           8 MiB
#############################################################
[root@oldboy99-Kylin /oldboy]# lscpu |grep -E 'L(1[di]|[23])'
L1d cache:                          32 KiB
L1i cache:                          32 KiB
L2 cache:                           256 KiB
L3 cache:                           8 MiB

5. awk和正则

  • -F:Field Separator,字段分隔符

5.1 取出passwd文件中第1、2列和最后一列

[root@oldboy99-Kylin ~]# awk -F ':' '{print $1,$2,$NF}' /etc/passwd |head -5 |column -t
root    x  /bin/bash
bin     x  /sbin/nologin
daemon  x  /sbin/nologin
adm     x  /sbin/nologin
lp      x  /sbin/nologin

5.2 取出ip a命令中的ip地址

  • awk按照空格或斜线作为分隔符
[root@oldboy99-Kylin ~]# ip a show ens33 |awk -F '[ /]+' 'NR==3{print $3}'
10.0.0.200

5.3 获取文件中系统的运行时间

文件内容:

cat >> w.txt <<EOF
16:26:42 up 83 days,  7:42,  1 user,  load average: 0.00, 0.00, 0.00
07:05:48 up 18:42,  2 users,  load average: 0.01, 0.01, 0.00
EOF

[root@oldboy99-Kylin /oldboy]# awk -F 'up +|, +[0-9]+ +user' '{print $2}' w.txt 
83 days,  7:42
18:42

在这里插入图片描述

5.4 awk取行

  • awk ‘NR==3’
  • awk ‘NR>=3’
  • awk ‘NR>=3&&NR<=10’
  • awk ‘/匹配行的正则表达式/’ 文件名

  • 在passwd文件中过滤包含root或oldboy的用户信息
[root@oldboy99-Kylin ~]# awk '/^root|^oldboy/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
oldboy:x:1000:1000::/home/oldboy:/bin/bash

6. 思维导图

【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX

相关文章:

day019-特殊符号、正则表达式与三剑客

文章目录 1. 磁盘空间不足-排查流程2. 李导推荐书籍2.1 大话存储2.2 性能之巅 3. 特殊符号3.1 引号系列&#xff08;面试题&#xff09;3.2 重定向符号3.2.1 cat与重定向3.2.2 tr命令&#xff1a;替换字符3.2.3 xargs&#xff1a;参数转换3.2.4 标准全量追加重定向 4. 正则表达…...

学习黑客了解5分钟了解中间人攻击(MITM)

5分钟了解中间人攻击&#xff08;MITM&#xff09;&#x1f575;️‍♂️ 什么是中间人攻击&#xff08;Man-in-the-Middle, MITM&#xff09;&#xff1f; 中间人攻击是一种网络攻击方式&#xff0c;攻击者悄无声息地“夹在”通信两端之间&#xff0c;偷偷读取、篡改、伪造或…...

亚马逊第四个机器人中心将如何降低30%配送成本?

近年来&#xff0c;亚马逊越来越依赖自动化技术来提升仓储效率和配送速度。2024年&#xff0c;亚马逊宣布其全球第四个机器人中心在美国正式投入运营&#xff0c;这一中心将成为改变供应链策略的新变量。据亚马逊官方消息&#xff0c;这一机器人中心有望帮助公司进一步削减运营…...

「AR智慧应急」新时代:当AR眼镜遇上智能监控,打造立体化应急指挥系统

引言&#xff1a;应急管理的未来已来 数字化浪潮正重塑应急管理领域。传统监控系统依赖固定屏幕、被动告警的短板&#xff0c;在复杂突发事件中暴露无遗。而AR眼镜视频监控管理平台应急应急管理平台的三维融合&#xff0c;正开启"上帝视角"指挥时代——通过虚实叠加…...

docker 启动一个python环境的项目

安装镜像 docker pull python:3.8-slim8902端口 启动容器 tail -f /dev/null 持续监听空文件&#xff0c;保持容器活跃 docker run -it \-p 8902:8902 \--name api_mock2 \-v /home/py/test:/app \-w /app \python:3.8-slim \tail -f /dev/null进入容器 docker exec -it api…...

Docker run命令-p参数详解

端口映射基础语法 docker run -p <宿主机端口>:<容器端口> 操作示例 docker run -d --restartalways --namespug -p 5000:80 registry.aliyuncs.com/openspug/spug参数解析 -d&#xff1a;后台运行容器--restartalways&#xff1a;设置容器自动重启--namespug&…...

vue3请求设置responseType: ‘blob‘,导致失败后获取不到返回信息

vue3请求设置responseType: ‘blob’,导致失败后获取不到返回信息 使用FileReader解决 dataCollect().downloadAll(data).then((res: any) > {if (res.type application/json) {const fileReader new FileReader();fileReader.readAsText(new Blob([res], { type: applica…...

在 Windows 系统部署对冲基金分析工具 ai-hedge-fund 的笔记

#工作记录 一、环境准备 在部署对冲基金分析工具ai-hedge-fund前&#xff0c;需提前安装好必备软件&#xff0c;为后续工作搭建好基础环境。 1. 安装 Anaconda Anaconda 集成了 Python 及众多科学计算库&#xff0c;是项目运行的重要基础。从Anaconda 官方网站下载适合 Win…...

基于python的机器学习(八)—— 评估算法(一)

目录 一、机器学习评估的基本概念 1.1 评估的定义与目标 1.2 常见评估指标 1.3 训练集、验证集与测试集的划分 二、分离数据集 2.1 分离训练数据集和评估数据集 2.2 k折交叉验证分离 2.3 弃一交叉验证分离 2.4 重复随机评估和训练数据集分离 三、交叉验证技术 3.…...

广东省省考备考(第十六天5.21)—言语:语句排序题(听课后强化)

错题 解析 对比选项&#xff0c;确定首句。①句介绍目前人类可以利用一些技术手段进入元宇宙&#xff0c;凭借网络重新定义自己&#xff0c;体验一种全新的生活&#xff0c;②句介绍对于多数人来说&#xff0c;首先要弄清楚什么是元宇宙&#xff0c;③句介绍元宇宙是指超越现实…...

什么是实时流数据?核心概念与应用场景解析

在当今数字经济时代&#xff0c;实时流数据正成为企业核心竞争力。金融机构需要实时风控系统在欺诈交易发生的瞬间进行拦截&#xff1b;电商平台需要根据用户实时行为提供个性化推荐&#xff1b;工业物联网需要监控设备状态预防故障。这些场景都要求系统能够“即时感知、即时分…...

计算机视觉与深度学习 | Python实现CEEMDAN-ABC-VMD-DBO-CNN-LSTM时间序列预测(完整源码和数据)

以下是一个结合CEEMDAN、ABC优化VMD、DBO优化CNN-LSTM的完整时间序列预测实现方案。该方案包含完整的数据生成、算法实现和模型构建代码。 完整实现代码 import numpy as np import pandas as pd from PyEMD import CEEMDAN from vmdpy import VMD from sklearn.preprocessing…...

每日Prompt:实物与手绘涂鸦创意广告

提示词 一则简约且富有创意的广告&#xff0c;设置在纯白背景上。 一个真实的 [真实物体] 与手绘黑色墨水涂鸦相结合&#xff0c;线条松散而俏皮。涂鸦描绘了&#xff1a;[涂鸦概念及交互&#xff1a;以巧妙、富有想象力的方式与物体互动]。在顶部或中部加入粗体黑色 [广告文案…...

期刊采编系统安装升级错误

我们以ojs系统为例&#xff1a; PHP Fatal error: Uncaught Error: Call to a member function getId() on null in /esci/data/html/classes/install/Upgrade.inc.php:1019 Stacktrace: #0 /esci/data/html/lib/pkp/classes/install/Installer.inc.php(415): Upgrade->con…...

【linux命令】git命令简单使用

git命令简单使用 1. 将代码下载到到本地2. 查看分支是否正确3. 将工作目录中的变更添加到暂存区&#xff0c;为下一次提交做准备4. 提交更改&#xff0c;添加提交信息5. 将本地的提交推送到远程仓库6.从远端仓库拉取分支代码7.查看修改日志8. 解决冲突 1. 将代码下载到到本地 …...

使用Tkinter写一个发送kafka消息的工具

文章目录 背景工具界面展示功能代码讲解运行环境创建GUI程序搭建前端样式编写功能实现代码 背景 公司是做AR实景产品的&#xff0c;近几年无人机特别的火&#xff0c;一来公司比较关注低空经济这个新型领域&#xff0c;二来很多政企、事业单位都采购了无人机用于日常工作。那么…...

【VS2017】cpp文件字符编码异常导致编译报错

这是一个 wav 转 pcm 的简单demo&#xff0c;但VS2017编译报错 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <inttypes.h> #pragma pack(push, 1) struct TWavHead {int8_t riff[4]; /*!< (4)资源交换文件标志 RIFF */uint32_t file_si…...

Vue3 中 Route 与 Router 的区别

在 Vue Router 中&#xff0c;Route 和 Router 是两个相关但完全不同的概念&#xff1a; 1、Router (路由实例) 定义&#xff1a;Router 是路由器的实例&#xff0c;负责整个应用的路由管理 功能&#xff1a; 管理路由映射表&#xff08;路由配置&#xff09; 提供编程式导航…...

gcc还会有自己的头文件呢?

1. GCC自己的头文件目录 路径&#xff1a; .../lib/gcc/<target>/<version>/include 作用&#xff1a; 这里存放的是GCC编译器自身实现的一些头文件&#xff0c;比如 stdarg.h、float.h、limits.h、varargs.h 等。这些头文件是C/C标准规定必须有的&#xff0c;但…...

YOLO训练输入尺寸代表什么 --input_width 和 --input_height 参数

参数作用 硬件对齐要求 许多边缘计算芯片&#xff08;如 K230&#xff09;的 NPU 对输入尺寸有 内存对齐要求&#xff08;例如 32 的倍数&#xff09;。脚本会自动将你填写的输入尺寸向上对齐到最近的 32 倍数&#xff1a; input_width int(math.ceil(args.input_width / 32.0…...

缓存穿透、缓存击穿、缓存雪崩解决方案

在分布式系统中,缓存是提升性能的关键组件,但也可能面临 缓存穿透、缓存击穿、缓存雪崩 三大典型问题。以下是三者的核心概念、区别及解决方案: 一、缓存穿透(Cache Penetration) 概念 场景:客户端请求 不存在的数据(如恶意攻击的非法 Key),由于缓存和数...

前端面经-nginx/docker

1.如何查看 Linux 系统负载&#xff1f;如何判断负载是否过高&#xff1f; 使用 top、htop 或 uptime 查看系统负载。 负载值&#xff08;Load Average&#xff09;反映 CPU 繁忙程度&#xff0c;理想情况下应小于 CPU 核心数。例如&#xff0c;4 核 CPU 的负载持续超过 4 表示…...

权限控制相关实现

Spring Boot-Shiro-Vue&#xff1a; 这个项目可以满足基本的权限控制需求&#xff0c;前后端都有&#xff0c;开箱即用...

[论文精读]Ward: Provable RAG Dataset Inference via LLM Watermarks

Ward: Provable RAG Dataset Inference via LLM Watermarks [2410.03537] Ward: Provable RAG Dataset Inference via LLM Watermarks ICLR 2025 Rebuttal&#xff1a;Ward: 可证明的 RAG 数据集推理通过 LLM 水印 | OpenReview --- Ward: Provable RAG Dataset Inference v…...

第23天-Python Flet 开发指南

环境准备 pip install flet 示例1:基础计数器应用 import flet as ftdef main(page: ft.Page):page.title = "计数器"page.vertical_alignment = ft.MainAxisAlignment.CENTERtxt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, wid…...

LangGraph(五)——自定义状态

目录 1. 向状态添加键2. 更新工具中的状态3. 构建状态图4. 提示聊天机器人5. 添加人工协助6. 手动更新状态参考 1. 向状态添加键 通过向状态添加name和birthday键来更新聊天机器人对实体生日的研究&#xff1a; from typing import Annotated from typing_extensions import T…...

fatload使用方式

‌Fatload是U-Boot中的一个命令&#xff0c;用于从FAT文件系统加载二进制文件到内存中‌。其基本用法如下&#xff1a; fatload <interface> <dev[:part]> <addr> <filename> <bytes>‌interface‌&#xff1a;所使用的接口&#xff0c;如MMC、…...

Pytorch基础操作

面试的时候&#xff0c;PhD看我简历上面写了”熟悉pytorch框架“&#xff0c;然后就猛猛提问了有关于tensor切片的问题…当然是没答上来&#xff0c;因此在这里整理一下pytorch的一些基础编程语法&#xff0c;常看常新 PyTorch基础操作全解 一、张量初始化 PyTorch的核心数据…...

Femap许可证安装与配置指南

在电磁仿真领域&#xff0c;Femap凭借其卓越的性能和广泛的应用场景&#xff0c;已成为许多工程师和科研人员的首选工具。为了确保您能够顺利安装和配置Femap许可证&#xff0c;本文将提供详细的安装和配置指南&#xff0c;帮助您快速完成设置&#xff0c;开启高效的仿真之旅。…...

家用和类似用途电器的安全 第1部分:通用要求 与2005版差异(7)

文未有本标准免费下载链接。 ——增加了“对峰值电压大于15kV的&#xff0c;其放电电能应不超过350mJ”的要求&#xff08;见8.1.4&#xff09; 1. GB/T4706.1-2024&#xff1a; 8.1.4 如果易触及部件为下述情况,则不认为其是带电的。 ——该部件由安全特低电压供电,且: 对…...

基于Browser Use + Playwright 实现AI Agent操作Web UI自动化

Browser Use是什么 Browser Use是一个开源项目官网&#xff1a;Browser Use - Enable AI to control your browser&#xff0c;专为大语言模型&#xff08;LLM&#xff09;设计的只能浏览器工具&#xff0c;能够让AI像人类一样自然的浏览和操作网页&#xff0c;支持多标签页管…...

【题解-洛谷】B4302 [蓝桥杯青少年组省赛 2024] 出现奇数次的数

题目:B4302 [蓝桥杯青少年组省赛 2024] 出现奇数次的数 题目描述 奇数:指不能被 2 2 2 整除的整数。 例如: 3 3...

Redis SETNX:分布式锁与原子性操作的核心

SETNX 是 Redis 中的一个经典命令&#xff0c;全称是 Set if Not eXists&#xff08;当键不存在时设置值&#xff09;。它的核心作用是原子性地完成 “检查并设置” 操作&#xff0c;常用于分布式锁、防止重复提交等需要 “独占性” 的场景。 一、基本语法与返回值 命令格式&…...

常见字符串相似度算法详解

目录 引言 一、Levenshtein距离&#xff08;编辑距离&#xff09; 1.1 算法原理 1.2 Java实现 1.3 springboot中实现 二、Jaro-Winkler相似度 2.1 算法特点 2.2 Java实现 三、余弦相似度&#xff08;向量空间模型&#xff09; 3.1 实现步骤 3.2 Java实现 3.3 简化版…...

红蓝对抗中的网络安全设备操作手册

目录 &#x1f510; 关键要点 设备操作与实战应用 &#x1f4ca; 1. 防火墙 (Firewall) 蓝队&#xff08;防御&#xff09;用法 红队&#xff08;攻击&#xff09;用法 &#x1f50d; 2. 入侵检测/防护系统 (IDS/IPS) 蓝队&#xff08;防御&#xff09;用法 红队&#…...

用python实现汉字转拼音工具

用python实现汉字转拼音工具 主要功能特点&#xff1a; 多种拼音风格选择&#xff08;带声调符号、数字声调、无声调&#xff09;输出模式&#xff1a;可以选择“普通模式”&#xff08;仅拼音&#xff09;或“拼音注音”&#xff08;每个汉字的拼音显示在上方&#xff09;可…...

spring中的Interceptor使用说明

一、Interceptor 的核心概念 Interceptor&#xff08;拦截器&#xff09; 是 Spring MVC 提供的一种机制&#xff0c;用于在请求处理的不同阶段插入自定义逻辑。其核心作用包括&#xff1a; • 预处理&#xff1a;在控制器方法执行前进行权限校验、日志记录等。 • 后处理&am…...

Wi-Fi(无线局域网技术)

Wi-Fi&#xff08;Wireless Fidelity&#xff0c;无线保真&#xff09;是通过无线电波传输数据的技术&#xff0c;它使设备能够通过无线连接方式访问网络、共享文件或连接互联网。Wi-Fi已经成为现代家庭、办公室以及公共场所中常见的无线通信方式&#xff0c;支持的设备包括手机…...

MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)

引言 MySQL 中 “Host is blocked because of many connection errors” 是生产环境常见问题&#xff0c;若处理不当会导致服务中断。本文结合 MySQL 官方文档&#xff08;5.5/8.0&#xff09;、Java 后端最佳实践及企业级经验&#xff0c;提供从 “快速解封” 到 “根源优化”…...

分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测

分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测 目录 分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测分类效果**功能概述****算法流程** 分类效果 功能概述 数据预处理 读取Excel数据集&#xff0c;划分训练集&#xff08;前260行&#…...

【苍穹外卖】Day01—Mac前端环境搭建

目录 一、安装Nginx &#xff08;一&#xff09;安装Homebrew &#xff08;二&#xff09;Homebrew安装Nginx 1. 执行安装命令&#xff1a; 2. 验证安装&#xff1a; &#xff08;三&#xff09;启动与停止Nginx 二、配置Nginx 1. 替换nginx.conf 2. 替换html文件夹 三…...

anaconda创建环境出错HTTPS

报错信息 warnings.warn( /home/ti-3/anaconda3/lib/python3.12/site-packages/urllib3/connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host ‘repo.anaconda.com’. Adding certificate verification is strongly advised. Se…...

Nginx 强制 HTTPS:提升网站安全性的关键一步

在当今互联网时代&#xff0c;网站的安全性至关重要。使用 HTTPS 协议可以有效保护用户数据&#xff0c;防止信息泄露和中间人攻击。本文将详细介绍如何在 Nginx 中设置强制 HTTPS&#xff0c;确保所有 HTTP 请求都被自动重定向到 HTTPS。 一、背景与重要性 HTTPS&#xff08…...

青藏高原边界数据总集

关键数据集分类&#xff1a;地表参数数据集空间分辨率&#xff1a;m共享方式&#xff1a;开放获取数据大小&#xff1a;265.87 KB数据时间范围:2016元数据更新时间:2022-04-18 数据集摘要 此边界数据总集包含五种类型的边界&#xff1a; &#xff11;、TPBoundary_2500m&#…...

AI赋能R-Meta分析核心技术:从热点挖掘到高级模型

随着人工智能技术的不断进步&#xff0c;Meta分析作为科学研究中的一种重要方法&#xff0c;也在不断地被赋予新的活力。特别是以ChatGPT为代表的AI大语言模型&#xff0c;为Meta分析提供了更为高效和智能的工具。本文将详细介绍AI赋能R-Meta分析的核心技术&#xff0c;并结合实…...

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…...

GPT 等decoder系列常见的下游任务

下面用一句话&#xff0b;四个例子&#xff0c;把上面那张“所有下游任务都要微调”架构图说清楚&#xff1a; 核心思路&#xff1a;不管你要做什么任务&#xff0c;都用同一个 Transformer&#xff08;这里是 GPT&#xff0f;Decoder-Only 模型&#xff09;当“特征抽取器”&a…...

java面试每日一背 day1

1.什么是缓存穿透 缓存穿透是指查询一个数据库中根本不存在的数据&#xff0c;导致这个查询请求绕过缓存直接访问数据库的情况。这种情况如果频繁发生&#xff0c;会对数据库造成不必要的压力。 典型特征&#xff1a; &#xff08;1&#xff09;查询的数据在数据库和缓存中都…...

Spring Boot AI 之 Chat Client API 使用大全

ChatClient提供了一套流畅的API用于与AI模型交互,同时支持同步和流式两种编程模型。 流畅API包含构建Prompt组成元素的方法,这些Prompt将作为输入传递给AI模型。从API角度来看,Prompt由一系列消息组成,其中包含指导AI模型输出和行为的指令文本。 AI模型主要处理两类消息: …...

初识Linux · 五种IO模型和非阻塞IO

目录 前言&#xff1a; 五种IO模型 什么是IO IO模型 非阻塞IO 前言&#xff1a; 前文我们已经将网络的基本原理介绍完了&#xff0c;都是通过围绕TCP/IP四层协议&#xff0c;将应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层全部介绍完毕&#xff0c…...