一. 什么是 CLI

0. 什么是 GUI

GUI 是 Graphical User Interface(图形用户界面)的缩写,是一种允许用户通过鼠标点击、拖拽、菜单选择等图形化方式与计算机程序交互的界面方式。与 CLI 不同,GUI 提供按钮、窗口、图标等可视化元素,用户无需记忆命令,直接“所见即所得”地操作。

GUI 是一种交互模式,即【鼠标点击操作】—> 【图形反馈结果】

CLI 是 Command-Line Interface(命令行界面)的缩写,是一种允许用户通过输入文本命令与计算机程序进行交互的界面方式。与图形用户界面(GUI)不同,CLI 没有按钮、窗口或鼠标操作,用户需要记住并输入特定的命令来执行操作。

CLI是一种交互模式,即【输入文本命令】—> 【文本返回结果】

1. CLI 的核心特点

  • 文本驱动:所有操作都通过键入命令完成,输入后按回车执行。
  • 高效快捷:熟练用户可以通过组合命令和参数快速完成复杂任务,无需在菜单中层层点击。
  • 可脚本化:CLI 命令可以写入脚本文件批量执行,实现自动化操作。
  • 资源占用低:相比 GUI,CLI 程序通常占用更少的内存和 CPU 资源。
  • 远程操作友好:通过 SSH 等协议,CLI 可以方便地操作远程服务器。

2. 常见的 CLI 示例

类别示例说明
操作系统ls、cd、mkdirLinux/macOS 下的文件与目录操作
版本控制git commit、git pushGit 命令行工具
包管理npm install、pip install安装和管理软件依赖
容器docker run、docker psDocker 容器管理
数据库mysql -u root -p连接 MySQL 数据库

3. CLI 与 GUI 的对比

维度CLIGUI
操作方式键入命令鼠标点击
学习曲线较陡峭较平缓
执行速度快相对较慢
自动化能力强弱
适用场景开发、运维、服务器管理日常办公、设计、浏览

4. 总结

CLI 是程序员和运维人员日常工作中不可或缺的工具。虽然它看起来不如 GUI 直观,但一旦掌握常用命令,就能大幅提升工作效率,尤其是在服务器管理和自动化脚本场景中,CLI 几乎是唯一的选择。

二. 什么是 Shell

Shell(壳)是操作系统提供给用户与内核交互的命令行解释器。它接收用户输入的命令,解析后交给操作系统内核执行,再把结果返回给用户。简单来说,Shell 就是 CLI 背后的「翻译官」——你敲入 ls,Shell 把它翻译成内核能理解的操作,然后显示文件列表。

Shell 的工作流程:

用户输入命令 --> Shell 解析 --> 内核执行 --> 返回结果

1. Shell 与 CLI 的关系

CLI 是一种交互方式(输入文本命令、返回文本结果),而 Shell 是实现这种交互的程序。二者常被混用,但侧重点不同:

维度CLIShell
本质交互模式/界面具体的解释器程序
举例命令行操作方式Bash、Zsh、PowerShell
关注点怎么交互谁来解析并执行命令

2. 常见的 Shell

Shell平台特点
BashLinux/macOS最流行,默认 Shell
ZshmacOS/Linux兼容 Bash,补全更强
PowerShellWindows面向对象,适合系统管理
CMDWindows传统命令行,功能较基础

3.shell解析后,谁来执行

Shell 解析命令后,交给谁来执行?——答案是操作系统内核(Kernel)。

Shell 本身并不直接执行命令,它只负责解析:把用户输入的文本命令拆解成内核能理解的形式,然后通过系统调用(如 execve)把任务交给操作系统内核。内核是操作系统的核心,负责管理 CPU、内存、文件系统等底层资源,真正完成 ls、cd 等操作的就是内核。

Shell 解析成功后,命令分为两种情况:内置命令与外部命令。

  • 内置命令(Built-in):由 Shell 自身直接执行,不启动新进程。例如 cd、echo、export、alias 等。Shell 解析到这类命令后,直接在自己的进程内调用对应功能完成操作,速度最快。
  • 外部命令(External):存放在文件系统中的独立可执行程序,例如 ls、cp、grep、git。Shell 解析到这类命令后,会通过 PATH 环境变量在磁盘上查找对应的可执行文件,然后创建子进程(fork)并调用 execve 加载该程序执行,执行完再把结果返回给 Shell。
