Bash PS1 单行提示符配置全攻略:防折行、路径截断与颜色处理
在终端里敲命令最影响心情的往往是提示符本身。目录深一点、PS1 里再塞个 git 分支回车之后提示符直接折到第二行窗口宽度被拖小一点命令还没输几个字光标就已经错位了。更迷惑的是有人昨天还是两行的提示符今天打开终端突然变成一行怎么看都不对劲。所有这些现象核心都指向同一个变量PS1。它是 bash 绘制提示符时的模板提示符长什么样、占几行都由它说了算。我会把“让命令提示行保持单行、排查提示行变单行”这件事讲透内容包括 PS1 转义、路径截断、颜色包裹以及一套可以直接复制到~/.bashrc的配置。1. 提示符的真相PS1、转义与一个\n1.1 PS1只是字符串但终端按字节画它很多人以为提示符是终端模拟器自己画出来的其实不完全是。bash 启动后会展开环境变量 PS1 里的特殊转义序列得到一个普通字符串再把这个字符串交给终端显示。终端不认识 PS1、不认识“用户名”这个概念它只认识可见字符和控制序列。如果 PS1 里有一个真正的换行符终端就把光标移到下一行有 ANSI 颜色码终端就切换颜色其他字符则原样打印。所以想让提示符占一行本质上是“PS1 展开之后的字符串里不能出现换行字节”。最常见的元凶是 PS1 字符串里的\n转义。许多带完整信息的默认提示符是这样定义的PS1\u\h:\w\n\$ 显示出来是两行devhost:/home/dev/projects $第一行给了用户名、主机名、路径第二行才是真正的输入区。这种设计在屏幕空间充裕时挺好用问题是要想“命令提示行变单行”第一反应就是把\n去掉、把\$挪上来合成一行PS1\u\h:\w\$ 这样立刻变成一行。但别高兴太早去掉\n只是第一步下面几种情况照样能把一行提示符逼成两行。PS1 里常用的转义序列其实不多但每一个都直接关系到显示结果先列个表方便查转义展开后的内容对宽度的影响\u当前用户名可见字符\h主机名短格式可见字符\w当前完整路径家目录会显示为~可见字符长度不可控\W当前目录的基名例如/home/dev/app显示为app可见字符通常很短\$普通用户显示$root 显示#可见字符\t24 小时制时间可见字符\n换行字符会让提示符折行\eESC 字符用于引入 ANSI 颜色码不可见但会被误计入宽度\[开始一段不可见字符本身不计入宽度\]结束一段不可见字符本身不计入宽度1.2 多行提示符的典型结构聊几个常见的多行 PS1 模板方便对照哪里出了问题模板示例显示效果导致多行的原因\u\h:\w\n\$两行输入区单独一行中间的\n\u\h \t\n\w\n\$三行两个\n\[\e[1;32m\]\u\h\[\e[0m\]\n\$两行且第一行带颜色颜色后面紧跟\n\w$看起来一行但路径太长时自动折行路径长度超过终端列宽第二行才是重点有些人的 PS1 看起来没有\n可输入长命令时还是出现在第二行——这不是提示符定义里写了换行而是提示符本身的可见长度加上输入的文本长度撞到了终端右边界终端自动让光标换行。这是宽度问题不是换行字符问题。这里先记住结论提示符“变单行”涉及两类操作一是清理 PS1 里的\n二是控制提示符的有效显示长度。前者是语法问题后者是策略问题。像\[\e[1;32m\]这种颜色转义实际屏幕上看不见但终端处理它们需要时间如果不告诉 bash 这些字符不占宽度readline 就会把提示符长度算错后续会引发一种非常隐蔽的“半路折行”后面有一节专门讲颜色包裹。2. 动手改成单行前先定位 PS1 在哪被设置2.1 从哪个文件改才有效修改 PS1 最常改的地方是~/.bashrc但 PS1 可以被多处赋值不是哪里写了哪里就生效要看 bash 启动时最后一个赋值来自哪里。常见位置有/etc/profile登录 shell 会读取往往调用/etc/profile.d/*.sh/etc/bash.bashrc所有 bash 交互式非登录 shell 会读取~/.profile、~/.bash_profile用户级登录脚本~/.bashrc用户级交互式 shell 配置日常定制的主力如果只是打开终端bash 通常作为交互式非登录 shell 启动会读/etc/bash.bashrc和~/.bashrc如果用 ssh 登录bash 可能是登录 shell会先读/etc/profile和~/.profile。所以提示符“偶尔是你不想要的样子”多半是某些文件里写了 PS1加载顺序把之前的定义覆盖了。想快速知道当前实际生效的 PS1执行echo $PS1如果输出看起来像\[\e[0m\]\w$这类说明已经在用自定义提示符如果输出只有$或\s-\v\$说明自定义可能没被加载。2.2 用 grep 找到赋值源头直接搜关键字最快grep -rn PS1 /etc/profile /etc/bash.bashrc /etc/profile.d/ ~/.bashrc ~/.profile 2/dev/null我一般从~/.bashrc和/etc/bash.bashrc开始看这一步能排除掉很多“为什么我改了不生效”的问题。还有一点容易被忽略bash 在启动时可能受到BASH_ENV或ENV环境变量影响但这些大多影响非交互 shell对交互式提示符影响较小只在排查异常时考虑。如果文件里明明设了 PS1echo 出来的却不是预期值接下去查PROMPT_COMMANDecho $PROMPT_COMMANDPROMPT_COMMAND 会在每次显示提示符之前执行如果它里面写了PS1...那无论.bashrc里怎么定义最终都会被 PROMPT_COMMAND 覆盖。grep 结果里通常会有好几处 PS1 赋值记住一个规律加载顺序靠后、并且没有被后面再次覆盖的那个才是最终生效的。怕记不住就在改之前先备份原来的 PS1 值一行命令的事echo $PS1 ~/ps1_backup.txt2.3 排查“突然从多行变单行”的三个方向我自己被人问过很多次类似问题本来终端提示符是两行的今天打开变回一行了。注意这种情况往往不是“变单行”本身的问题而是自定义没加载。常见原因有三个shell 变了在终端里执行过exec sh或者选择了 POSIX shPS1 不再按 bash 语法解析。解决办法是exec bash回来。当前会话的 PS1 被临时覆盖可能在某个脚本里执行了export PS1\u$ 但没写进.bashrc。退出当前终端重开即可恢复。加载链路坏了~/.bashrc开头有case $- in *i*) ;; *) return;; esac之类的守卫或者某个第三方脚本提前 returnPS1 赋值根本没执行到。排查时可以先手动 source 一下source ~/.bashrc echo $PS1如果手动 source 有预期提示符而新开终端没有说明启动链路里漏加载了。相反如果手动 source 也没有问题就在~/.bashrc里 PS1 赋值语句之前的某一行可能是语法错误或提前退出。提示改 PS1 之前最好先把原来的值备份echo $PS1存到文本文件里。看似简单的一步能省掉很多误删后的痛苦。3. 让提示符不折行的长度控制3.1 路径太长一行直接被“字数”撑爆把\n解决了单行提示符遇到的下一个敌人是路径长度。比如你 cd 到类似这样的目录/home/dev/workspace/backend/src/main/java/com/example/demoPS1 里用\w会把这个完整路径渲染出来整个提示符可能占掉七八十个字符。终端窗口默认 80 列或 100 多列时还能挤一挤窗口稍微拉窄或者命令输入一长立刻折行。这种“折行”跟\n不一样它没有可见的换行符纯粹是终端显示宽度到了右边界后的自动换行但视觉上一样难看而且 readline 对光标位置的计算在折行后容易出错。终端当前有多少列可以用tput cols看也可以直接看环境变量COLUMNS。但提示符的长度控制不必每次手动去数bash 和用户自己都有办法。3.2 PROMPT_DIRTRIM官方提供的路径压缩工具bash 专门为这个场景准备了一个环境变量PROMPT_DIRTRIM。它的含义是当\w展开后的路径层级超过这个数字时用省略号替换左侧多余的层级只保留右侧最近的几层。export PROMPT_DIRTRIM3设置后上面的长路径会显示成这样.../com/example/demo从右往左数最后 3 个路径组件保留前面的统统折叠成三个点。这是我个人最推荐优先尝试的方案一行配置不写函数效果直观而且不破坏原有路径的可读性。数值根据自己的习惯调我常用 2 到 3能保留上下文又不至于占太宽。PROMPT_DIRTRIM只对\w和\W的展开生效对自定义函数里$PWD的处理无效。所以如果你用函数动态生成路径就得自己实现类似的截断逻辑。3.3 自定义截断函数把中间折叠起来如果目录层数少但名称很长PROMPT_DIRTRIM 就不够用了。比如/home/dev/workspace/Data-Analysis-Engine-Service即使只保留最后一层Data-Analysis-Engine-Service也够长。这种情况可以改用\W它只显示当前目录的基名basename路径的分隔符和上级目录都不渲染。代价是丢失上下文在几个同名目录之间跳转时会分不清自己在哪。想要“既保留上下文又不占宽度”的折中方案可以写一个函数把中间层级折叠。我常用的做法是在~/.bashrc里写这样一个函数__ps1_pwd() { local pwd${PWD/#$HOME/~} local limit${1:-30} if [ ${#pwd} -le $limit ]; then printf %s $pwd return 0 fi local left${pwd%%/*} local right${pwd##*/} local remain$(( limit - ${#left} - ${#right} - 5 )) if [ $remain -le 0 ]; then printf .../%s $right return 0 fi local mid${pwd#*/} mid${mid%/*} printf %s $left printf / if [ ${#mid} -gt $remain ]; then local half$(( remain / 2 - 1 )) printf %s...%s ${mid:0:$half} ${mid: -$half} else printf .../%s $mid fi printf /%s $right }调用时用$(__ps1_pwd 28)代替\w效果是把过长的中间路径折叠成类似home/dev/.../demo这个函数不追求完美核心思路就是“截头去尾、中间省略”胜在完全可控可以做颜色包裹、可以做固定长度、还能根据$COLUMNS自适应。实际使用中我见过有人基于同样的思路往 PS1 里塞当前项目名、Python 虚拟环境名、git 分支状态只要整条可见宽度不超过终端列宽的一半单行都不会出问题。3.4 排查问题时的黄金参照物最短提示符极端情况下比如你在折腾自动化脚本或者远程终端带宽很差那最省事的方案是让 PS1 短到无法再短PS1\W\$ 甚至PS1$ 这种提示符在任何宽度下都几乎不可能折行。代价是信息量几乎为零。我个人不推荐长期使用但它确实是排查“提示符导致命令错位”问题时的黄金参照物如果换成$后一切正常那问题 100% 出在 PS1 的长度或颜色包裹上。4. 颜色代码与[ ]隐藏的折行与错位4.1 readline 眼中的提示符宽度这条要单独拎出来说因为它最容易踩坑也最隐蔽。bash 在行编辑时使用 GNU readline 库。readline 需要知道提示符“实际占了多少列”才能决定光标在哪里、当用户输入文字时从哪里开始、清除当前行时要擦掉多少字符。如果 readline 认为的宽度和终端实际渲染出来的宽度不一致就会产生一系列妖异现象输入长命令时在奇怪位置折行、按退格键删不干净、命令行回显错位、用 CtrlK 剪切时留下一串垃圾字符。颜色代码就是罪魁祸首。\e[1;32m这类 ANSI 序列在终端上不显示可见字符但它在字符串里占了 8 个字符的字节数。bash 展开 PS1 时如果不知道这些字节应该忽略不计readline 就会把提示符宽度算得比实际长。一行提示符看似正常等命令敲到右边某个位置bash 以为快到底了就让光标换行结果用户看到的就是提示符“提前折行”。举个具体数字提示符实际只显示devhost:$共 10 个字符但如果裸写了\e[1;32mreadline 可能认为提示符占了 18 个字符。当终端宽度是 80 列时你输入的字母超过 62 个字符就会提前折行而不是实际能输入 70 个字符才撞线。4.2 没有 [ ] 的典型症状与最小化复现我自己调试过一台同样问题的机器现象是提示符本身一直是一行但输入第接近 80 个字符时突然折到下一行继续输入又正常往上翻历史命令时行尾会带上上一行残留的字符。用户一直怀疑是终端字体或窗口大小问题实际就是把颜色代码写进 PS1 时漏了\[ \]。一个典型的错误写法PS1\e[1;32m\u\h\e[0m:\w\$ 正确写法是用\[和\]把不可见字符包起来PS1\[\e[1;32m\]\u\h\[\e[0m\]:\w\$ 两行代码看起来几乎一样实际表现天差地别。凡是 PS1 里出现颜色代码就必须确认它被\[\]完整包裹包括重置颜色的\e[0m。排查这种问题最好的方式是做最小化复现先把 PS1 改成$确认一切正常然后加用户名、主机名、路径每加一段都测试一次最后加颜色代码一旦出现折行错位基本就能锁定是颜色包裹的问题。4.3 正确包裹与进阶写法颜色与文字交替出现时最稳妥的原则是把每段颜色序列拆开单独包裹而不是把颜色和文字一起包进去。举例PS1\[\e[1;32m\]\u\[\e[0m\]\[\e[1;34m\]\w\[\e[0m\]\$ 这里每个颜色序列都以\[开头、以\]结尾可见字符用户名、路径等则裸露在外。只有包裹了这些标记readline 计算提示符宽度时才只会统计可见字符的长度。如果你真的需要在命令替换输出的内容里直接带上 ANSI 颜色bash 不会把\[\]当特殊字符再处理一次因为命令替换发生在\[解析之后。这种场景下需要用printf输出\001和\002控制字符readline 才认得它们分别表示“开始不可见段”和“结束不可见段”。这是比较进阶的玩法日常配置除了要动态生成带颜色的片段之外不建议碰。注意\[和\]不是 PS1 的通用语法它们只在 bash 的提示符展开阶段被识别。如果在 zsh 或 fish 的提示符配置里照搬不仅不生效还可能直接报错。5. 一套可以直接复制的单行 PS1 配置5.1 完整配置颜色、路径、git分支、时间把前面几条综合起来我给一个我日常在用的单行配置。它包含用户名、主机名、路径、git 分支、时间同时满足“单行、短、有颜色但不导致错位”几个要求export PROMPT_DIRTRIM3 __ps1_git() { local b b$(git symbolic-ref --short HEAD 2/dev/null || git rev-parse --short HEAD 2/dev/null) if [ -n $b ]; then printf (%s) $b fi } PS1\[\e[1;32m\]\u\[\e[0m\]\[\e[1;36m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\[\e[1;33m\]$(__ps1_git)\[\e[0m\] \[\e[2m\]\t\[\e[0m\]\$ 效果类似devhost:.../backend/src (main) 21:04:33$解析一下几个关键选择PROMPT_DIRTRIM3路径超过 3 层自动折叠防止路径把一行占满。$(__ps1_git)函数在每次提示符渲染时执行获取当前 git 分支。分支名放在\[\e[1;33m\]和\[\e[0m\]之间所以被黄色覆盖。当分支为空时颜色段之间是空的视觉上只多一个空格不影响单行结构。函数输出里刻意不写颜色只输出(main)这种纯文本。这样既避免了命令替换输出无法重新解析\[ \]的坑也让 readline 的宽度计算始终准确。时间字段用了\t如果你觉得不需要可以直接删掉。提示$(...)在 PS1 里会每次显示提示符时都执行一次。像我这样在函数里放git symbolic-ref完全没问题但千万别在里面跑ls或find之类的重命令否则每个回车都卡一下。5.2 让配置生效source、exec bash 与会话继承改完~/.bashrc后当前终端不会自动重新加载。执行source ~/.bashrc如果想完全模拟新开终端的启动过程exec bash如果你习惯用 tmux 或者在远程会话里注意 tmux 子窗格启动 bash 时可能读取不同的启动文件子窗格通常也会继承父进程的环境变量但~/.bashrc的改动还是需要手动 source 或重建窗格。最省心的验证方式是新开一个终端窗口。如果设置了依然不生效回头按第 2 节的排查链路走一遍先确认当前 shell 是 bash再看 PROMPT_COMMAND 有没有覆盖最后确认文件里有几个 PS1 赋值语句很可能后面又覆盖了前面的。5.3 窗口变窄时的兜底思路最后聊聊一个谁都会撞上、但很少有人处理的情况终端窗口被拖得很窄甚至只有四五十列。这时候任何带有完整信息的单行提示符都可能被迫折行。我见过有人靠“把窗口拖宽”硬撑也有人直接把提示符隐藏了。其实还有个折中思路用 PROMPT_COMMAND 检测当前列数当窗口太窄时切换成简化 PS1PS1_FULL\[\e[1;32m\]\u\[\e[0m\]\[\e[1;36m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\[\e[1;33m\]$(__ps1_git)\[\e[0m\] \[\e[2m\]\t\[\e[0m\]\$ PS1_SHORT$ PROMPT_COMMANDif [ $(tput cols) -lt 80 ]; then PS1$PS1_SHORT; else PS1$PS1_FULL; fi让完整版 PS1 定义在变量里窗口宽的时候用完整单行窗口窄的时候只显示一个$。这是基于“提示符长度和终端宽度永远在博弈”的现实虽然没有根治但至少不会再出现命令错位。这套配置我用下来最明显的好处是不管在哪个目录折腾提示符都老实待在一行里。真要提个优先级的话先确认自己 PS1 里有没有\n再看颜色是否都用\[ \]包牢最后才谈压缩路径的长度——前两个是正确性第三个只是美观。最后分享一个小习惯不要把完整提示符当成一个超长字符串硬写而是把用户、主机、路径、分支这些部分拆成变量或函数最后再拼装。我早期直接在长字符串里改颜色每次都要数\[ \]有没有配对后来改成拼装式写法维护起来轻松太多。

