← 首页·文章列表

敲键盘 vs 点鼠标:CLI、TUI、GUI 到底怎么选?

最近在折腾 Claude Code,写了两周纯命令行,发现自己以前是不是对 CLI 有偏见。

我是那种 GUI 长大的人。Windows 养出来的,鼠标点来点去,文件夹要能看见才安心。结果 Claude Code 一装好,全屏黑色终端,光标一闪一闪,等我输入。。

说实话,第一反应是:这是什么复古操作?

然后我用了一周,发现事情没那么简单。

CLI 到底是什么

CLI 的全称是 Command Line Interface,就是纯打字,没有任何按钮、没有任何窗口。打个比方:

听起来 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 的问题也很明显:

  1. 效率有上限 — 你点鼠标的速度永远比打字慢
  2. 自动化困难 — GUI 操作很难写成脚本让它自动跑
  3. 占用资源多 — 一个 PyCharm 打开占 1G 内存,一个终端占 10M

所以 GUI 适合什么?适合探索新东西、适合不需要重复的操作、适合需要直观反馈的场景。

一个实用框架

说了这么多,到底怎么选?

场景 推荐 原因
每天重复的操作 CLI 写个脚本,一键搞定
第一次用某个软件 GUI 先看明白它是什么
需要看状态、反复操作 TUI 直观 + 高效兼顾
临时性的单次操作 GUI 不值得花时间记命令
远程服务器 CLI / TUI 没有图形界面可选
本地日常开发 GUI + CLI 混用 GUI 探索,CLI 高效执行

我自己的用法是这样的:

📷 此处原有配图

AI 时代,这些东西变了没

最近在想一个问题:AI 时代,CLI/TUI/GUI 的格局会变吗?

我觉得会变,但不是因为 AI 替代了它们,而是因为 AI 让 CLI 的门槛降低了。

以前用 CLI,要记住一堆命令、参数、语法。现在你可以直接跟 AI 说"帮我把这个文件夹里的所有图片压缩一下",AI 帮你生成命令,你复制执行就行。

命令还在,但不需要背了。

📷 此处原有配图

这也意味着,CLI 的价值从"记忆命令"变成了"理解命令"——你能看懂 AI 给你写的命令,能判断它对不对,能在出错时知道怎么修。

从这个角度看,CLI/TUI/GUI 的本质从来没变:都是人和电脑对话的方式,只是效率不同、门槛不同、适合的场景不同。

理解了这个,你就不会在"用哪个"这个问题上纠结了。

用哪个舒服用哪个,用哪个高效用哪个,都行。