29.3.终端
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
终端提供了一种便捷且低成本的方式,用于在不直接接触计算机控制台或不在连接的网络上的情况下访问 FreeBSD 系统。本节介绍如何在 FreeBSD 中使用终端。
最初的 UNIX® 系统没有控制台。用户通过连接到计算机串行端口的终端登录并运行程序。
在几乎所有 UNIX® 类操作系统中,包括 FreeBSD,现在仍然可以通过串行端口建立登录会话。通过使用连接到未使用串行端口的终端,用户可以登录并运行任何通常在控制台或 xterm
窗口中运行的文本程序。
许多终端可以连接到 FreeBSD 系统。可以将一台旧的备用计算机用作终端,将其连接到运行 FreeBSD 的更强大计算机。这可以将原本单用户的计算机转变为一个强大的多用户系统。
FreeBSD 支持三种类型的终端:
终端提供了一种便捷且低成本的方式,用于在不直接接触计算机控制台或不在连接的网络上的情况下访问 FreeBSD 系统。本节介绍如何在 FreeBSD 中使用终端。
最初的 UNIX® 系统没有控制台。用户通过连接到计算机串行端口的终端登录并运行程序。
在几乎所有 UNIX® 类操作系统中,包括 FreeBSD,现在仍然可以通过串行端口建立登录会话。通过使用连接到未使用串行端口的终端,用户可以登录并运行任何通常在控制台或 xterm
窗口中运行的文本程序。
许多终端可以连接到 FreeBSD 系统。可以将一台旧的备用计算机用作终端,将其连接到运行 FreeBSD 的更强大计算机。这可以将原本单用户的计算机转变为一个强大的多用户系统。
FreeBSD 支持三种类型的终端:
哑终端
哑终端是通过串行线路连接到计算机的专用硬件。它们被称为“哑”,因为它们只有足够的计算能力来显示、发送和接收文本。无法在这些设备上运行程序。哑终端应连接到运行所需程序的计算机。
有成百上千种由许多制造商生产的哑终端,几乎任何类型的哑终端都能与 FreeBSD 配合使用。一些高端终端甚至可以显示图形,但只有某些软件包能够利用这些高级功能。
哑终端在不需要访问图形应用程序的工作环境中非常流行。
计算机充当终端 由于哑终端仅具有足够的能力来显示、发送和接收文本,任何备用计算机都可以充当哑终端。所需的只是正确的电缆和一些 终端仿真 软件来运行在计算机上。
这种配置可能很有用。例如,如果一个用户正在忙于在 FreeBSD 系统的控制台上工作,另一个用户可以同时从连接到 FreeBSD 系统的性能较低的个人计算机上进行文本-only 工作。
在 FreeBSD 的基本系统中,至少有两个实用程序可以通过串行连接进行工作: 和 。
例如,要从运行 FreeBSD 的客户端系统连接到另一个系统的串行连接:
端口从零开始编号。这意味着 COM1 是 /dev/cuau0。
X 终端 X 终端是最复杂的终端类型。它们通常通过像以太网这样的网络连接,而不是通过串行端口。它们不仅仅局限于文本应用程序,还可以显示任何 Xorg 应用程序。
本章不包括 X 终端的设置、配置或使用。
本节描述了如何配置 FreeBSD 系统,以在串行终端上启用登录会话。它假定系统已识别连接终端的串行端口,并且终端已用正确的电缆连接。
在 FreeBSD 中,init
读取 /etc/ttys 文件,并在可用终端上启动 getty
进程。getty
进程负责读取登录名并启动 login
程序。FreeBSD 系统上允许登录的端口在 /etc/ttys 文件中列出。例如,第一个虚拟控制台 ttyv0 在此文件中有一个条目,允许在控制台上进行登录。该文件还包含其他虚拟控制台、串行端口和伪终端的条目。对于硬接线终端,串行端口的 /dev 条目列出时不带 /dev
部分。例如,/dev/ttyv0 被列为 ttyv0
。
默认的 /etc/ttys 配置支持前四个串行端口 ttyu0 到 ttyu3:
当将终端连接到这些端口之一时,需要修改默认条目,设置所需的速率和终端类型,将设备设置为 on
,并根据需要更改端口的 secure
设置。如果终端连接到其他端口,则需要为该端口添加一个条目。
示例 1. 配置终端条目
第一个字段指定串行终端的设备名称。
第三个字段是终端的类型。对于拨号端口,通常使用 unknown
或 dialup
,因为用户可能使用任何类型的终端或软件进行拨号。由于硬接线终端的终端类型不会改变,因此可以指定 /etc/termcap 中的实际终端类型。对于本示例,Wyse-50 使用实际的终端类型,而运行 Procomm 的计算机则设置为模拟 VT-100 终端。
第四个字段指定是否启用端口。要启用该端口上的登录,必须将此字段设置为 on
。
在对 /etc/ttys 进行任何更改后,发送 SIGHUP(挂起)信号到 init
进程,以强制其重新读取配置文件:
由于 init
是系统上运行的第一个进程,它的进程 ID 始终为 1
。
如果一切设置正确,所有电缆连接到位,终端已通电,则每个终端上应该都有一个 getty
进程在运行,并且每个终端上应该出现登录提示。
即使是最细致的配置,也可能在设置终端时出现问题。以下是一些常见症状以及一些建议的解决方法。
如果没有显示登录提示,请确保终端已插入并通电。如果是个人计算机充当终端,请确保它在正确的串行端口上运行终端仿真软件。
确保电缆已牢固连接到终端和 FreeBSD 计算机。确保使用的是正确类型的电缆。
确保终端和 FreeBSD 在波特率和奇偶校验设置上达成一致。对于视频显示终端,确保对比度和亮度控制已调高。如果是打印终端,请确保纸张和墨水充足。
使用 ps
确保 getty
进程正在运行并为终端提供服务。例如,以下列表显示 getty
正在第二个串行端口 ttyu1 上运行,并使用 /etc/gettytab 中的 std.38400
条目:
如果没有运行 getty
进程,请确保在 /etc/ttys 中启用了该端口。修改 /etc/ttys 后,记得运行 kill -HUP 1
。
如果 getty
进程正在运行,但终端仍未显示登录提示,或者显示了提示但不接受键入输入,终端或电缆可能不支持硬件握手。尝试将 /etc/ttys 中的条目从 std.38400
更改为 3wire.38400
,然后在修改 /etc/ttys 后运行 kill -HUP 1
。3wire
条目类似于 std
,但忽略硬件握手。在使用 3wire
时,可能还需要降低波特率或启用软件流控制,以防止缓冲区溢出。
如果出现乱码而不是登录提示,请确保终端和 FreeBSD 在波特率和奇偶校验设置上达成一致。检查 getty
进程,确保使用了正确的 getty 类型。如果不是,请编辑 /etc/ttys 并运行 kill -HUP 1
。
如果字符出现重复,且输入时密码会显示,请将终端或终端仿真软件从“半双工”或“本地回显”模式切换到“全双工”模式。
可以通过 Ports 获取额外的程序,例如 。
配置了 /etc/ttys 中的两个终端。第一个条目配置了连接到 COM2 的 Wyse-50 终端。第二个条目配置了一台运行 Procomm 终端软件的旧计算机,该计算机模拟 VT-100 终端,并连接到多端口串行卡上的第六个串行端口。
第二个字段告诉 getty
初始化并打开线路,设置线路速度,提示输入用户名,然后执行 login
程序。可选的 getty 类型 配置终端线路的特性,如波特率和奇偶校验。可用的 getty 类型列在 /etc/gettytab 中。在几乎所有情况下,开始于 std
的 getty 类型都能用于硬接线终端,因为这些条目忽略了奇偶校验。对于从 110 到 115200 的每个波特率,都有一个 std
条目。有关更多信息,请参考 。在设置 getty 类型时,请确保与终端使用的通信设置匹配。例如,Wyse-50 使用无奇偶校验,并以 38400 bps 连接。该计算机使用无奇偶校验,并以 19200 bps 连接。
最后一个字段用于指定端口是否安全。将端口标记为 secure
意味着它足够信任,可以允许从该端口登录 root
用户。非安全端口不允许 root
登录。在非安全端口上,用户必须从非特权账户登录,然后使用 su
或类似机制获得超级用户权限,如 中所述。出于安全考虑,建议将此设置更改为 insecure
。