Answers:
简短的回答:为什么不呢?(请暗示微笑)
更冗长的是:我想这主要是历史性的事情。getty
我在使用VC支持启动的第一个Linux中配置了6个虚拟控制台,但我真的忘了什么时候(我认为是1990年左右)。然后,当你启动图形环境(用手,用startx
),它在第一个可用VC,正好是7号开幕本身。而且我当时仍在从事VC的大部分工作:编辑器的速度要快得多,有时我使用的VC比标准VC还要多,而且我的笔记本电脑也不是真正的图形怪兽 ...
例如,我曾经运行三个编辑器(一个程序,其输入数据,一个描述它的TeX文件),一个用于编译的VC,另一个用于阅读手册的VC,以及另一个通过telnet连接到我的邮件服务器的VC。
我怀疑仍然使用六个虚拟控制台的理由是让每个人都能在#7上使用图形VC,因此您可以在手册中写“ Ctrl-Alt-F7
”,而不是“ 第一个免费VC Ctrl-Alt-Fx
在哪里 x
”。
作为附带说明,您可以(我想---从未尝试过)修整VC。简单地做
sudo bash -c "echo 'manual' >> /etc/init/tty6.override"
按照新手手册停止VC#6 。
为什么不更多呢?以2或3的身份运行到一个系统中(一个top
或htop
多个),ssh
对另一个系统运行,在另一个系统中运行一些自动化的任务,保持一个免费状态,以防万一,再登录多个用户,再运行cmatrix
一个,启动GUI与-
startx -- :1
(某些图形存在此错误)
http://mostlylinux.wordpress.com/troubleshooting/ttysessions/
当您真正开始使用此功能时,7 tty(默认是第七个)似乎很少,您可以添加更多。
减少数量:如何减少TTY数量?
根据Unix哲学,所有/dev/tty*
条目都称为device file
。它们充当用户和实际设备之间的链接,但是它们的用途可能略有不同。
诸如设备文件之类的文件/dev/tty123
可用于通过常规外壳与系统进行交互。默认情况下,Ubuntu系统配置为打开TTY 1到6,但是一个可以手动打开,例如:
sudo openvt -c 9 -s "bash"
这将bash
在/ dev / tty9上以root身份打开,并立即将您切换到该TTY(如果在本地终端上完成,但是如果通过远程ssh
会话这样做,则在这种情况下,您可能需要使用chvt 9
,/dev/tty9
在此示例中为9 )。要在没有sudo
非root用户的情况下执行相同的操作,您将必须更改要打开的tty的所有权。例如,
$ sudo chown xieerqi:tty /dev/tty8
$ openvt -c 8 -l
这将使我使用tty8上的默认shell登录。但是,在我的测试中,这似乎仅通过TTY起作用,因此,如果您通过终端仿真器进行此操作,则可能无法正常工作(我遇到了Couldn't get a file descriptor referring to the console
错误,仅从sudo openvt -c 8 -l
仿真器为我工作)
从历史的角度来看,在创建所有高级终端多路复用器之前,这是一个有用的功能-您可以在这些控制台上生成多达62个命令(可能是服务器),并让它们在63rd上运行时运行。如今,它可能不是必需的。
默认情况下创建了多个设备文件。活动的是1到6,但是可以通过编辑来更改其编号/etc/default/console-setup
,特别是这一部分:
# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"
这些是用于串行控制台(又称为UART,也称为RS-232)的设备文件。在过去,许多计算机系统都带有串行端口。如今,这通常可以在服务器类型的计算机上找到。多个ttyS设备可用于RS-232集线器,该集线器允许通过USB或以太网管理多个设备的连接。
对于电气工程师(这是我在大学主修的专业),我们使用串行端口与微控制器和开发板(例如Arduino)进行交互。单端口计算机(例如Raspberry Pi)也可以使用它。如今,使用USB转UART电缆建立串行连接,并通过screen
如下方式在终端中打开控制台:
screen /dev/ttyUSB0 115200 # the number is baud rate or speed
注意,Arduino和Raspberry将创建自己的设备文件以进行串行连接,/dev/ttyUSB0
或者/dev/ttyACM0
根据man vcs
这些是控制台存储设备。简而言之,如果您这样做,sudo cat /dev/vcs1
您将看到中的屏幕上的内容/dev/tty1
,至少到该终端中的最大行数为止。
不更改tty.h
库并重新编译内核(参考和另一个),就不可能减少实际设备文件的数量。但是,可以通过以下命令手动删除这些设备:
sudo bash -c 'for num in $(seq 10 63 ) ; do MAKEDEV -v -d "tty$num" ; done'
但是,这一点没有意义-设备文件不占用任何空间,也不影响系统性能。