Linux 终端提示符 PS1 自定义指南:原理、颜色与动态信息实战
你有没有过这样的时刻费了半天劲装好系统打开终端一看光标前面永远是那个灰头土脸的userhost:~$用三天就腻了。想改吧网上教程东一句西一句不是让你装这个框架就是装那个工具改完还不明白为什么。我之前也这么纠结过直到有一天我把提示符改得“花里胡哨”之后才发现——这东西不光是好看是真的能把信息量顶上去。这篇就聊聊怎么自定义 Linux 终端前缀也就是那个提示符PS1。我会从最底层的原理拆起讲到颜色、动态内容Git 分支、退出码、虚拟环境、工具选型最后再给你一套我能直接用的配置和踩坑记录。不管你是在自己电脑上折腾还是天天要登服务器干活这篇都能让你在“花哨”和“实用”之间找到平衡。1. 先搞懂终端提示符的本质PS1 到底是个啥很多人一上来就到处抄 PS1 配置抄完发现有的生效有的不生效问题出在对“提示符是什么”没有概念。其实提示符就是一个普通的环境变量叫 PS1全称是 Prompt String 1也就是 shell 在等待你输入下一条命令时显示的那串字符。Bash包括 zsh在每次显示提示符之前会重新解析一遍 PS1 里写的内容把转义序列替换成真实信息。比如\u是当前用户名\h是主机名\w是当前完整路径\$会根据你是普通用户还是 root 显示$或#。默认提示符之所以长那样就是因为发行版预设的 PS1 差不多是\u\h:\w\$ 这种结构。理解了“每次渲染都会重新解析”这一点后面玩动态内容才有底气。你想让提示符里带当前时间、带 Git 分支、带上一次命令的退出码本质就是利用这个每次渲染的机制。它不是一次性定死的静态字符串而是一个“每次出现都会现算”的迷你界面。再补一个新手容易踩的坑PS1 的值建议用单引号包裹别用双引号。区别在于——# 假设你已经定义了变量 NAMEdeveloper # 双引号赋值的时候就把 NAME 展开了提示符里始终是 developer PS1Hello $NAME # 单引号赋值时不展开每次渲染提示符时才展开可以动态变化 PS1Hello $NAME 如果你想把一些 shell 变量动态放进提示符那么通常要单引号或者对特殊符号做转义。这个细节决定了你的花哨效果是“活的”还是“冻结的”。还有个概念叫 PS2、PS4。PS2 是命令没写完、按了回车换行时出现的次级提示符默认是PS4 是set -x调试时每条命令前的前缀默认是。想彻底统一风格可以一起改但绝大多数人改 PS1 就够了。另外提示符的持久化靠的是配置文件。Bash 里一般写在~/.bashrc改完执行source ~/.bashrc或重新打开终端就会生效。如果你是登录 shell 且被发行版设计成了非交互式可能还得在~/.bash_profile或~/.profile里手动 source 一下~/.bashrc不然 ssh 登上去看到的还是默认提示符。这个细节等最后排查章节再展开。2. 颜色的花活从 ANSI 转义到 256 色玩法提示符的“花哨”大部分来自颜色。终端本身不支持富文本它靠的是一套叫 ANSI 转义序列的控制码。简单说就是往输出流里塞一个形如\e[...m的指令终端看到后就会切换颜色样式。这里的\e是 ESC 字符[是控制序列引导符m表示结束。一条基础的颜色序列长这样# 绿色文字\e[32m然后 \e[0m 还原 echo -e \e[32m这段文字是绿色\e[0m把这个逻辑搬到 PS1 里就是在字符串中混入颜色码PS1\[\e[32m\]\u\[\e[0m\]\h:\w\$ 这段配置会只把用户名染成绿色。这里有三个要点必须展开讲否则你后面必翻车。第一非打印字符要用\[和\]包起来。颜色码本身不占据屏幕宽度但它也是字符Bash 计算提示符宽度时如果不把它们排除在外就会算错行宽。造成的结果很恶心命令太长换行时光标跑的位置不对退格和 CtrlA 会把字符“吃”掉整行编辑直接乱掉。所以\[\e[32m\]这种写法是标准姿势千万别学网上偷懒的写法少写括号。第二颜色码要成对使用。你开了一个颜色就要在同一段提示符结束时\e[0m关掉。如果漏了颜色会一直“污染”到你自己输入的命令和命令输出满屏都是绿色或者红色。第三每个终端模拟器的字体、背景不同同一套配色在不同机器上观感差异极大。色号要结合自己的主题微调不要全盘照抄。ANSI 基础颜色表记住这几个就够了平时 90% 的需求都在里面效果前景色背景色默认/还原00加粗1-斜体部分终端支持3-下划线4-红色3141绿色3242黄色3343蓝色3444品红3545青色3646白色3747但基础色只有 8 种玩“花里胡哨”显然不够。你可以用 256 色模式语法是\e[38;5;编号m表示文字颜色\e[48;5;编号m表示背景颜色。编号从 0 到 255其中 0-7 是基础色8-15 是亮色16-231 是 6x6x6 色彩立方体232-255 是灰阶。想知道某号色长什么样在终端里跑这个循环就能直接预览for i in $(seq 0 255); do printf \e[38;5;%sm %3s \e[0m $i $i if [ $(( (i 1) % 8 )) -eq 0 ]; then echo; fi done我的经验是256 色里的 34-37绿色系、68-75蓝色系、208-215橙红色系在深色终端下好看又醒目。别一上来就整 16m 真彩色\e[38;2;R;G;Bm那个语法虽然理论上支持任意 RGB但不少老终端和 tmux 会话兼容性差同一套配置换个环境就失灵。想要稳妥的花哨256 色是性价比最高的选择。配色设计上我的建议是别超过三种强调色。比如路径用绿色Git 分支用青色错误状态用红色其他元素一律默认灰白。这样信息层次分明而不是圣诞树。如果你终端背景是浅色那配色逻辑完全不同——比如浅色背景下用深蓝、深绿而不是亮黄和白色。总之先看清自己的背景再选色。3. 往里塞动态信息让前缀自己报当前状态纯颜色只能算涂鸦真正的“花里胡哨”是让提示符活起来自动告诉你当前环境的实时状态。下面这几个是我实测最常用的按优先级排。3.1 路径和用户信息\w显示完整路径而且会自动把家目录缩写为~\W只显示最后一级目录。我推荐用\w因为在多层目录里动弹时看到「我在哪」比看到「最后一层文件夹叫啥」有用得多。如果你路径太长嫌占地方可以自己写函数把路径压缩成/a/b/c这种风格但那是另一个话题了这里不展开。用户和主机名默认就在提示符里但可以做得更聪明普通用户用默认颜色显示root 用户把提示符变红并改成#这样你在生产环境就不会因为搞不清身份敲出危险命令。3.2 退出码上一条命令成功还是失败你想知道刚敲的命令成没成功不用稀罕去 echo$?直接在提示符里显示就行。原理是每次渲染提示符时读取$?变量它是上一条前台命令的退出码0 表示成功非 0 表示失败。这里有个坑必须在 PS1 里第一条变量读取时就把它存下来因为你在 Prompt 里每执行一个命令$?就被新命令的结果覆盖了。我一般会在~/.bashrc里写个小函数__last_exit_status() { local code$? if [ $code -ne 0 ]; then printf \[\e[38;5;196m\]✘%s\[\e[0m\] $code fi }然后把$(__last_exit_status)加到 PS1 里。这样命令失败时提示符旁边会多一个红色的小叉和退出码。平时成功时不显示保持清爽。请放心这里的“✘”是普通文本符号不是 emoji在各类终端里显示都稳定。3.3 Git 分支状态对搞开发的人来说提示符显示 Git 分支几乎是刚需。Git 2.22 以上版本可以用git branch --show-current来拿当前分支但每次渲染提示符都跑一个 Git 命令在超大仓库上会有肉眼可感的延迟。很多人用了花哨提示符之后嫌“敲命令变卡”多半就是这里出了问题。更稳的做法是用 Git 官方自带的 bash 补全函数__git_ps1。老版本发行版里只要 source 一下 git 的提示脚本就能用# 一般在这个路径 source /usr/share/git-core/git-prompt.sh # 或者 source /etc/bash_completion.d/git-prompt.sh然后配置它的显示内容export GIT_PS1_SHOWDIRTYSTATE1 # 有未提交修改时显示 * export GIT_PS1_SHOWUNTRACKEDFILES1 # 有未跟踪文件时显示 % export GIT_PS1_SHOWSTASHSTATE1 # 有 stash 时显示 $ export GIT_PS1_SHOWUPSTREAMauto使用方式不是命令替换而是把__git_ps1的结果拼进 PS1PS1...$(__git_ps1 (%s))...这个函数内部用了比较优化的方式检测 Git 目录比裸跑git branch快不少。如果你经常切分支、看状态还可以配合 Git 的 alias把常用命令打短一点整体体验会上一个台阶。3.4 Python 虚拟环境和容器标识Python 虚拟环境激活后环境变量VIRTUAL_ENV会指向虚拟环境目录conda 则是CONDA_DEFAULT_ENV。你可以检测这些变量把环境名塞进提示符免得在多个环境之间切换时搞混。__venv_info() { if [ -n $VIRTUAL_ENV ]; then printf (%s) $(basename $VIRTUAL_ENV) elif [ -n $CONDA_DEFAULT_ENV ]; then printf (%s) $CONDA_DEFAULT_ENV fi }有些开发框架比如某些 Python 虚拟环境激活脚本会自动修改 PS1结果你辛苦配的提示符被它强行插了一段前缀。遇到这种情况可以在激活脚本里关掉它修改 PS1 的行为或是在自己的 PS1 定义里把前缀信息作为变量等激活后再重新 source 一下 bashrc。总之别让它抢你地盘。一套完整的动态提示符效果大致是这样的普通目录下~/project/src (main) $命令失败后~/project/src (main) ✘1 $虚拟环境里(venv) ~/project/src (main) $看着不起眼但实际用起来真的能一眼捕捉当前状态比满屏翻输出高效多了。4. 花哨路线选型手写 PS1、框架主题、现成提示符工具既然要折腾先想清楚路线。我身边玩终端的基本上分三派各有各的利弊。手写 PS1 派。配置全部放在 bashrc 里用转义序列加函数实现。优点是零额外依赖、完全可控、任何环境都适用尤其是服务器上你没法装花哨工具时手写是唯一选择。缺点是要维护一堆转义和函数刚上手时容易出错。框架主题派。典型路线是 zsh 主题 补丁字体。这类主题效果是真的华丽各种图标、渐变、时间、电量、网络延迟全都能显示配置过程通常有向导交互。但问题也不少需要安装特定字体Nerd Font 一类的补丁字体否则图标全变成乱码方块依赖框架和插件体系升级或换机器时折腾成本高另外 zsh 本身也不是所有发行版默认装的。现成提示符工具派。社区里比较流行的有 starship 这类跨平台提示符工具它支持 bash、zsh、fish 等多种 shell配置走独立文件还能按目录、项目语言分别显示不同内容。好处是渲染快、跨 shell 风格统一、配置起来像写 TOML 一样直观。我实际用了不少时间感觉它适合本地开发主力机尤其是你会在 bash 和 zsh 之间反复横跳的场景。缺点是它本质是一个二进制程序每次渲染提示符都会拉起进程虽然实测消耗很小但在性能较差的嵌入式环境或大量并行的极端场景还是会有点压力。另外它的花哨风格偏“现代简洁”不会像 zsh 主题那样夸张。这三种路线怎么选我做了一张表方案上手难度可控性额外依赖性能开销适合人群手写 PS1中极高零极低服务器用户、喜欢完全掌控的人zsh 主题中高中字体、框架中本地开发、追求视觉效果的人starship 这类工具低高一个二进制低跨 shell、跨机器保持一致的人我给大多数普通用户的建议是个人电脑上可以先用现成提示符工具或主题方案图个快但服务器上务必保持克制手写一个够用的 PS1 就好。服务器是拿来干活的不是拿来看的万一调出问题影响排查效率得不偿失。没有任何工具比手写零依赖更能保证“在任何环境都能显示正常”。5. 一份可复制的完整配置手写版“花哨但克制”下面这份配置是我在主力机和服务器的 bash 上都在用的一个变体效果统一不依赖任何外部工具。全部写在~/.bashrc里就行。# ---------- 花里胡哨但克制的 PS1 ---------- # 颜色定义 GREEN\[\e[38;5;034m\] CYAN\[\e[38;5;037m\] YELLOW\[\e[38;5;220m\] RED\[\e[38;5;196m\] DIM\[\e[38;5;245m\] RESET\[\e[0m\] # 上一条命令的退出码 __last_exit_status() { local code$? if [ $code -ne 0 ]; then printf ${RED}✘%s${RESET} $code fi } # Git 分支与状态使用官方 __git_ps1 if [ -f /usr/share/git-core/git-prompt.sh ]; then source /usr/share/git-core/git-prompt.sh GIT_PS1_SHOWDIRTYSTATE1 GIT_PS1_SHOWUNTRACKEDFILES1 GIT_PS1_SHOWSTASHSTATE1 GIT_PS1_SHOWUPSTREAMauto GIT_PS1_DESCRIBE_STYLEdescribe __git_info$(__git_ps1 ${CYAN}(%s)${RESET} 2/dev/null) else __git_info fi # Python 虚拟环境/conda 名称 __venv_info() { if [ -n $VIRTUAL_ENV ]; then printf ${YELLOW}(%s)${RESET} $(basename $VIRTUAL_ENV) elif [ -n $CONDA_DEFAULT_ENV ]; then printf ${YELLOW}(%s)${RESET} $CONDA_DEFAULT_ENV fi } # 根据 uid 决定提示符符号和颜色 if [ $UID -eq 0 ]; then PROMPT_SYMBOL${RED}#${RESET} else PROMPT_SYMBOL${GREEN}\$${RESET} fi # 组装 PS1 PS1$(__last_exit_status) \ $(__venv_info)\ ${GREEN}\w${RESET} \ ${__git_info}\ ${PROMPT_SYMBOL}装好后大概长这样~/repo (main) $ ~/repo (main) ✘1 $ (venv) ~/repo (main) $逐块解释一下__last_exit_status是 PS1 里最先执行的函数确保$?还是上一条命令的退出码。因为我每次都把函数放在字符串开头所以它读取到的退出码是准确的。颜色变量都被\[\]包住了所有非打印字符都统一处理不会破坏行宽计算。Git 分支显示依赖官方git-prompt.sh如果你系统里没这个文件可以去掉那段逻辑或者改用git branch --show-current 2/dev/null不过性能差一些。所有动态信息都以“前缀”方式叠加在路径左侧把核心信息都集中在最前面右侧留白给长命令输入。调试这个配置时先用bash -n ~/.bashrc检查语法没错再source ~/.bashrc。如果改完提示符直接乱掉了最快的恢复办法是执行reset或者干脆exec bash——这条命令会重新加载一次 bash顺便把当前会话救回来。6. 花哨的代价翻车现场与排查技巧实录玩 PS1 一定会踩坑。我把这些年遇到的典型问题和解决办法整理成一个速查表都是血泪经验。现象原因解决办法输入的命令也变成彩色颜色码没关缺少\e[0m在每个彩色片段末尾加RESET换行错位、退格“吃”字符颜色码没有用\[ \]包裹所有非打印转义都用\[\e[...m\]包裹提示符显示^[或乱码终端不识别 ANSI 转义检查终端类型和 TERM 变量tmux 里注意配置Git 分支不显示不在 Git 仓库或没装 git-prompt检查目录source 对应脚本后重试分支显示很慢直接用git branch命令替换换用__git_ps1或考虑用轻量脚本缓存分支名退出码永远是 0在函数里先执行了其他命令确保读取$?是 PS1 里的第一条操作提示符内容“冻结”不变配置用了双引号导致变量提前展开把 PS1 定义改成单引号ssh 登进去还是默认提示符bash 以非交互方式启动在~/.bash_profile里手动 source~/.bashrc中文路径或符号宽度错位终端对宽字符的计算不一致路径用英文或考虑换一个支持宽字符的终端挑三个重点多说几句。第一个是\[\]的坑。新手最容易犯的错是把整个\[\e[32m\]写成\e[32m看似区别不大但一旦命令行长度超过终端宽度光标就开始飘。建议从一开始就养成习惯颜色码一律用\[\e[m\]这种闭合写法。你把这个肌肉记忆建立起来后面玩得再花都不会出低级故障。第二个是退出码读取的时序。很多人把函数写成__last_exit_status() { local code$? echo -n hola $code # 这里 echo 本身不算因为 $? 已经存了 # 但如果你先执行了 date 或别的命令$? 就被覆盖了 }注意read 到 local 变量这一步并没有改变$?所以这个写法是对的。但如果你在函数最前面加了一句date /dev/null来做调试那终值就永远是 0。排查的时候先怀疑时序再怀疑颜色。第三个是服务器环境的问题。有些生产机器的~/.bashrc开头就有“非交互式 shell 直接 return”的设定导致你从 ssh 登录时它根本没有执行到你自定义 PS1 的那一行。解决办法很粗暴在~/.bash_profile里加一行source ~/.bashrc确保交互式登录 shell 也会读 bashrc。这个坑我在不少发行版上都遇到过不是什么罕见特例。还有一个值得单独说的如果你配好之后发现 tmux 或 screen 里面的颜色和外面不一致多半不是 PS1 的锅而是 tmux 对 256 色支持设置的问题。常见做法是在~/.tmux.conf里设置set -g default-terminal screen-256color或tmux-256color让 tmux 会话正确识别颜色模式。所以遇到颜色不对先分清是 PS1 的问题还是终端复用器的问题。我在实际使用中最后的体会是提示符这东西做得再花最终还是会慢慢精简。现在我的主力配置其实就保留了路径、Git 分支和退出码三项颜色不超过三种。每次想给提示符加新功能前我都会先问自己一个问题这一行东西能不能让我少敲一条命令如果能就留下如果只是为了好看那就先试试看反正踩一次坑对 shell 的理解也就深一层。

