名词解释教学工作区 · 课程 0001 · 形态 对比组 · 约 6 分钟 · 前置:无 · 相关:0002 · 编辑器 / 编译器 / 解释器 / IDE · 0011 · tmux · 2026-10-01

CLI、TUI、GUI:你和电脑说话的三条通道

你能做到:拿到一款软件,指出它这次给你的是哪条通道 —— 一次敲完一条命令、用键盘在字符画的面板里翻, 还是用鼠标点窗口;并说出这条通道换来了什么、代价又是什么。

1 | 定义

三个词说的是同一件事的三种做法:你把意图怎么送进电脑、电脑把状态怎么回给你。判据只有两条 —— 屏幕上画的是字符还是像素,以及你是一次敲完命令、在选项间移动,还是用指针点。

2 | 它们解决什么麻烦

三个词解决的是同一件事:人得把意图说清楚,机器得把状态讲明白。区别在于用哪套材料来做 —— 文本行、字符画的面板,还是像素画的窗口。

三者不是三个时代,而是三套材料:文本行、字符网格(character grid,把屏幕当成等宽字符排成的方格)、像素窗口。同一款软件常常同时给出好几条。

3 | 特征矩阵

每一列都是一眼能看出来、能当场问出来的事。把软件叫过来逐列问,整行对得上的就是它。

名词靠什么输入画面是怎么画的要不要图形环境能不能脚本化远程低带宽下好不好用典型例子
CLI 一次敲完一条完整命令 只有一行行文本,没有面板 不要 最容易,输出能直接接给下一条命令 好用:只传字符,连接再差也撑得住 ls、git、ssh
TUI 键盘在选项间移动,部分支持鼠标 用字符拼出边框、列表和进度条 不要,有个终端就够 较难,主要靠快捷键和批量模式 好用:传的还是字符,不吃带宽 top、htop、vim
GUI 指针点选、拖拽 用像素画出窗口、按钮和滚动条 要,得先有窗口系统 难,动作都绑在点击上 差:画面要一帧帧传过去 浏览器、Photoshop、文件管理器

横着读一遍就够:「画面是怎么画的」这一列是三个词最容易混的地方,右边的「远程」一列帮你复核 —— 传字符的都不怕网络差,传像素的才怕。「能不能脚本化」那一列解释的是另一个常被问到的问题:为什么自动化最后都落到命令行上。

4 | 各自怎么做

5 | 各自的代价

6 | 区分使用场景

手头这件事,按下面四条挑就行:

判断口径只有两问:屏幕上画的是什么(字符流、字符面板,还是像素),你怎么操作(整条命令、选项间移动,还是指针点选)。两问指向同一个答案,再下结论。界面顺不顺手是另一本账,那要拿人来量(UI 与 UX)。

7 | 常见误解

8 | 练习

三个场景,每题只在四个词里选一个;选完立刻看到这笔账记在哪一节。

1. 同一件事要在几十台机器上重复做,还想把这次操作原样存下来,下个月照着再跑一遍。

对。要复现、要批量,就得让操作变成可复制的一行文字 —— 这正是 CLI 的长处;交给计划任务或持续集成,下个月照着再跑一遍即可。TUI 存不下整套动作,GUI 的动作绑在点击上,终端模拟器只负责显示。

2. 连上一台没有图形环境的服务器,想一眼看到各进程占了多少内存,还能上下翻、按键换个排序。

对。要看的是状态而不是一段文本,又没有图形环境 —— 用字符画出面板、键盘在选项间走,正好落在 TUI 上(第 4 节第 ② 条);只传字符,所以细线连接也撑得住。

3. 要裁剪照片、把十几个窗口并排对照,还要用鼠标拖着调版式。

对。精细排版、并排对照、拖着调版式都要像素和指针,字符网格里做不了(第 5 节第 ② 条);这也是 GUI 换来方便时付的那笔账 —— 要图形环境,远程还得传画面。