这些访问 shell 的方式有什么区别?

这些访问 shell 的方式有什么区别?

据我所知,在 Linux 上访问 shell 的方法似乎有很多。目前我知道的方法有:

  1. 使用 Terminal 或 Konsole 等程序
  2. 使用快捷键 CTRL + ALT + F1-6
  3. 禁用 X 并直接引导至命令行
  4. 通过 SSH 进入

答案1

(1) 为您提供终端仿真。 Gnome Terminal 和 Konsole 等程序称为“终端模拟器”。

(2)给你一个真正的终端。好吧,它仍然是一个模拟终端,但它比(1)“更真实”,因为模拟是由内核本身完成的。

(3)实际上与(2)相同。当你没有 X 时,你会看到 tty0,这是你使用 时得到的CtrlAltF1

(4) 是远程 shell,旨在从机器外部使用。要使用 SSH,当然您需要有到机器的网络连接。

本质上所有的方法都是一样的,你的机器上有一个可以执行程序的shell。有一些细微的差别,例如:

  • 由于终端仿真器在 GUI 中运行,因此您可以从中执行 GUI 程序,并且 GUI 程序将在其自己的窗口中打开。
  • 由于 SSH 允许您在远程计算机上运行程序,因此它允许您在远离物理服务器时执行操作。

你应该看到“终端”、“shell”、“tty”和“控制台”之间的确切区别是什么?了解更多。

答案2

shell 是一种程序,它处理来自输入的 shell 命令(以 shell 的语言),并且可以指示操作系统以各种方式执行其他程序。它可以在一个交互的通过使用虚拟设备来实现上下文;在 Linux 上,这些节点要么由/dev/tty[N]VT 的预先存在的节点表示,要么/dev/pts/[N]由为其他所有内容动态创建的节点表示。 “VT”是一个虚拟终端,这些是您可以通过方法 #2 和 #3 访问的非 GUI 控制台。对于#1(Konsole 等),这些被称为终端模拟器(因此请注意“终端模拟器”和“虚拟终端”之间的区别)。 VT 有时也称为 VC(“虚拟控制台”)。

然而,shell 并不总是交互式的。该系统使用 shell 化身来处理很多业务。请记住,您可以通过任何方法访问运行的 shell 实例,而不是只有一个实例。一般来说,每个访问点都是一个不同的实例。因此,您可能会区分“外壳”(抽象地讲,为系统提供此目的的程序)和“外壳”(该程序的一个实例)。

答案3

这些方法之间存在一些细微差别。

一种是当您启动终端模拟器(您的终端和 Konsole 示例)时,您已经登录,而使用其他方法(2,3 和 4)时,您需要先登录并通常提供密码。这称为登录 shell。

另一个区别是终端模拟的类型,它可能(并且很可能)至少在(虚拟或非虚拟)控制台和终端模拟器(终端、Konsole)之间有所不同。 ssh 将使用您在启动时已经存在的任何终端(如果您从像 putty 这样的图形客户端连接,则可能是可设置的)。鼠标可用性(复制/粘贴)在控制台模式下也可能不可用。

ssh 可能会通过 X11 建立隧道,因此允许您启动图形应用程序,例如终端仿真器。有了控制台,就不会出现可见的图形环境,尽管没有任何规定禁止在其他地方显示的服务器上启动 X11 客户端。

访问您没有提到的 shell 的一种过时方式是通过串行线登录。

相关内容