相关新闻

Claude Code 终端AI编程智能体:安装配置、插件开发与工程实践指南

Claude Code 终端AI编程智能体:安装配置、插件开发与工程实践指南

我最近几个月几乎每天都要在终端里和 Claude Code 打交道,算下来它已经帮我完成了不少代码评审、重构和排错的任务。如果你还没用过,我可以先给你一个简单定义:Claude Code 是一个跑在终端里的 AI 编程智能体,不是那种只会在网页对…

2026/10/13 3:48:55 阅读更多 →
基于三菱PLC的自动配料控制系统设计与现场调试全解析

基于三菱PLC的自动配料控制系统设计与现场调试全解析

自动配料控制系统这个东西,凡是接触粉体、颗粒物料生产线的工程师,基本都绕不开。我最近刚完成一套基于三菱PLC的自动配料控制系统的设计开发和现场调试,从需求梳理、硬件选型、程序编写到试运行,整个过程走下来,有不少…

2026/10/13 3:48:55 阅读更多 →
CTF Web入门:从Secret File到php://filter利用链完整解析

CTF Web入门:从Secret File到php://filter利用链完整解析

CTF Web方向入门题里,Secret File 这类题目出现频率非常高。它本身不考多深的知识点,但给新手造成了一个很经典的困惑:明明页面里藏着线索,却不知道下一步怎么办;好不容易找到文件,拿到一串编码又不知道怎么…

