问题描述
我一直听说这些被称为tty
的东西。
-
这些是什么
-
我该如何访问它们
-
他们在做什么?
最佳解决思路
tty
是那些打印连接到标准输入的终端名称的时髦Unix命令之一。
TTY是text-only终端,通常用作访问计算机以修复内容的方法,而无需实际登录到可能的b0rked桌面。
相关:What is tty7 in the commandline?
默认情况下,Ubuntu有7个tty。
-
直到Ubuntu 17.10,
1-6
仅为命令行,7
运行您的X会话(您的普通桌面)。 -
在Ubuntu 17.10及更新版本上,它是
1
上的GUI登录屏幕,2
上的GUI桌面和3-7
上的命令行。
要访问它们,请使用此键盘快捷键:
Ctrl
+ Alt
+ F1
(或17.10及更高版本的F3
)
(将F1更改为F1-F6以访问您想要的终端)
要返回GUI会话(普通桌面):
Ctrl
+ Alt
+ F7
(或17.10及更高版本的F2
)
次佳解决思路
例如,您可以通过命令行更改显示的TTY,其中包括chvt
(需要sudo
权限)。以下是联机帮助页的相关部分(man chvt
):
CHVT(1)
NAME
chvt – change foreground virtual terminal
SYNOPSIS
chvt N
DESCRIPTION
The command chvt N makes /dev/ttyN the foreground terminal. (The corresponding screen is created if it did not exist yet. To get rid of unused VTs, use deallocvt) The key combination (Ctrl-)LeftAlt-FN (with N in the range 1-12) usually has a similar effect.
第三种解决思路
tty,teletype的缩写,也许通常称为终端,是一种允许您通过发送和接收数据(例如命令及其产生的输出)与系统交互的设备。
有很多类型,但现在大多数ttys都是用软件实现的,例如你可以用Ctrl + Alt + Fn访问的图形控制台,或者在X会话中运行的终端模拟器,如Gnome终端。
还有一个tty
命令,它显示运行它的终端的设备节点(如果它没有在终端内运行,则打印“not tty”;是的,可以在终端外运行命令)。例如:
firas@itsuki ~ % tty
/dev/pts/0
firas@itsuki ~ % ssh localhost tty
not a tty
当我登录并在机器上运行shell时,shell通常在终端内运行,即这里是/dev/pts/0
。但是,当我运行ssh host command
以在远程主机上运行命令时,该命令不会在终端内运行。