终端
是一种用来让用户输入数据至计算机,以及显示其计算结果的机器。只进行交互,不做运算处理。
tty
teletypewriter, 电传打印机,是终端的一种,作为unix系统 的第一个终端,为多用户而生。之所以看 上它,是因为早期它很便宜,可以同时部署很多台,让许多用户都可以在tty终端登录并操作主机。
电传打字机 还具有电话的快速,以及打字机的准确,尤其是当电文中有专业资料或者关键数据时(比如视频中医生询问的血压量),这种优点表现得特别明显。
console
控制台,也是终端的一种,比tty高级,早期只有系统管理员有权利使用。如今我们只需要输入sudo后就可获得管理员权限,所以控制台和终端的概念也就变的模糊了。当你在管理系统时,它们是控制台;当你在做一般的工作时(浏览网页、编辑文档等),它们就是终端。我们自己既是一般用户,也是系统管理员。因此,现在 Console 与 Terminal 基本被看作是同义词。
终端模拟器
Terminal Emulator,用来模拟传统终端的行为
模拟步骤:
- 捕获键盘输入
- 将输入发送给命令行程序(程序会认为这是从一个真正的终端设备输入的)
- 拿到命令行程序的输出结果(STDOUT 以及 STDERR)
- 调用图形接口(比如 X11),将输出结果渲染至显示器。
linux下的gnome-terminal 和 window下的xshell 都属于这种程序。
Shell
提供用户界面的程序
它接受用户输入的命令,然后帮我们与内核沟通,最后让内核完成我们的任务。
tips
- CLI -- 命令行界面 command line interface, 和GUI 对应