Console 面板
终端气泡
Cockpit 的"终端"其实是两种气泡:跑 ls、pytest 用的一次性命令气泡,和跑 bash、vim、top 用的完整交互式终端气泡。输入栏根据你打的内容自动选对的(详见命令输入)。
一次性命令
打个普通的:
make build
气泡打开,命令开跑,输出流式进来。结束后能看到 exit status。气泡留在面板里 —— 滚动看历史输出、复制、内部搜索、重跑都可以。
它能做什么:
- 实时流式 —— 输出随命令产生,不是跑完才出来。
- 保留 ANSI 颜色。
- 复制输出 —— 气泡标题栏的 📋 图标(复制时去掉 ANSI 转义)。复制命令本身 —— 标题栏的 📄 图标。
Cmd+F搜索 输出。两种模式可切换:- 搜索:就地高亮匹配。
- 过滤:只显示匹配的行,其它都藏。
Ctrl+C按钮(运行中显示在气泡底部状态条/最大化时显示在头部):先给整个进程树(根 PID 及所有子孙)发SIGTERM,1 秒后还活着的发SIGKILL兜底。- 运行中喂 stdin —— 气泡底部状态条有个小输入框给长跑命令传数据:回车送一行、
Tab送制表符、Ctrl+<字符>送对应控制字符(Ctrl+C、Ctrl+D等都能用)。 - 重跑 标题栏的 ↻ 图标,不用再打一遍。
- 删除 标题栏的 ✕ 图标;运行中点删除会先发中断、再清掉气泡。
它不是什么:
- 不是完整 PTY 意义上的交互式。运行需要真正终端的东西(
vim、top、不带参数的python)大概率会坏或卡。这些请用下面的交互式气泡。
交互式终端
打一个已知的交互式程序:zsh、bash、sh、fish、nu、python、python3、node、irb、lua、vim、nvim、vi、nano、emacs、top、htop、less、man。
真正的终端气泡打开,背后是个 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,交互式气泡里你自己说了算 —— 打 zsh、bash、fish 都行,Cockpit 不会强行替换。
什么时候选哪个
- 想看一条具体命令的输出?一次性。
- 想要一个跑好几个命令、维持状态(env、当前目录、history)的会话?交互式。
- 跑全屏 TUI 工具(
vim、top等)?交互式 —— 只有那里能跑。 - 跑给 AI 看的命令(聊天里的
!command)?一次性,输出回流到聊天。
下一步
- 命令输入 —— 完整的输入对应表
- 别名与环境变量 —— 给常用命令起短名
- CLI 参考 → cockpit terminal —— 从外部驱动终端气泡