2026/10/13 3:48:55 阅读更多 →

最新新闻

开放代码审查:让评审过程透明可追溯的团队实践

开放代码审查:让评审过程透明可追溯的团队实践

代码审查这件事,几乎所有团队都说自己在做,但真正做好的没几个。我见过太多项目把Review变成了例行公事:上线前临时拉人点个“同意”,评论区里互相打哑谜,新人面对一堆历史PR完全不知道当初为什么这么写。今天想聊的“…

2026/10/13 4:38:09 阅读更多 →
Flink状态管理与Checkpoint实战:从原理到生产调优

Flink状态管理与Checkpoint实战:从原理到生产调优

1. 这不是又一个“大数据框架”宣传稿,而是我在三个真实项目里踩坑后写下的Flink选择手记你点开这个标题,大概率正面临一个现实问题:团队要上实时计算,技术选型会议开了三次,PPT里Spark Streaming、Kafka Streams、Sto…

2026/10/13 4:38:09 阅读更多 →
SQL Server学生选课系统数据库设计:从建表到存储过程的完整T-SQL源码

SQL Server学生选课系统数据库设计:从建表到存储过程的完整T-SQL源码

简介:面向数据库课程设计与学生选课业务场景,这份基于SQL Server的源码与文档包提供了完整可运行的选课系统数据库方案,涵盖建表、关系设计、示例数据与常用查询逻辑,适合软件工程、计算机科学等专业学生完成期末大作业或课程设计…

2026/10/13 4:38:09 阅读更多 →
电子科技大学机器学习大作业全流程指南:从选题、数据处理到模型实现与报告撰写

电子科技大学机器学习大作业全流程指南:从选题、数据处理到模型实现与报告撰写

简介:这份资源是电子科技大学机器学习课程的大作业完整资料包,面向正在修读机器学习相关课程的高校学生,以及需要完成课程项目或期末大作业的学习者,可帮助解决选题方向不明确、实验流程不完整、代码实现缺乏参考等问题。压缩包为…

2026/10/13 4:38:09 阅读更多 →
AI辅助编程实战:用Claude Code从零搭建宠物生命周期管理App

AI辅助编程实战:用Claude Code从零搭建宠物生命周期管理App

最近我用 Claude Code 从零搭了一个宠物生命周期管理 App,从工程初始化、数据库设计、后端接口,到前端页面和部署,几乎全程通过对话式编程完成。整个过程跑下来最大的感受是:AI 编程真正改变的已经不是“能不能写代码”&#xff0…

2026/10/13 4:38:09 阅读更多 →
Dinic最大流算法详解:分层图、多路增广与当前弧优化

Dinic最大流算法详解:分层图、多路增广与当前弧优化

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

2026/10/13 4:37:09 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →