htop不支持直接命令行导出,但可通过交互式导出(f2→setup→export options启用后f9)或退出后用ps精准导出;后者更通用稳定,推荐ps -eo或ps -t配合pid导出结构化快照。

htop 本身不直接支持“导出快照到文件”的命令行模式(不像 ps 那样可管道重定向),但它提供了两种可靠方式获取结构化快照信息:一种是借助其交互式界面手动触发导出,另一种是退出 htop 后用 ps 精准补全——两者结合才能兼顾可视化筛选与可保存的文本结果。
htop 内置导出功能(仅限部分版本,需确认支持)
较新版本的 htop(≥3.0)在交互界面中支持导出当前视图:
- 启动 htop 后,按 F2 进入设置菜单
- 选择 “Setup” → “Export options”
- 确保 “Enable export” 已启用(若无此选项,说明当前版本不支持)
- 返回主界面,按 F9(或某些版本为 F8)打开操作菜单,选择 “Export to file…”
- 输入路径如
/tmp/htop-snapshot.txt,回车即可保存当前显示的进程列表(含列头、颜色码被过滤,纯文本)
⚠️ 注意:该功能依赖编译时启用
--enable-export,Ubuntu/Debian 默认源安装的 htop 通常不含此特性;CentOS/RHEL 的 EPEL 版本也多不开启。建议先尝试,失败则转用下方通用方案。
用 ps 配合 htop 的筛选结果精准导出
这是最稳定、跨版本通用的方法:
- 在 htop 中定位目标进程(例如通过 F4 输入关键词过滤,或上下键选中)
- 记下关键 PID(比如看到 nginx 主进程 PID 是 12345)
- 退出 htop(按 q)
- 执行以下命令导出带线程、完整字段的快照:
ps -o pid,ppid,user,%cpu,%mem,rss,vsz,comm,args -T -p 12345 > /tmp/proc-12345-snapshot.txt
- 若需导出全部进程(等效于 htop 当前所见),可用:
ps -eo pid,ppid,user,%cpu,%mem,rss,vsz,stat,time,comm,args --sort=-%cpu > /tmp/all-processes-$(date +%s).txt
- 输出字段说明:
- pid,ppid:进程与父进程 ID,便于追溯来源
- %cpu,%mem:实时资源占比
- rss,vsz:实际内存与虚拟内存(KB)
- comm,args:简短命令名 + 完整启动参数(排查多实例关键)
- -T:启用线程级显示(对 Java/Nginx 等多线程程序必需)
补充技巧:一键保存当前 htop 视图(无需额外工具)
若你只是想快速存档当前屏幕内容(非结构化但含全部可见进程):
- 启动 htop
- 按 F10 或 q 退出前,终端会保留上屏输出
- 立即执行:
script -qec "htop -d 1 -C" /dev/null | sed '/^$/d' | head -n -2 > /tmp/htop-raw-snapshot.txt
(该命令运行一次 htop 并捕获其单帧输出,去空行后保存,适用于调试瞬时状态)
不复杂但容易忽略的是:htop 是交互式工具,它的强项在实时干预,而持久化快照仍要靠 ps 承担。把 htop 当“探针”,把 ps 当“记录仪”,配合使用才真正高效。











