我对 Ubuntu 还很陌生,但我很喜欢它!
但我不太明白 shell 和终端之间的区别。有人能解释一下吗?有人告诉我,终端只是查看 shell 的“工具”,类似于使用 Firefox 或 Chrome 等浏览器“查看”网页。
他的类比正确吗?另外,Ubuntu 的默认 shell 是什么?Bash、tcshell 还是其他?
答案1
这壳是一个接受您的命令(ls
、cd
等)并通过运行内置函数(如cd
)或调用外部程序(如ls
或gcc
)来处理它们的程序。
这终端是管理您的击键并向您显示文本的东西(如今几乎总是程序,但在青铜时代通常是硬件)——包括您输入的位以及 shell 或其他程序返回给您的位。当终端是 GUI 程序时,它会绘制漂亮的图形窗口,告诉 X 使用哪种字体,调用文本绘制例程等等。在过去,它可能只不过是一台带有扇形纸的花哨电动打字机。
答案2
这个比喻一点也不差。终端可以看作是一个显示和接收信息的设备。它可以是一个除了解释可打印字符之外什么都不做的哑终端,也可以是一个具有完整光标定位和颜色功能的庞然大物。
shell 通常(但并非总是)在终端中运行,它是一个强大的环境,用于解释命令并对其执行操作。您可以将大多数现代 shell 视为成熟的编程语言。
交互式 shell 的基本思想是接受来自用户的命令(通过终端)并执行这些命令,要么执行自己的任务,要么运行外部程序来执行。非交互式 shell 通常运行预先编写的脚本来执行任务。相当多的 shell 脚本无需终端即可运行,因为它们不需要用户交互。
Ubuntu 的默认 shell 是 bash,但您可以轻松将其更改为您想要的任何内容。
答案3
没错。终端仿真器提供图形处理以显示窗口、菜单等和文本输出,以及通过键盘(在某些条件下还有鼠标)输入到命令行程序。
Shell 提供了灵活的命令行,用于输入要执行的命令,以及有关当前目录、超级用户状态等的反馈。
Ubuntu 当前的默认 shell 是 bash。
答案4
在过去,当计算机比房子还贵的时候,它们被称为大型机。计算费用昂贵,但仍然有很多人需要使用。解决方案是什么?端子!
这些是“哑”计算机,只不过是一个带键盘的屏幕和一台非常基本的计算机。终端与主机保持永久连接。主机处理命令,并将结果返回到终端(的显示器)。您所做的大部分工作都是基于文本的,没有图形,没有鼠标,因此终端所要做的就是发送和接收文本,并将其显示在屏幕上。
如果你使用 Chrome OS,或者使用具有永久互联网连接的现代浏览器,并且有人在云端完成所有操作,你或多或少会得到相同的想法。所以你对浏览器的类比实际上非常好。
维基百科说Shell 是计算机的用户界面,也可以是图形界面。MS Windows 是 Shell。UNIX 或 Linux Shell 是 CLI,即命令行界面。同样,浏览器类比在这里也适用,网页是网站及其数据库的界面。