GUI, CLI, Terminal, Shell, TTY, Console, Bash 都是什么?

TLDR: Human → Console(Terminal/TTY x 6) → Shell → Linux 内核

  • Shell: 命令行解释器, 执行用户输入的命令并返回结果
    • GUICLI 都属于 Shell 的一种
    • GUI Shell: Windows Explorer, XWindow, CDE, GNOME, KDE, XFCE
    • CLI Shell: Bash, ZSH, CSH
  • Terminal: 终端, 提供一个命令的输入输出环境
    • TTY 和 Terminal 是同义词
    • Shell 用于连接 Terminal 和 Linux 内核: 打开一个 terminal 时, 操作系统会将 terminal 和 shell 关联起来, 当我们在 terminal 中输入命令后, shell 就负责解释命令.
    • Linux 命令行界面经常会有 1-6 个 TTY 可供切换
    • Console 也是一种 Terminal, 类似于一个大窗口下面有 6 个 Tab, 每个都是个 TTY