3.2.虚拟控制台和终端¶
如果没有把 FreeBSD 的图形界面配置为开机自启,那么系统将启动到命令行登录提示界面,如本例所示:
FreeBSD/amd64 (pc3.example.org) (ttyv0)
login:
第一行包含了一些有关系统的信息。amd64
表示本例中的系统运行的是 64 位版本的 FreeBSD。主机名是 pc3.example.org
,ttyv0
表示这是“系统控制台”。第二行是登录提示。
由于 FreeBSD 是一个多用户系统,它需要一些方法来区分不同的用户。因此每个用户在获得对系统中的程序的访问权之前必须登录系统。每个用户都有一个独特的 username
和一个个人的 password
。
要登录到系统控制台,输入在系统安装时配置的用户名,如添加用户中所述,然后按回车键
。然后输入与该用户名相关的密码,按回车键
。出于安全考虑,密码 不会被显示出来。
输入正确的密码后,将显示当日信息(MOTD),然后是命令提示符。根据创建用户时选择的 shell,这个提示符会是 #
、$
或是 %
字符之一。该提示符代表用户现在已经登录到 FreeBSD 系统控制台,并准备尝试执行可用命令。
3.2.1.虚拟终端¶
虽然可以用系统控制台来与系统进行交互,但通过键盘用命令行工作的 FreeBSD 系统用户通常会转而登录到一个虚拟控制台。这是因为系统信息被默认配置为显示在系统控制台。这些信息会在用户正在处理的命令或文件时不断出现,使用户难以集中精力处理手头的工作。
FreeBSD 预置了几个虚拟控制台用于输入命令。每个虚拟控制台都有自己的登录提示和 shell,且很容易在不同的虚拟控制台之间切换。这实际上提供了相当于在图形环境中同时打开了多个窗口的命令行。
FreeBSD 保留了从 Alt+F1
到 Alt+F8
的组合键,用于在虚拟控制台之间切换。使用 Alt+F1
切换到系统控制台(ttyv0
),Alt+F2
访问第一个虚拟控制台(ttyv1
),Alt+F3
访问第二个虚拟控制台(ttyv2
),以此类推。当使用 Xorg 作为图形控制台时,该组合变为 Ctrl+Alt+F1
,以返回到基于文本的虚拟控制台。
当从一个控制台切换到下一个控制台时,FreeBSD 会切换屏幕输出。其结果是产生一种拥有多个虚拟屏幕和键盘的错觉,都可以用来输入命令让 FreeBSD 运行。当用户切换到另一个虚拟控制台时,在虚拟控制台中启动的程序不会停止运行。
请参考 kbdcontrol(1), vidcontrol(1), atkbd(4), syscons(4), 和 vt(4) 以了解关于 FreeBSD 控制台及其键盘驱动程序的更多技术介绍。
在 FreeBSD 中,可用的虚拟控制台的数量是在 /etc/ttys
的这一部分进行配置的:
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" xterm on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" xterm on secure
ttyv2 "/usr/libexec/getty Pc" xterm on secure
ttyv3 "/usr/libexec/getty Pc" xterm on secure
ttyv4 "/usr/libexec/getty Pc" xterm on secure
ttyv5 "/usr/libexec/getty Pc" xterm on secure
ttyv6 "/usr/libexec/getty Pc" xterm on secure
ttyv7 "/usr/libexec/getty Pc" xterm on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
要禁用某个虚拟控制台,在代表该虚拟控制台的行的开头加一个注释符号(#)即可。例如,要把可用的虚拟控制台的数量从 8 个减少到 4 个,在代表虚拟控制台 ttyv5
到 ttyv8
的最后四行前面加一个 #
即可。不要 注释系统控制台 ttyv0
所在行。注意,如果已经根据 X Window 系统安装并配置了 Xorg,那么最后一个虚拟控制台(ttyv8
)将用于访问图形界面。
关于这个文件中每一列的详细解释以及虚拟控制台的可用选项,请参考 ttys(5)。
3.2.2.单用户模式的控制台¶
FreeBSD 的启动菜单提供了一个叫做“Boot Single User”的选项。如果选择了这个选项,系统将启动到一个被称为“单用户模式”的特殊模式。这种模式通常用于修复无法启动的系统,或者在不知道 root
密码的情况下将其重置。在单用户模式下,网络和其他虚拟控制台不可用。然而,对系统的完全 root
访问是可用的,而且在默认情况下,无需 root
密码。由于这些原因,需要有对键盘的物理访问权限才能进入该模式,确定谁对键盘有物理访问权是保护 FreeBSD 系统安全时需要考虑的问题。
可以在 /etc/ttys 的这一部分找到控制单用户模式的设置:
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure
默认情况下,状态被设置为 secure
。这假定谁有对键盘拥有物理访问权并不重要,或者它受到物理安全策略的控制。如果这个设置被改为 insecure
,则假设环境本身是不安全的,因为任何人都可以访问键盘。当这一行被改为 insecure
时,FreeBSD 将在用户选择启动到单用户模式时提示输入 root
密码。
注意
当把这个设置改为 ``insecure`` 的时候,要小心了! 如果忘记了
root
密码,虽然仍可启动至单用户模式,但对于不熟悉 FreeBSD 引导过程的人来说可能会很困难。
3.2.3.改变控制台的分辨率¶
FreeBSD 控制台的默认分辨率可以调整为 1024x768、1280x1024, 或任何其他由显卡和显示器支持的尺寸。要使用不同的分辨率,请加载 VESA
模块:
# kldload vesa
要确定硬件支持哪些分辨率,使用 vidcontrol(1)。要获得支持的分辨率的列表,请执行以下命令:
# vidcontrol -i mode
该命令的输出列出了硬件所支持的分辨率。要选择新的分辨率,请以 root
用户身份使用 vidcontrol(1) 指定该分辨率:
# vidcontrol MODE_279
如果新的分辨率符合预期,可以在启动时通过将其添加到 /etc/rc.conf
中进行永久设置:
allscreens_flags="MODE_279"