最近在折腾 Claude Code,写了两周纯命令行,发现自己以前是不是对 CLI 有偏见。
我是那种 GUI 长大的人。Windows 养出来的,鼠标点来点去,文件夹要能看见才安心。结果 Claude Code 一装好,全屏黑色终端,光标一闪一闪,等我输入。。
说实话,第一反应是:这是什么复古操作?
然后我用了一周,发现事情没那么简单。
CLI 到底是什么
CLI 的全称是 Command Line Interface,就是纯打字,没有任何按钮、没有任何窗口。打个比方:
- GUI 像是去餐厅,服务员站在你旁边,你说"要一份牛排",他帮你切好端上来
- CLI 像是对着对讲机喊"牛排",然后你自己切
听起来 CLI 更麻烦对吧?
但问题在于——效率。
你说"帮我打开 VSCode",GUI 要:找到图标、点击、等待启动。但如果你在终端里打一行字:
code .
三秒钟,VSCode 开了,当前目录就是你的项目。
你说"帮我把今天所有 .md 文件复制到 backup 文件夹",GUI 要:打开文件夹、一个个选、复制、新建文件夹、粘贴。CLI:
cp $(find . -name "*.md" -mtime 0) backup/
TUI:终端里的图形界面
📷 此处原有配图
然后我发现了 TUI。
TUI 的全称是 Terminal User Interface,就是你在终端里看到的那些"假装有图形界面"的东西。比如 htop——它在终端里显示 CPU 使用率、内存、进程列表,看起来像是有界面了,但其实只是文字和颜色拼出来的。
还有我最近常用的 lazygit,它把 Git 的操作变成了终端里的"窗口",你可以用键盘在里面点来点去、查看差异、提交代码。
TUI 牛在哪里?它既有 CLI 的效率,又有 GUI 的直观。
你不用记住那些拗口的命令,但也不需要切换到鼠标。敲键盘全搞定,同时能看到状态。
用 htop 举个例子。你打开它,看到所有进程,按一下某个键就能排序、杀掉、查看详情。比你用任务管理器点来点去快多了。
top 的界面(纯文字)vs htop 的界面(终端"画"出来的)
GUI:窗口、鼠标、所见即所得
最后说 GUI。
GUI 大家都熟,就是 Windows、macOS 那种,有窗口、有图标、有鼠标操作。
GUI 的好处是什么?认知负荷低。
一个新软件,你打开看两眼,大概知道怎么用。按钮在那儿,菜单在顶部,功能一目了然。不需要记忆任何命令,不需要理解什么"参数",直接点就行。
但 GUI 的问题也很明显:
- 效率有上限 — 你点鼠标的速度永远比打字慢
- 自动化困难 — GUI 操作很难写成脚本让它自动跑
- 占用资源多 — 一个 PyCharm 打开占 1G 内存,一个终端占 10M
所以 GUI 适合什么?适合探索新东西、适合不需要重复的操作、适合需要直观反馈的场景。
一个实用框架
说了这么多,到底怎么选?
| 场景 | 推荐 | 原因 |
|---|---|---|
| 每天重复的操作 | CLI | 写个脚本,一键搞定 |
| 第一次用某个软件 | GUI | 先看明白它是什么 |
| 需要看状态、反复操作 | TUI | 直观 + 高效兼顾 |
| 临时性的单次操作 | GUI | 不值得花时间记命令 |
| 远程服务器 | CLI / TUI | 没有图形界面可选 |
| 本地日常开发 | GUI + CLI 混用 | GUI 探索,CLI 高效执行 |
我自己的用法是这样的:
- 写代码用 VSCode(GUI),因为需要直观查看文件结构、调试
- Git 操作用 lazygit(TUI),因为比纯命令直观,比 SourceTree 轻量
- 查资料、装包、跑脚本用终端(CLI),因为效率最高
- 看系统状态用 htop(CLI/TUI 混合)
📷 此处原有配图
AI 时代,这些东西变了没
最近在想一个问题:AI 时代,CLI/TUI/GUI 的格局会变吗?
我觉得会变,但不是因为 AI 替代了它们,而是因为 AI 让 CLI 的门槛降低了。
以前用 CLI,要记住一堆命令、参数、语法。现在你可以直接跟 AI 说"帮我把这个文件夹里的所有图片压缩一下",AI 帮你生成命令,你复制执行就行。
命令还在,但不需要背了。
📷 此处原有配图
这也意味着,CLI 的价值从"记忆命令"变成了"理解命令"——你能看懂 AI 给你写的命令,能判断它对不对,能在出错时知道怎么修。
从这个角度看,CLI/TUI/GUI 的本质从来没变:都是人和电脑对话的方式,只是效率不同、门槛不同、适合的场景不同。
理解了这个,你就不会在"用哪个"这个问题上纠结了。
用哪个舒服用哪个,用哪个高效用哪个,都行。