相关新闻

网络应用层协议详解:DNS、DHCP、HTTP与代理CDN排障指南

网络应用层协议详解:DNS、DHCP、HTTP与代理CDN排障指南

做网络排查的时候,最怕听到一句话:“我这边看是通的啊。” 大部分应用层问题,恰恰就出在“看是通的”和“实际没通”之间的那几层细节上。应用层是整个网络协议栈里离用户最近、也最容易被轻视的一层。你写代码时天天跟 HTTP 打交道&#xff…

2026/10/17 16:09:24 阅读更多 →
Java目录监控实战:WatchService实时监听文件夹变化与事件处理

Java目录监控实战:WatchService实时监听文件夹变化与事件处理

简介:文件系统监听是应用感知目录内文件变化的常见需求,Java NIO 提供的 WatchService 正是面向这类场景的标准解决方案。其原理是将目录注册到系统文件事件机制,当文件发生创建、修改或删除时,操作系统主动推送事件,程…

2026/10/17 16:09:24 阅读更多 →
PDMWeb-开源:工业级PDM前端框架快速部署与BOM权限实战

PDMWeb-开源:工业级PDM前端框架快速部署与BOM权限实战

简介:PDMWeb-开源是一款面向中小制造企业及PLM技术学习者的轻量级Web端产品数据管理(PDM/PLM)系统,聚焦设计文档协同、变更控制、生命周期跟踪与CAx集成等核心场景,有效解决研发过程中版本混乱、流程脱节、跨角色协作低…

