4.2. 虚拟控制台及终端

如果没有 FreeBSD 配置为在启动时自动开启图形界面环境, 系统在完成引导之后就会给出类似下面这样的命令行登录提示:

FreeBSD/amd64 (pc3.example.org) (ttyv0)

login:

其中, 第一行包含了一些关于本机系统的信息。 其中的 amd64 表示示例中的系统运行的是 64-位 版本的 FreeBSD。 系统的主机名 (hostname) 是 pc3.example.org, 而使用的 系统控制台 则是 ttyv0。 第二行则是真正的登录提示符。

FreeBSD 是多用户系统, 因此需要设法识别不同的用户。 这是通过要求每个用户在使用系统中的程序之前首先完成登录操作来实现的。 每个用户都有与之对应, 并在系统范围内唯一的名字: 用户名 (username), 以及配合使用的个人 密码 (password)。

要登录系统控制台, 首先要输入在 Section 2.9.6, “添加用户” 中介绍的系统安装阶段时配置的用户名, 然后按下 Enter。 接下来, 则要输入与这一用户名对应的密码, 然后按 Enter。 出于安全考虑, 输入密码时是 不回显 的。

在输入了正确的口令之后, 系统会显示今日消息 (message of the day, MOTD), 之后是命令提示符。 随您选择的命令行界面不同, 这个提示符可能会是 #$, 或者 % 字符。 提示符表示用户已经登录到了 FreeBSD 系统中, 并且可以开始尝试使用可用的命令了。

4.2.1. 虚拟控制台

虽然用户可以在系统控制台上与系统互动, 但使用键盘操作 FreeBSD 命令行的用户通常会登录到某个虚拟控制台。 这是因为系统控制台在默认配置中还用于显示一些系统级的消息, 这些消息可能会覆盖屏幕上您正在使用的命令输出, 或是正在编辑的文件, 从而给集中精力进行手边的工作带来一些困扰。

FreeBSD 已经预设使用多个虚拟控制台来接受用户输入的命令。 每个虚拟控制台有自己的登录提示符和命令行界面, 并可以很容易地在这些虚拟控制台之间进行切换。 这种设计类似于在图形界面中同时使用多个命令行窗口来进行操作。

组合键 Alt+F1 一直到 Alt+F8 由 FreeBSD 系统保留, 用于在虚拟控制台之间切换。 您可以用 Alt+F1 切换到系统控制台 (ttyv0)、 Alt+F2 切换到第一个虚拟控制台 (ttyv1)、 Alt+F3 切换到第二个系统控制台 (ttyv2), 等等。

当从某个控制台切换到另外的控制台时, FreeBSD 会根据需要保存正在使用的屏幕内容, 并恢复将要使用的屏幕内容。 用户会因此产生拥有多个可以输入和运行 FreeBSD 命令的虚拟屏幕和键盘的感觉。 在用户切换到其它控制台时, 在先前的虚拟控制台上运行的程序仍会继续运行。

请参阅联机手册 syscons(4)atkbd(4)vidcontrol(1) 以及 kbdcontrol(1), 以了解更多关于 FreeBSD 控制台及键盘驱动的技术说明。

在 FreeBSD 中, 虚拟控制台的数量是在 /etc/ttys 中配置的:

# name    getty                         type  status comments
#
ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure

您可以通过在行首添加注释符 (#) 来禁用虚拟控制台。 举例来说, 假如希望将可用的虚拟控制台从 8 个减少到 4 个, 您需要做的便是在代表 ttyv5ttyv8 的这最后四行前面加上 #。 需要注意的是, 不要 把系统控制台 ttyv0 注释掉。 另外, 最后一个虚拟控制台 (ttyv8) 是在系统中安装了 Xorg 并需要访问图形控制台时使用的, 其配置可参阅 Chapter 6, X Window 系统

关于这个文件中每一列的详细介绍, 以及配合虚拟控制台使用的参数选项, 请参阅 ttys(5)

4.2.2. 单用户模式的控制台

关于 单用户模式 详细介绍在 Section 13.6.2, “单用户模式” 这里可以找到。 当您运行单用户模式时只能使用一个控制台, 没有多个虚拟控制台可使用。 单用户模式的控制台同也可以在 /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

Note:

这个 console 已经注释掉, 您可编辑这行把 secure 改为 insecure。 这样, 当用单用户进入 FreeBSD 时, 它仍然要求提供 root 用户的密码。

在把这个选项改为 insecure 的时候一定要小心, 如果您忘记了 root用户的密码, 进入单用户会有点麻烦。 尽管仍然能进入单用户模式, 但如果您不熟悉它就会非常令人头疼。

4.2.3. 改变控制台的显示模式

FreeBSD 控制台默认的显示模式可以被调整为 1024x768, 1280x1024, 或者任何你的显卡芯片和显示器所支持的其他尺寸。 要使用一个不同的显示模式, 你必须首先重新编译内核并包含以下2个选项:

options VESA
options SC_PIXEL_MODE

在内核用这2个选项编译完成后,你就可以使用 vidcontrol(1) 工具来测定你的硬件支持何种显示模式了。 以 root 身份在控制台键入以下命令来获得一份所支持的显示模式列表。

# vidcontrol -i mode

这个命令的输出是一份你的硬件所支持的显示模式列表。 你可以在以 root 身份在控制台上键入 vidcontrol(1) 命令来改变显示模式:

# vidcontrol MODE_279

如果你对于新的显示模式满意,那么可以把它加入到 /etc/rc.conf 使机器在每次启动的时候都能生效, 我们使用了上一个例子中的模式:

allscreens_flags="MODE_279"

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.