类型执行方式是否启动新进程示例
内置命令Shell 自身直接执行否cd、echo、export
外部命令查找可执行文件并创建子进程执行是ls、grep、git

3. 总结

Shell 是命令行世界的核心引擎,它把用户的文本命令翻译成系统操作。理解了 Shell,你就真正理解了 CLI 背后「谁在执行命令」的问题,也为后续学习脚本编程打下基础。

三. 什么是 Terminal

Terminal(终端)是用户与 Shell 进行交互的窗口程序。它提供一个文本界面,让你输入命令并查看输出结果。如果说 Shell 是「翻译官」,那么 Terminal 就是「对话窗口」——你在这个窗口里敲字,Shell 在背后解析执行,结果再显示回这个窗口。

Terminal 的工作流程:

用户在 Terminal 输入命令 --> 交给 Shell 解析 --> 内核执行 --> 结果显示回 Terminal

1. Terminal 与 Shell 的区别

很多人把 Terminal 和 Shell 混为一谈,其实它们是两个不同层次的东西:

维度TerminalShell
本质图形窗口程序命令行解释器
作用提供输入/输出界面解析并执行命令
举例Windows Terminal、iTerm2、GNOME TerminalBash、Zsh、PowerShell
类比对话窗口窗口背后的翻译官

2. 常见的 Terminal

Terminal平台特点
Windows TerminalWindows微软官方,支持多标签页
iTerm2macOS功能强大,补全和分屏出色
GNOME TerminalLinuxGNOME 桌面默认终端
KonsoleLinuxKDE 桌面默认终端
CMDWindows传统命令行窗口,功能较基础

3. Terminal 与 CMD 的关系

很多人会把 Terminal 和 CMD 混为一谈,其实它们是不同层次的东西:

  • CMD(命令提示符):是 Windows 系统自带的一个命令行解释器(Shell),它负责解析并执行你输入的命令,例如 dir、copy、ipconfig。
  • Terminal(终端):是一个窗口程序,负责提供输入/输出界面。它本身不解析命令,只是把命令交给背后的 Shell 去执行。

简单来说:CMD 是 Shell,Terminal 是窗口。你在 Windows Terminal 这个窗口里,既可以运行 CMD,也可以运行 PowerShell、WSL 等不同的 Shell。

维度TerminalCMD
本质图形窗口程序命令行解释器(Shell)
作用提供输入/输出界面解析并执行命令
举例Windows Terminal、iTerm2CMD、PowerShell、Bash
类比对话窗口窗口背后的翻译官

4. 总结

Terminal、Shell、CLI 三者层层递进:CLI 是交互方式,Shell 是解释器,Terminal 是承载这一切的窗口。打开 Terminal,输入命令,背后就是 Shell 在为你工作——这就是命令行世界的完整链路。

5. 如何打开 Terminal

不同操作系统打开 Terminal 的方式略有不同,下面列出最常用的几种:

平台打开方式说明
WindowsWin + R 输入 cmd 回车,或搜索「终端 / Terminal」打开 CMD 或 Windows Terminal
macOSCommand + 空格 搜索「终端 / Terminal」打开系统自带的 Terminal.app
LinuxCtrl + Alt + T打开默认终端(如 GNOME Terminal)

提示:在 Windows 上,推荐优先使用 Windows Terminal,它支持多标签页,可以同时运行 CMD、PowerShell 和 WSL。

补充: 什么是 WSL

WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统) 是微软提供的一项功能,它允许你在 Windows 系统上直接运行 Linux 环境,而无需安装虚拟机或双系统。

简单来说,WSL 让你在 Windows 上拥有一个真正的 Linux 内核,可以运行 Bash、Zsh 等 Linux Shell,以及 apt、gcc、docker 等 Linux 工具链。

维度说明
全称Windows Subsystem for Linux
作用在 Windows 上运行 Linux 环境
常见版本WSL 1、WSL 2(推荐,基于轻量虚拟机)
典型用途开发、脚本、运行 Linux 命令和工具

提示:在 Windows Terminal 中,你可以直接打开 WSL 标签页,进入 Linux 环境使用 Bash,无需切换系统。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