知识库
SSH 挂断后远端后台进程还在空转:断线不等于清理
你通过 SSH 在服务器上跑了个多线程的满负载测试命令。命令看着卡住不动,你不耐烦地按了 Ctrl+C,或者干脆关掉了本地终端。你以为「命令停了,服务器就消停了」。几个小时后,服务器的 CPU 一直飙满,一查,那个测试进程还在后台空转,跑了…
一个空输出不能当结论:readlink 返回空不代表程序不存在
你用 readlink 查一个软链接,输出是空的。你据此判断「这个程序不见了」,准备上报或者重装。结果旁边的人随手 ls 了一下那个安装目录,程序好好地待在那儿,一应俱全。一个空输出,差点让你做出一连串错误的决定。 现象 readlink …
Windows 下 sed -i 批量替换静默漏改:为什么不能盲批量替换
你重构了一个模块,改了一批文件里的引用路径,用的是 sed i 一条命令扫过整个目录。命令跑完,回显干净,没有任何报错。你以为改完了,直到运行时某个模块「找不到」,才发现有些文件压根没改到。 现象 sed i 's/旧路径/新路径/g' .…
SSH 内联执行复杂 shell 引号总是对不上:改成上传脚本文件
你想通过 SSH 在远端服务器上跑一段稍微复杂点的 shell——带循环、带变量、带条件判断。于是把它塞进 ssh host "...一大段..." 里。结果反复失败,报错五花八门,你开始一个引号一个引号地数,改一个坏一个,陷入「数引号」的…
命令之间的工作目录会保留、shell 状态不会:一个容易误判的细节
你在一个能连续执行命令的终端里干活,前面 cd 进了某个目录,觉得「已经切过去了」,后面几条命令就默认在当前目录下跑。结果它们跑在了别的地方,行为全错。你回头看,那条 cd 明明成功了。 现象 表现有好几种,都很迷惑: 「上一条 cd 好像…
bash 里内联调用 PowerShell,$_ 被提前吃掉了:嵌套展开的顺序问题
你只想从 Git Bash 里快速调一段 PowerShell,于是写了 powershell Command "... 用 $ 处理当前对象 ..."。命令发出去了,PowerShell 却报一堆「无法识别为 cmdlet」。你盯着自己写…
开了 MSYS_NO_PATHCONV 之后 /dev/null 反而坏了:修一个坑挖出下一个坑
你刚解决了一个路径被 MSYS 悄悄改写的问题,办法是给命令加上 MSYS NO PATHCONV=1。命令不再乱改参数了,但这次它换了个姿势报错,报的还是个看起来像网络故障的错误。 现象 命令输出: 这个错误码 (23) 和「write」…
Git Bash 的 /tmp 和 Windows Python 的 /tmp 根本不是同一个目录
你用 curl 从 Git Bash 里下了个文件到 /tmp/x,命令回显一切正常。紧接着用 Windows 版的 Python 去读 /tmp/x,报「文件不存在」。你回去看 /tmp 目录,文件明明在那儿。两个程序对同一个路径,看到的…
Git Bash 里以 / 开头的参数被悄悄改写成 Windows 路径:MSYS 路径转换
你在 Git Bash 里执行一条命令,参数里带了点 Unix 风格的路径。命令跑完了,没有任何报错,但结果完全不对——它处理的是另一个文件。你反复检查参数,确实写的是 /tmp/x,可命令像是在跟一个你从没见过的文件打交道。 现象 几个典…
路径写进 Python 字符串报 unicodeescape 错误:反斜杠转义入门
你用 Python 生成一段脚本内容,或者在自己的代码里写了一个 Windows 路径,运行直接报语法错误,报的还是一条看不懂的 unicodeescape。你盯着那行代码,路径明明是复制粘贴过来的,绝对没错。 现象 或者: 报错会 指到你…
一个坏文件拖垮整轮批量任务:Python 读取时的编码容错
你写了个批量脚本,要扫描几千个文件、从中检索关键词。前几百个跑得好好的,突然进程整个崩掉,报一个 UnicodeDecodeError。等你去查,发现「肇事」的只是其中一个编码不规范的小文件。为了这一个文件,整轮任务白跑了。 现象 或者: …
用中文关键词搜索返回零结果:查询串编码对不上时的排查与修法
你写了个脚本去某个站点搜索,英文关键词一搜一个准,换成中文关键词,返回的结果永远是 0 条。试了好几个不同的中文词,全是空。你开始怀疑「这个站是不是压根没有中文资源」,甚至怀疑站点封了你。 现象 同一个接口,?q=python 有结果,?q…
抓取中文域名抛 UnicodeEncodeError:IDNA 与 Punycode 入门
你写了个脚本去抓一批站点,源清单里混进了几个中文域名。程序跑到这几个就抛异常退出,报的还是个跟网络八竿子打不着的编码错误。更坑的是,这个错误把真正的网络问题也一起盖住了,你对着 UnicodeEncodeError 排查了半天网络,方向全错…
Windows 写好的脚本传到 Linux 就失灵:行尾那个看不见的 \r
一个 shell 脚本,你在 Windows 上写完、测试通过,信心满满地 scp 到服务器上跑。结果各种诡异:命令被拼错、#!/bin/bash 像是失效了、偶尔还报一句莫名其妙的「找不到命令」。你盯着服务器上的文件看,内容明明和本地一模…
命令行读远端文件中文变乱码:坏的往往不是文件,是本地的输出管道
你用本地命令行上的一个工具(内部其实是个 Python 脚本)去读某台服务器上的文本文件。文件里明明是有中文的,可屏幕上显示出来的却是一串 ����,偶尔还夹着 ° 变成的怪符号。第一反应几乎都是:「远端那个文件坏了」,然后 SSH 上去折…
Python 打印中文或 emoji 就崩:Windows 控制台 stdout 的 GBK 编码陷阱
脚本在家里那台 Linux 机器上跑得好好的,搬到 Windows 上,只要一打印带 emoji 的状态行,或者输出几句中文,就直接抛异常退出。更气人的是它退出的时机——往往正好在「已经改了一半数据、还没写回文件」的中间状态,留下一堆需要手…
批处理 .bat 只执行了一半还报告成功:LF 换行与 UTF-8 注释的连环坑
你给某个每天定时跑的任务写了个 .bat,里面先 echo 打个开始标记,再调用真正的业务程序,最后留个结尾标记。安静地跑了几周,直到某天核对数据,才发现最新数据停在将近三周前——而计划任务每次都老老实实报告「上次结果:0(成功)」。 现象…
PowerShell 脚本中文乱码甚至语法报错:无 BOM 的 UTF-8 被按 GBK 读
你在 Windows 上写了一个 .ps1 脚本,里面带着中文提示、中文路径或中文注释。在编辑器里看着一切正常,可一旦交给计划任务、或者直接双击运行,输出全成了怪字;运气不好时,脚本连一行都不执行,直接抛出一句「字符串缺少终止符」的解析错误…
钓鱼邮件与仿冒网站是怎么骗过眼睛的:常见套路与识别要点
钓鱼攻击之所以屡屡得手,是因为它精准利用了人的视觉习惯和心理弱点。攻击者并不需要攻破你的系统,只要让你“看错”就够了。本文梳理常见套路,并给出可操作的识别要点。 一、钓鱼邮件:伪装成“可信来源” 1. 发件人地址的障眼法 相似域名 :将 p…
让大模型稳定输出结构化数据:提示词约束与校验的实践思路
为什么大模型输出结构化数据不稳定? 大语言模型本质是生成自然语言的概率模型,默认输出自由文本。当要求它输出 JSON、XML 等结构化格式时,常出现字段缺失、类型错误、多余解释、格式漂移等问题。要稳定获得结构化数据,需要从 提示词约束 和 …