2026/10/17 16:09:24 阅读更多 →

最新新闻

SPC开发包源代码实战:控制图与过程能力计算落地指南

SPC开发包源代码实战:控制图与过程能力计算落地指南

简介:这份SPC开发包源代码面向工业自动化与现场总线方向的嵌入式开发者,聚焦Profibus-DP从站通信的底层实现,适合已具备C语言基础、希望深入理解协议栈细节的中高级工程师。压缩包共4个文件,包含3个c源文件与1个h头文件&#xff0…

2026/10/17 17:12:18 阅读更多 →
人工智能导论期末冲刺:知识表示、归结原理与可信度计算全攻略

人工智能导论期末冲刺:知识表示、归结原理与可信度计算全攻略

简介:这是一份山东大学《人工智能导论》课程概念汇总PDF,适合正在备考期末、考研复试或系统梳理AI基础概念的本科生与自学读者。内容以章节为主线,从智能、知识、智能特征出发,梳理人工智能定义与发展阶段;随后系统整理…

2026/10/17 17:12:18 阅读更多 →
Serv-U 14.0白金版实战:老文件服务器安全升级与多协议配置指南

Serv-U 14.0白金版实战:老文件服务器安全升级与多协议配置指南

简介:Serv-U 14.0 白金版是一款面向专业用户与企业级场景的 FTP 服务器软件,主打高效、安全的文件传输与稳定的服务运营。该资源包聚焦其界面与传输历史记录相关的前端素材,适合正在部署或维护 FTP 服务、需要了解历史记录模块实现方式的运维…

