学习黑客5 分钟深入浅出理解Linux Logs [特殊字符]
5 分钟深入浅出理解Linux Logs 📝
大家好!今天我们将探索Linux系统中的日志机制——这是系统管理和安全分析的重要组成部分。在网络安全学习特别是TryHackMe平台上的挑战中,理解和分析日志是发现入侵痕迹、追踪攻击者行为和收集证据的关键技能。让我们开始这段探索之旅吧!🚀
1. 日志系统基础概念 📋
“日志是系统的黑匣子,对安全分析师而言,它们是揭示真相的时间机器。”
日志是系统、应用程序和服务自动生成的记录文件,记录了系统中发生的事件和活动。这些记录对于:
- 🔍 监控系统健康状况
- 🛡️ 检测安全事件和入侵
- 🔧 排查系统和应用程序故障
- 📊 分析用户行为和系统性能
- 🕵️ 进行数字取证和事件响应
都至关重要。
Linux日志系统架构:
Linux日志系统
├── 日志生成器 (内核、服务、应用程序)
├── 日志传输机制
├── 日志处理服务/系统
│ ├── syslog (传统)
│ ├── rsyslog (增强版)
│ ├── syslog-ng (新一代)
│ └── systemd-journald (systemd系统)
└── 日志存储├── 本地文件系统 (/var/log/)└── 远程日志服务器
2. 主要日志类型和位置 🗂️
Linux系统中的日志文件主要集中在/var/log/
目录下:
日志文件/目录 | 内容 | 安全重要性 |
---|---|---|
/var/log/syslog 或 /var/log/messages | 系统范围的消息和事件 | ⭐⭐⭐⭐⭐ |
/var/log/auth.log 或 /var/log/secure | 认证和授权事件 | ⭐⭐⭐⭐⭐ |
/var/log/kern.log | 内核消息 | ⭐⭐⭐⭐ |
/var/log/cron | 定时任务执行情况 | ⭐⭐⭐ |
/var/log/maillog 或 /var/log/mail.log | 邮件服务器日志 | ⭐⭐⭐ |
/var/log/httpd/ 或 /var/log/apache2/ | Web服务器日志 | ⭐⭐⭐⭐⭐ |
/var/log/nginx/ | Nginx web服务器日志 | ⭐⭐⭐⭐⭐ |
/var/log/mysql/ 或 /var/log/mariadb/ | 数据库服务器日志 | ⭐⭐⭐⭐ |
/var/log/apt/ 或 /var/log/dnf/ | 包管理器日志 | ⭐⭐⭐ |
/var/log/btmp | 失败的登录尝试记录 | ⭐⭐⭐⭐⭐ |
/var/log/wtmp | 登录/登出历史记录 | ⭐⭐⭐⭐ |
/var/log/utmp | 当前登录用户 | ⭐⭐⭐⭐ |
/var/log/lastlog | 每个用户最后登录信息 | ⭐⭐⭐⭐ |
/var/log/journal/ | systemd日志(journal) | ⭐⭐⭐⭐⭐ |
/var/log/audit/ | 审计日志 | ⭐⭐⭐⭐⭐ |
3. 日志查看常用命令 🔍
基本查看命令:
# 查看文本日志文件
cat /var/log/syslog
less /var/log/auth.log
tail -f /var/log/messages # 实时查看# 查看二进制日志文件
last # 查看wtmp(登录历史)
lastb # 查看btmp(失败登录)
lastlog # 查看lastlog文件# 使用journalctl查看systemd日志
journalctl # 查看所有日志
journalctl -u sshd # 查看特定服务的日志
强大的日志过滤和搜索:
# grep搜索特定内容
grep "Failed password" /var/log/auth.log
grep -i "error" /var/log/syslog# 多文件搜索
grep "sudo" /var/log/*.log# 时间过滤
journalctl --since "2025-05-09 10:00:00" --until "2025-05-10 11:00:00"# 组合过滤
grep "sshd" /var/log/auth.log | grep "Failed password" | grep "root"# 查看特定的最近日志
tail -n 100 /var/log/apache2/access.log | grep "192.168.1.1"
4. syslog和日志格式 📊
syslog格式详解:
大多数系统日志遵循syslog格式,基本结构为:
时间戳 主机名 程序名[进程ID]: 消息内容
例如:
May 10 03:15:22 webserver sshd[12345]: Failed password for invalid user admin from 192.168.1.100 port 43210 ssh2
syslog严重性级别:
代码 | 级别 | 描述 | 示例 |
---|---|---|---|
0 | emerg | 系统不可用的紧急情况 | 系统崩溃 |
1 | alert | 需要立即修复的警报 | 数据库损坏 |
2 | crit | 严重错误 | 硬件故障 |
3 | err | 错误状态 | 文件系统已满 |
4 | warning | 警告信息 | 配置错误 |
5 | notice | 正常但重要的事件 | 服务启动/停止 |
6 | info | 信息消息 | 定期状态更新 |
7 | debug | 调试信息 | 详细的程序执行 |
设施(Facility)代码:
代码 | 设施 | 描述 |
---|---|---|
0 | kern | 内核消息 |
1 | user | 用户级消息 |
2 | 邮件系统 | |
3 | daemon | 系统守护进程 |
4 | auth | 认证/安全消息 |
5 | syslog | syslog内部消息 |
6 | lpr | 打印系统 |
7 | news | 网络新闻系统 |
8 | uucp | UUCP子系统 |
… | … | … |
16-23 | local0-local7 | 本地使用 |
5. 关键安全日志和入侵指标 🔐
在安全分析中,以下是需要特别关注的日志事件:
SSH相关日志(auth.log/secure):
日志模式 | 描述 | 安全意义 |
---|---|---|
Failed password for ... from ... | 失败的密码尝试 | 可能的暴力破解攻击 |
Accepted password for ... from ... | 成功的密码登录 | 确认有效访问 |
Invalid user ... from ... | 尝试登录不存在的用户 | 用户名枚举或暴力破解 |
Connection closed by ... | SSH连接断开 | 可能的连接探测 |
pam_unix(sshd:auth): authentication failure | PAM认证失败 | 认证尝试失败 |
sudo日志(auth.log/secure):
May 10 03:17:15 server sudo: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/bin/cat /etc/shadow
Web服务器访问日志:
Apache格式:
192.168.1.100 - - [10/May/2025:03:18:15 +0000] "GET /admin.php HTTP/1.1" 404 287 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
关键入侵指标:
- 404错误中包含SQL注入尝试 (
' OR 1=1 --
) - 尝试访问敏感文件 (
/etc/passwd
,.git/HEAD
) - 异常的User-Agent字符串
- 短时间内大量请求
- POST请求到异常文件/路径
6. 在TryHackMe和安全测试中的应用场景 🏆
场景1:检测暴力破解攻击
# 查找失败的SSH登录尝试
grep "Failed password" /var/log/auth.log# 统计每个IP的失败尝试次数
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr# 查找所有超过10次失败尝试的IP
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | awk '$1 > 10 {print $2}'
场景2:追踪入侵者活动
当发现可疑IP成功登录后:
# 查找该IP的所有活动
grep "192.168.1.100" /var/log/auth.log# 查找成功登录后执行的命令(如果启用了history日志)
grep -A 50 "Accepted password for user" /var/log/auth.log | grep "COMMAND"# 检查Web服务器访问
grep "192.168.1.100" /var/log/apache2/access.log
场景3:识别特权升级和异常行为
# 检查sudo使用记录
grep "sudo" /var/log/auth.log | grep "COMMAND"# 查找账户创建
grep -E "useradd|adduser" /var/log/auth.log# 检查安全更改
grep -E "passwd|chmod|chown" /var/log/auth.log
场景4:监控系统修改
# 查找包管理器活动
cat /var/log/apt/history.log
grep -i "install" /var/log/apt/history.log# 查找服务更改
journalctl _SYSTEMD_UNIT=ssh.service
journalctl -u cron
7. 日志分析技术和工具 🛠️
基本分析技巧:
# 提取常见攻击模式
grep -E "sqlmap|nikto|gobuster|masscan" /var/log/apache2/access.log# 查看特定时间段的事件
sed -n '/May 10 03:15/,/May 10 03:30/p' /var/log/syslog# 合并多个日志
cat /var/log/auth.log /var/log/apache2/access.log | sort -k1,3M -k4n -s
常用日志分析工具:
工具 | 用途 | 安装命令 |
---|---|---|
logwatch | 日志总结和报告 | apt install logwatch |
goaccess | 实时Web日志分析 | apt install goaccess |
lnav | 日志导航器 | apt install lnav |
logstalgia | 日志可视化 | apt install logstalgia |
logrotate | 日志轮转管理 | apt install logrotate |
logcheck | 日志检查和异常报警 | apt install logcheck |
auditd | 系统审计 | apt install auditd |
使用lnav进行高级分析:
# 安装lnav
apt install lnav# 同时分析多个日志
lnav /var/log/auth.log /var/log/apache2/access.log# lnav支持语法高亮、过滤和SQL查询!
# 示例SQL查询(在lnav中按下:):
:select c_ip, count(*) as count from access_log group by c_ip order by count desc limit 10
8. systemd journal系统 📔
Systemd journal是现代Linux系统上的强大日志系统:
# 基本查询
journalctl # 查看所有日志
journalctl -b # 当前启动的日志
journalctl -b -1 # 上次启动的日志
journalctl -u ssh # 特定服务的日志
journalctl -p err # 按优先级过滤(error及以上)# 高级过滤
journalctl _SYSTEMD_UNIT=ssh.service _PID=1234 --since "2 hours ago"
journalctl -x -o json-pretty # JSON格式输出,包含额外信息
journalctl --disk-usage # 查看日志占用空间
Systemd字段搜索:
字段 | 描述 | 示例 |
---|---|---|
_SYSTEMD_UNIT | 相关的systemd单元 | journalctl _SYSTEMD_UNIT=ssh.service |
_PID | 进程ID | journalctl _PID=1234 |
_UID | 用户ID | journalctl _UID=1000 |
_COMM | 命令名称 | journalctl _COMM=bash |
_EXE | 可执行文件路径 | journalctl _EXE=/usr/sbin/sshd |
PRIORITY | 消息优先级 | journalctl PRIORITY=3 |
_HOSTNAME | 主机名 | journalctl _HOSTNAME=server1 |
MESSAGE | 日志消息 | journalctl MESSAGE="Failed password" |
9. 日志安全和保全 🔒
日志安全最佳实践:
- 远程日志服务器:
# 在rsyslog.conf中配置远程日志
echo "*.* @192.168.1.200:514" >> /etc/rsyslog.conf
systemctl restart rsyslog
- 日志轮转:防止日志文件过大和覆盖
# 在/etc/logrotate.d/中配置
cat > /etc/logrotate.d/custom-logs << EOF
/var/log/custom/*.log {dailyrotate 30compressdelaycompressmissingoknotifemptycreate 0640 root adm
}
EOF
- 日志文件权限:
# 设置适当的权限
chmod 0600 /var/log/auth.log
chown root:adm /var/log/auth.log
- 日志加密:
# 使用stunnel加密日志传输
apt install stunnel4
# 配置stunnel...
- 日志完整性:
# 使用AIDE监控日志完整性
apt install aide
aide --init
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 定期检查
aide --check
防止日志篡改:
威胁 | 对策 |
---|---|
日志删除 | 远程日志服务器,只读媒体备份 |
日志修改 | 完整性检查,哈希值验证 |
日志溢出 | 适当的日志轮转,磁盘空间监控 |
日志注入 | 输入验证,日志过滤 |
时间篡改 | NTP时间同步,时间戳签名 |
10. 高级日志技术 🚀
日志聚合和中央管理:
ELK Stack (Elasticsearch, Logstash, Kibana)
├── Filebeat/Fluentd - 收集日志
├── Logstash - 处理和转换日志
├── Elasticsearch - 存储和索引
└── Kibana - 可视化和分析
建立日志基线:
# 创建正常行为基线
grep "sshd" /var/log/auth.log > baseline_ssh.log
grep "login" /var/log/auth.log > baseline_login.log# 使用diff比较变化
diff baseline_ssh.log <(grep "sshd" /var/log/auth.log)
利用swatch进行实时监控:
# 安装swatch
apt install swatch# 配置示例
cat > ~/.swatchrc << EOF
watchfor /Failed password/echo boldmail addresses=admin@example.com,subject=SSH Brute Force Attempt
EOF# 启动监控
swatch --tail-file=/var/log/auth.log
11. 常见问题排查 🔧
问题 | 可能原因 | 解决方案 |
---|---|---|
日志缺失 | 服务未启动, 日志已清除 | 检查日志服务状态, 恢复备份 |
日志不更新 | 日志服务问题, 磁盘满 | 重启服务, 清理空间 |
时间戳错误 | 系统时间不准确 | 配置NTP时间同步 |
权限问题 | 日志文件权限错误 | 修复权限设置 |
日志大小膨胀 | 调试开启, 攻击行为 | 调整日志级别, 配置logrotate |
排查日志服务问题:
# 检查rsyslog状态
systemctl status rsyslog# 检查日志目录空间
df -h /var/log# 测试日志系统
logger "Test log message"
tail -1 /var/log/syslog# 检查日志配置语法
rsyslogd -N1
12. 日志分析速查表 📋
常用日志路径:
发行版 | 系统日志 | 认证日志 | Web服务器日志 |
---|---|---|---|
Debian/Ubuntu | /var/log/syslog | /var/log/auth.log | /var/log/apache2/ |
RHEL/CentOS | /var/log/messages | /var/log/secure | /var/log/httpd/ |
常用命令:
操作 | 命令 |
---|---|
查看日志内容 | cat , less , more , tail |
实时监控 | tail -f /var/log/file.log |
搜索内容 | grep "pattern" /var/log/file.log |
二进制日志查看 | last , lastb , lastlog |
统计分析 | awk , cut , sort , uniq |
systemd日志 | journalctl |
日志流分析 | lnav |
安全事件搜索:
安全事件 | 搜索命令 |
---|---|
SSH暴力破解 | grep "Failed password" /var/log/auth.log |
特权命令执行 | grep "sudo:" /var/log/auth.log |
Web攻击 | `grep -E "../ |
账户创建 | `grep -E "useradd |
恶意扫描 | `grep -E "nikto |
13. TryHackMe安全挑战中的日志分析技巧 🕵️
在TryHackMe平台上,日志分析是许多挑战的核心技能:
取证挑战中的日志分析:
-
检查可疑时间段:根据题目提示,关注特定时间范围的日志
-
识别攻击场景:
# 查找所有404请求,可能指示目录扫描
grep " 404 " /var/log/apache2/access.log# 查找异常的User-Agent
grep -v -E "Mozilla|Chrome|Safari|Firefox" /var/log/apache2/access.log | grep "User-Agent"
- 查找入侵点:
# 寻找可能的漏洞利用
grep -E "\.php\?|shell|cmd|/etc/" /var/log/apache2/access.log
- 账户活动分析:
# 检查登录时间和模式
last | grep -v "^reboot"
蓝队防守技巧:
-
黄金时间窗口:入侵发生后快速保存原始日志
-
创建日志时间轴:
# 合并关键日志并按时间排序
cat /var/log/{auth.log,apache2/access.log,mysql/error.log} | sort -k1M -k2n -k3 -k4 > timeline.log
- 威胁狩猎查询:
# 查找非标准时间的登录
last | grep -v "pts" | grep -E "00:|01:|02:|03:|04:|05:"# 查找未经授权的cron任务
grep "CRON" /var/log/syslog | grep -v -E "(root|www-data|mysql)"
14. 总结与进阶学习 🌟
Linux系统的日志机制是系统运行、故障排除和安全分析的基础。通过本文介绍的基本概念和高级技术,你应该能够:
- ✅ 理解Linux日志系统的基本架构
- ✅ 查找和分析不同类型的日志文件
- ✅ 使用命令行工具进行日志搜索和分析
- ✅ 识别常见的安全事件和攻击模式
- ✅ 在TryHackMe挑战中进行有效的日志分析
进阶学习方向:
- 📘 学习高级日志分析工具和技术
- 🔐 探索SIEM(安全信息和事件管理)系统
- 🛡️ 研究日志异常检测和机器学习应用
- 📚 了解合规要求和日志保留策略
在TryHackMe平台上继续练习日志分析,可以尝试"Linux Forensics"、"Blue Team"系列和各种事件响应挑战,提升你的安全分析技能!
相关文章:
学习黑客5 分钟深入浅出理解Linux Logs [特殊字符]
5 分钟深入浅出理解Linux Logs 📝 大家好!今天我们将探索Linux系统中的日志机制——这是系统管理和安全分析的重要组成部分。在网络安全学习特别是TryHackMe平台上的挑战中,理解和分析日志是发现入侵痕迹、追踪攻击者行为和收集证据的关键技…...
【Docker系列】docker inspect查看容器部署位置
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
journalctl使用
journalctl 可以查看很多服务的日志,比如 docker,ollama 等。 1. 查看 xx 服务的最新日志(实时滚动) sudo journalctl -u docker -f -f 参数表示 跟随(follow),会持续输出最新日志࿰…...
Satori:元动作 + 内建搜索机制,实现超级推理能力
Satori:元动作 内建搜索机制,实现超级推理能力 论文大纲一、背景:LLM 推理增强的三类方法1. 基于大规模监督微调(SFT)的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二、Sator…...
基于语言模型的依存关系分句 和 主题变换检测(基于词频和句段得分)的 意思
🧠 一、基于语言模型的依存关系分句(Dependency-based Segmentation) ✅ 说人话: 用语言模型判断句子里的语法结构(谁依赖谁),找到合理的“断点”,把太长的句子拆成语法上更自然的小…...
计算机体系结构一些笔记
1、异构计算:CPU也像人类社会一样存在专业分工。 异构计算(Heterogeneous Computing)是指不同类型的计算单元合作完 成计算任务。每个计算单元采用不同的架构,分别擅长处理某一种类型 的计算任务。整个计算任务分解为小的单位&…...
Go语言——goflow工作流使用
一、引入依赖 这个很坑,他不允许连接带密码的redis,只能使用不带密码的redis,要带密码的话得自己改一下源代码,无语 go get github.com/s8sg/goflow二、画出我们的工作流程 三、编写代码 package mainimport ("encoding/j…...
理性地倾听与表达:检索算法的语言学改进
论文标题 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 论文地址 https://arxiv.org/pdf/2505.03676 代码地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎萨克雷大学,索邦大学ÿ…...
RV1126 ROS2环境交叉编译及部署(基于官方Docker)
RV1126 ROS2环境交叉编译及部署(基于官方Docker) 0 前言1 SDK源码更新1.1 启动Docker容器1.2 更新SDK源码1.3 SDK更新问题2 ROS2编译配置3 Buildroot rootfs编译ROS2的依赖包3.1 编译问题解决4 使用Docker交叉编译ROS24.1 准备Linux(Ubuntu) PC机的依赖环境4.1.1 Ubuntu PC机…...
每日脚本学习5.10 - XOR脚本
xor运算的简介 异或就是对于二进制的数据可以 进行同0异1 简单的演示 : 结果是 这个就是异或 异或的作用 1、比较两数是否相等 2、可以进行加密 加密就是需要key 明文 :0b010110 key : 0b1010001 这个时候就能进行加密 明文 ^ key密文 还有这个加密比…...
深圳SMT贴片加工厂制造流程解析
内容概要 作为大湾区电子制造产业链的重要节点,深圳SMT贴片加工厂凭借精密的生产体系与技术创新,构建了涵盖12道核心工序的标准化流程。从PCB基板的来料检验开始,通过全自动贴片机的高精度元件定位、SPI三维锡膏检测、智能温控回流焊接等关键…...
英语六级---2019.6 卷二 仔细阅读2
文章 Officials at the White House announced a new space policy focused on managing the increasing number of satellites that companies and governments are launching into space. Space Policy Directive-3 lays out general guidelines for the United States to mi…...
【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)
🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut、GIS)第二期3【小沐学…...
Windows 系统 - Trae 内 终端 无法使用 node (重新配置 nodejs 路径)
想在 Trae 中尝试一下 mcp, 所以 Windows 系统下安装了 node.js. 安装成功后, 在 Windows 的 powershell 下可以 node -v, 但是在 Trae 的终端下输入 node -v 时, 识别提示不能识别 node 命令. 参考了 vscode 下的一种解决方式 VS Code 内终端无法使用 node 解决方案是相似的…...
AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
背景 在上个月,有网页咨询我怎么才能获取视频中的音频并识别成文本,我当时给他的回答是去问一下AI,让AI来给你答案。 他觉得我在敷衍他,大骂了我一顿,大家觉得我的回答对吗? 小编心里委屈,我…...
springCloud/Alibaba常用中间件之Nacos服务注册与发现
文章目录 SpringCloud Alibaba:依赖版本补充六、Nacos:服务注册与发现1、下载安装Nacos2、服务注册1. 导入依赖(这里以服务提供者为例)2. 修改配置文件和主启动类3. 创建业务类4. 测试 3.服务映射1. 导入依赖2. 修改配置文件和主启动类3. 创建业务类和RestTemplate配置类用来提…...
鸿蒙 所有API缩略图鉴
从HarmonyOS NEXT Developer Preview1(API 11)版本开始,HarmonyOS SDK以 Kit 维度提供丰富、完备的开放能力,涵盖应用框架、应用服务、系统、媒体、AI、图形在内的六大领域,共计30000个API...
互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计
标题:互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计 第一幕:向量数据库选型与性能调优 技术总监(严肃脸): 郑薪苦,我们最近在做一个基于大语言模型的企业级AI应用,需要…...
搜索与图论
文章目录 搜索与图论深度优先搜索 DFS[843. n-皇后问题 - AcWing题库](https://www.acwing.com/problem/content/845/) 宽度优先搜索 BFS[844. 走迷宫 - AcWing题库](https://www.acwing.com/problem/content/description/846/) 树与图的存储[846. 树的重心 - AcWing题库](http…...
【递归、搜索和回溯】二叉树中的深搜
个人主页 : zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 2331. 计算布尔二叉树的值1.1 分析1.2 代码 2 129. 求根节点到叶节点数字之和2.1 分析2.2 代码 3 814. 二叉树剪枝3.1 分析3.2 代码 4 98. 验证…...
通俗的理解MFC消息机制
1. 消息是什么? 想象你家的门铃响了(比如有人按门铃、敲门、或者有快递),这些都是“消息”。 在 MFC 中,消息就是系统或用户触发的各种事件,比如鼠标点击(WM_LBUTTONDOWN)、键盘输入…...
Windows CMD通过adb检查触摸屏Linux驱动是否被编译
检查 CONFIG_TOUCHSCREEN_GT9XX 是否启用,检查内核是否编译了Goodix GT9XX系列触摸屏的驱动支持 Windows CMD.exe输入: adb shell “zcat /proc/config.gz | grep CONFIG_TOUCHSCREEN_GT9XX” 如果返回CONFIG_TOUCHSCREEN_GT9XXy,表示驱动已编…...
Java并发编程-锁(八)
文章目录 Condition的使用和实现使用add(T t) 实现等待队列await()signal()signalAll() 总结 Condition的使用和实现 我们知道,任意一个Java Object,都拥有一组监视器方法,主要包括wait()、 wait(long timeout)、notify()以及notifyAll()方法…...
idea如何快速生成测试类
点击 code -> generate -> Test...
FPGA笔试题review
今天翻网盘上的旧资料,找到了一套20年9月份在武汉某芯片公司食堂做的笔试题(我在做笔试题,旁边的人在嗦酸辣粉,也算是记忆犹新),借着这套题目,正好也可以捡一捡关于FPGA的基础知识点,算是温故而知新。答案更新中 1、名词解释 (1)FPGA、ASIC (2)CLB、LUT (3)时…...
[C++类和对象]构造函数和析构函数
类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗? 并不是,任何类在什么都不写时,编译器会自动生成以下6 个默认成员函数。 默认成员函数:用户没有显式实现,编译器会…...
Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析
目录 1.前言 2.正文 2.1状态码 2.2HTTP与HTTPS的关系 2.3SSL协议 2.3.1对称加密 2.3.2非对称加密 2.3.3中间人攻击 2.3.4校验机制 2.3.4.1证书 2.3.4.2数字签名 1. 数字签名的生成过程 2. 数字签名的验证过程 2.4TLS协议(握手过程) 3.小结…...
《全球短剧正版授权通道,助力平台出海与流量变现》
正版短剧片源授权,全方位赋能您的内容运营 短剧作为短视频领域的一种重要形式,凭借其紧凑的剧情、鲜明的角色和引人入胜的叙事方式,赢得了广大观众的喜爱。 然而,在短剧市场蓬勃发展的同时,版权问题也日益凸显。为了保…...
17.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--ELK
在微服务中,日志是非常重要的组成部分。它不仅可以帮助我们排查问题,还可以帮助我们分析系统的性能和使用情况。ELK(Elasticsearch、Logstash、Kibana)是一个强大的日志分析工具,可以帮助我们收集、存储和分析日志数据…...
Linux系统管理与编程16:PXE自动化安装部署centos7.9操作系统
兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 0.准备 1)防火墙和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config (很不好的…...
DAMA第10章深度解析:参考数据与主数据管理的核心要义与实践指南
引言 在数字化转型的浪潮中,数据已成为企业的核心资产。然而,数据孤岛、冗余和不一致问题严重制约了数据价值的释放。DAMA(数据管理协会)提出的参考数据(Reference Data)与主数据(Master Data&…...
Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析
引言:重新定义数字与现实的边界 在元宇宙概念持续升温的当下,AR(增强现实)与VR(虚拟现实)技术正成为连接物理世界与数字世界的桥梁。Python凭借其丰富的计算机视觉生态(尤其是OpenCV库…...
PaddleOCR本地部署
构建TestPaddle目录: TestPaddle/ └── PaddleOCR ├── ocr_server.py ├── ch_PP-OCRv4_det_infer.tar ├── ch_PP-OCRv4_rec_infer.tar └── 001.jpg1、安装PaddleOCR 安装 PaddleOCR git clone https://github.com/PaddlePaddle/PaddleOCR.git cd …...
Spring事务融入(REQUIRED)具体实现步骤解析
Spring事务融入(REQUIRED传播行为)是Spring事务管理中最核心的机制,下面我将深入剖析其具体实现步骤和关键代码逻辑。 1. 整体流程概览 事务融入(REQUIRED)的核心逻辑是: 检查当前线程是否存在事务 存在则融入(加入)该事务 不存在则创建新事务 2. …...
Java 开发者 Linux 学习指南
目录 一、引言:为什么 Java 开发者必须掌握 Linux 二、Linux 基础:核心概念与常用命令 (一)文件系统与目录结构 (二)权限体系与用户管理 (三)进程管理与监控 三、在 Linux 上安…...
2025年PMP 学习七 -第5章 项目范围管理 (5.4,5.5,5.6 )
2025年PMP 学习七 -第5章 项目范围管理 5.4 创建 WBS 1.定义与作用 定义把项目可交付成果和项目工作分解成较小的,更易于管理的组件作用对所要交付的内容提供一个结构化的视图 2.输入,输出,工具与技术 3. 创建WBS的依据(输入&…...
【LangChain全景指南】构建下一代AI应用的开发框架
目录 🌟 前言🏗️ 技术背景与价值🚧 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🔍 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🧩 关键技术模块说明⚖️ 技术选…...
Linux系统:虚拟文件系统与文件缓冲区(语言级内核级)
本节重点 初步理解一切皆文件理解文件缓冲区的分类用户级文件缓冲区与内核级文件缓冲区用户级文件缓冲区的刷新机制两级缓冲区的分层协作 一、虚拟文件系统 1.1 理解“一切皆文件” 我们都知道操作系统访问不同的外部设备(显示器、磁盘、键盘、鼠标、网卡&#…...
Linux进程间信号
目录 信号入门 生活角度中的信号 技术应用角度的信号 信号的发送与记录 信号处理常见方式概述 产生信号 通过终端按键产生 通过系统函数向进程发信号 由软件条件产生信号 由硬件异常产生信号 阻塞信号 信号其他相关常见概念 在内核中的表示 sigset_t 信号集操作…...
数据分析2
五、文件 CSV Comma-Separated Value,逗号分割值。CSV文件以纯文本形式存储表格数据(数字和文本)。 CSV记录间以某种换行符分隔,每条记录由字段组成,字段间以其他字符或字符串分割,最常用逗号或制表符。…...
每日一题:两个仓库的最低配送费用问题
文章目录 两个仓库的最低配送费用问题一、问题描述二、解题思路(一)初始假设(二)差值定义(三)选择最优(四)计算答案 三、代码实现四、代码分析(一)输入处理&a…...
SemanticSplitterNodeParser 和 Sentence-BERT 的区别和联系是什么
这涉及到文本切分(chunking)与语义向量(embedding)之间的关系。我们来详细对比: ✅ 1. SemanticSplitterNodeParser 是什么? SemanticSplitterNodeParser 是 llama-index 提供的一种 语义感知的文本切分工…...
Fabric系列 - SoftHSM 软件模拟HSM
在 fabric-ca-server 上使用软件模拟的 HSM(密码卡) 功能 安装 SoftHSMv2 教程 SoftHSMv2 默认的配置文件 /etc/softhsm2.conf默认的token目录 /var/lib/softhsm/tokens/ 初始化和启动fabric-ca-server,需要设置一个管理员用户的名称和密码 初始化令牌 # 初始…...
简易图片编辑工具,支持抠图和替换背景
软件介绍 Photo Retouch是一款由微软官方商店推出的免费图片处理软件,具有抠图、换背景、修复等功能,操作便捷且效率极高,非常值得尝试。 功能详解 这款软件提供五大功能,包括删除物体、快速修复、一键抠图、背景调整和裁剪…...
CountDownLatch 并发编程中的同步利器
CountDownLatch 并发编程中的同步利器 文章目录 CountDownLatch 并发编程中的同步利器一、CountDownLatch 基础概念1.1 什么是 CountDownLatch?1.2 CountDownLatch 的核心方法1.3 基本使用示例 二、CountDownLatch 实战应用2.1 应用场景一:并行任务协调2…...
C++GO语言微服务之用户信息处理
目录 01 01-微服务实现用户注册-微服务端-上 02 02-微服务实现用户注册-微服务端-下 03 03-微服务实现用户注册-web端 04 04-微服务实现用户注册-web端-流程小结 05 05-获取地域信息-读MySQL写Redis入 06 06-获取地域信息-先查redis-没有读MySQL写入 01 07-Cookie简介 0…...
互联网大厂Java求职面试实战:Spring Boot微服务与数据库优化详解
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 😁 2. 毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…...
Linux基本指令(一)
目录 基本指令 pwd指令 cd指令 cd ..编辑 cd ~ ls指令 ls -l ls -a ls -d touch指令 mkdir指令 rmdir指令 && rm 指令 操作系统是什么呢?一个好的操作系统要具备什么条件呢? 简单来说,操作系统是是一款做软硬件管理的软…...
Java—— 集合 List
List集合的特点 有序:存和取的元素顺序一致 有索引:可以通过索引操作元素 可重复:存储的元素可以重复 List集合的方法 Collection的方法List都继承了,可以使用Collection中的方法 此外,List集合因为有索引,…...
使用谱聚类将相似度矩阵分为2类
使用谱聚类将相似度矩阵分为2类的步骤如下: 构建相似度矩阵:提供的1717矩阵已满足对称性且对角线为1。 计算度矩阵:对每一行求和得到各节点的度,形成对角矩阵。 计算归一化拉普拉斯矩阵:采用对称归一化形式 LsymI−D…...