OpenCockpitOpenCockpit
Console 面板

终端气泡

Cockpit 的"终端"其实是两种气泡:跑 lspytest 用的一次性命令气泡,和跑 bashvimtop 用的完整交互式终端气泡。输入栏根据你打的内容自动选对的(详见命令输入)。

一次性命令

打个普通的:

make build

气泡打开,命令开跑,输出流式进来。结束后能看到 exit status。气泡留在面板里 —— 滚动看历史输出、复制、内部搜索、重跑都可以。

它能做什么:

  • 实时流式 —— 输出随命令产生,不是跑完才出来。
  • 保留 ANSI 颜色
  • 复制输出 —— 气泡标题栏的 📋 图标(复制时去掉 ANSI 转义)。复制命令本身 —— 标题栏的 📄 图标。
  • Cmd+F 搜索 输出。两种模式可切换:
    • 搜索:就地高亮匹配。
    • 过滤:只显示匹配的行,其它都藏。
  • Ctrl+C 按钮(运行中显示在气泡底部状态条/最大化时显示在头部):先给整个进程树(根 PID 及所有子孙)发 SIGTERM,1 秒后还活着的发 SIGKILL 兜底。
  • 运行中喂 stdin —— 气泡底部状态条有个小输入框给长跑命令传数据:回车送一行、Tab 送制表符、Ctrl+<字符> 送对应控制字符(Ctrl+CCtrl+D 等都能用)。
  • 重跑 标题栏的 ↻ 图标,不用再打一遍。
  • 删除 标题栏的 ✕ 图标;运行中点删除会先发中断、再清掉气泡。

它不是什么:

  • 不是完整 PTY 意义上的交互式。运行需要真正终端的东西(vimtop、不带参数的 python)大概率会坏或卡。这些请用下面的交互式气泡。

交互式终端

打一个已知的交互式程序:zshbashshfishnupythonpython3nodeirbluavimnvimvinanoemacstophtoplessman

真正的终端气泡打开,背后是个 PTY(nodePty.spawn)。vim 能跑。top 能跑。Ctrl+C 能用。鼠标选中、复制、粘贴 —— 都能用。

功能怎么做
打字执行在气泡里点一下、开始打。跟你平时的终端一样。
复制选中文本 —— Cockpit 自动复制(多数环境下不用 Cmd+C)。
粘贴Cmd+V
搜索Cmd+F 打开搜索栏
最大化Cmd+M 把气泡撑满整个 Console 面板;Esc 还原
停掉进程Ctrl+C 跟普通终端一样;气泡上的 Ctrl+C 按钮发 SIGTERM,1 秒后没退就 SIGKILL

关闭交互式气泡时进程收到 SIGTERM(同样带 SIGKILL 兜底)。气泡的输出历史会保留,除非你点显式的删除按钮。

用哪个 shell?

Cockpit 用你自己的默认 shell(读 SHELL 环境变量,Windows 上读 COMSPEC),以 <shell> --login -c <命令> 的形式执行 —— 一次性命令和 PTY 气泡都一样。也就是说引号、通配、shell 别名、~ 展开、set -e 之类的行为,全按你 shell 自己的语义。

如果你想临时用别的 shell,交互式气泡里你自己说了算 —— 打 zshbashfish 都行,Cockpit 不会强行替换。

什么时候选哪个

  • 想看一条具体命令的输出?一次性。
  • 想要一个跑好几个命令、维持状态(env、当前目录、history)的会话?交互式。
  • 跑全屏 TUI 工具(vimtop 等)?交互式 —— 只有那里能跑。
  • 跑给 AI 看的命令(聊天里的 !command)?一次性,输出回流到聊天。

下一步