2026/10/17 17:12:17 阅读更多 →
claude-code-templates 不是 CLI:本地代码知识库的正确打开方式

claude-code-templates 不是 CLI:本地代码知识库的正确打开方式

1. 这不是又一个 CLI 工具:Claude-Code-Templates 的真实定位与误用陷阱“claude-code-templates”——光看这个名字,绝大多数人第一反应是:“哦,Anthropic 官方出的 Claude 代码生成 CLI?”或者“是不是类似 Copilot …

2026/10/17 17:12:17 阅读更多 →
光伏功率预测新框架:VMD-RIME-LSTM原理与Matlab实战

光伏功率预测新框架:VMD-RIME-LSTM原理与Matlab实战

现在到处都能看到光伏功率预测的论文,组合模型一个比一个花哨,但很多同学卡在同一个地方:方法选了一堆,真正能跑出干净结果、还能把论文故事讲完整的没几个。最近被问得最多的就是"变分模态分解霜冰算法优化LSTM"这条路…

2026/10/17 17:12:17 阅读更多 →
Unity虚拟装配中的机械运动仿真:从可视化到工程验证

Unity虚拟装配中的机械运动仿真:从可视化到工程验证

1. 这不是“转个齿轮”那么简单:虚拟装配仿真里藏着的机械逻辑陷阱很多人第一次在Unity里拖进一个齿轮模型,加个Rigidbody和HingeJoint,再写几行代码让电机轴转起来,看到齿轮咬合转动,就以为“机械运动仿真”这事搞定了…

2026/10/17 17:11:17 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →