« 上一篇下一篇 »

当任何一个功能键不起作用时,chvt 命令会很有用,不通过功能键切换TTY

   今天给大家介绍一个很冷门的命令会话窗口,在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上,你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。只有系统或超级用户root可以向/dev/tty0进行写操

    TTY也许是跟终端有关系的最为混乱的术语。TTY是TeleTYpe的一个老缩写。Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,和古老的电报机区别并不是很大。之后,当计算机只能以批处理方式运行时(当时穿孔卡片阅读器是唯一一种使程序载入运行的方式),电传打字机成为唯一能够被使用的“实时”输入/输出设备。最终,电传打字机被键盘和显示器终端所取代,但在终端或TTY接插的地方,操作系统仍然需要一个程序来监视串行端口。一个getty“Get TTY”的处理过程是:一个程序监视物理的TTY/终端接口。对一个虚拟网络控制台(VNC)来说,一个伪装的TTY(Pseudo-TTY,即假冒的TTY,也叫做“PTY”)是等价的终端。当你运行一个xterm(终端仿真程序)或GNOME终端程序时,PTY对虚拟的用户或者如xterm一样的伪终端来说,就像是一个TTY在运行。“Pseudo”的意思是“duplicating in a fake way”(用伪造的方法复制),它相比“virtual”或“emulated”更能真实的说明问题。本简要指南介绍了在类 Unix 操作系统中如何在不使用功能键的情况下切换 TTY。

    在进一步讨论之前,我们将了解 TTY 是什么。正如在 AskUbuntu 论坛的一个答案中所提到的,TTY这个词来自 TeleTYpewriter(电传打字机)。

在 Unix 的早期,连接到计算机的用户终端就是机电的电传机或电传打字机(简称 tty)。从那时起,TTY 这个名称继续用于纯文本控制台。

如今,所有文本控制台都代表虚拟控制台,而不是物理控制台。TTY 命令打印连接到标准输入的终端的文件名。
默认情况下:

Linux 中有 7 个 tty。

它们被称为 tty1、tty2……tty7。

1 到 6 的 tty 只是命令行。

第 7 个 tty 是 GUI(你的 X 桌面会话)。

你可以使用 CTRL+ALT+Fn 键在不同的 TTY 之间切换。

例如,要切换到 tty1,我们按下 CTRL+ALT+F1。这

就是 tty1 在 Ubuntu 18.04 LTS 服务器中的样子。

   如果你的系统没有 X 会话, 只需要按下 Alt+Fn 键,不需要按下 CTRL。
在某些 Linux 版本中(例如,从 Ubuntu 17.10 开始),登录屏开始使用 1 号虚拟控制台。因此,你需要按 CTRL+ALT+F3 到 CTRL+ALT+F6 来访问虚拟控制台。要返回桌面环境,请在 Ubuntu 17.10 及更高版本上按下 CTRL+ALT+F2 或 CTRL+ALT+F7。
      目前为止我们看到我们可以使用 CTRL+ALT+Fn(F1 - F7)在 TTY 之间轻松切换。但是,如果出于任何原因你不想使用功能键,那么在 Linux 中有一个名为 chvt 的简单命令。
chvt N 命令让你切换到前台终端 N,这与按 CTRL+ALT+Fn 相同。如果它不存在,则创建相应的屏幕。
让我们试试显示当前的 tty:
我的 Ubuntu 18.04 LTS 服务器的示例输出。

现在让我们切换到 tty2。为此,请输入:
记住你需要在 chvt 命令一同使用 sudo。
现在,使用命令检查当前的 tty:
你会看到 tty 现在已经改变了。
同样,你可以使用 sudo chvt 3 切换到 tty3,使用 sudo chvt 4 切换到 tty4 等等。
当任何一个功能键不起作用时,chvt 命令会很有用。
要查看活动虚拟控制台的总数,请运行:
如你所见,我的系统中有两个活动的虚拟终端。
你可以使用以下命令查看下一个未分配的虚拟终端:
如果虚拟控制台不是前台控制台,并且它没有打开任何进程来读取或写入,并且未在其屏幕上选择任何文本,则它是未使用的。
要移除未使用的虚拟终端,只需键入:
上面的命令为所有未使用的虚拟控制台释放内核内存和数据结构。简单地说,此命令将释放连接到未使用的虚拟控制台的所有资源。
有关更多详细信息,请参阅相应命令的手册页。

主要就是这些,虽然很冷门,但希望对有需要的朋友有些许帮助,还有更多的好东西。敬请持续关注数据吧资讯!