Linux getty 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Linux 的 getty 命令,这是一个用于管理虚拟终端并允许用户登录系统的关键工具。我们将首先了解 getty 命令的用途,它负责初始化和配置虚拟终端,提示用户输入登录凭据,并在成功验证后启动登录过程。然后,我们将探索 getty 命令可用的不同选项,并学习如何使用此工具配置和管理虚拟终端。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/ProcessManagementandControlGroup(["`Process Management and Control`"]) linux/ProcessManagementandControlGroup -.-> linux/kill("`Process Terminating`") subgraph Lab Skills linux/kill -.-> lab-422700{{"`Linux getty 命令实用示例`"}} end

理解 getty 命令的用途

在这一步中,我们将探索 Linux 中 getty 命令的用途。getty 命令是一个关键工具,用于管理虚拟终端,允许用户登录系统。

getty 命令负责以下任务:

  • 初始化和配置虚拟终端
  • 提示用户输入登录凭据
  • 在成功验证后启动登录过程

让我们从了解 getty 命令的基本用法开始:

sudo getty --help

示例输出:

Usage: getty [options] <line>
  -L, --local-line          使用本地线路规则
  -m, --issue-motd          在登录前打印 /etc/issue
  -n, --skip-login          不提示登录
  -t, --timeout TIMEOUT     如果在 TIMEOUT 秒内未登录则终止
  -I, --init-string INIT    设置初始化字符串
  -w, --wait-cr             在发送初始化字符串前等待回车
  -i, --flow-control        使用输入流控制
  -8, --8bits               将 8 位输入传递给程序
  -2, --2-stop              使用 2 个停止位
  --noclear                 不清屏
  --nohints                 不打印登录提示
  --nohostname              不打印主机名
  --noreset                 不重置控制模式
  --nohints-reset           不为提示重置控制模式
  --nohints-timeout         不为提示超时重置控制模式
  --nonewline               不发送换行符
  --noissue                 不打印 /etc/issue
  --nohost                  不打印主机名
  --notruncate              不截断用户名
  --noflow-control          不使用输入流控制
  --nohostname-check        不检查有效主机名
  --noparity                禁用奇偶校验
  --nohostname-check-dns    不根据 DNS 检查主机名
  --nologin-timeout         禁用登录超时
  --nologin-timeout-signal  禁用登录超时信号
  --nologin-timeout-action  禁用登录超时操作
  --nologin-timeout-message 禁用登录超时消息
  --nologin-timeout-warning 禁用登录超时警告
  --nologin-timeout-warning-message 禁用登录超时警告消息
  --help                    显示帮助信息并退出
  --version                 输出版本信息并退出

getty 命令通常用于系统初始化过程中,以设置和管理虚拟终端。它负责提示用户输入登录凭据并启动登录过程。

在下一步中,我们将探索 getty 命令可用的不同选项,并学习如何使用它来配置和管理虚拟终端。

探索 getty 命令的不同选项

在这一步中,我们将探索 getty 命令可用的不同选项,并学习如何使用它来配置和管理虚拟终端。

让我们从一些常用的 getty 命令选项开始:

sudo getty -m -n -t 60 tty1

该命令将执行以下操作:

  • -m:在登录提示前打印 /etc/issue 的每日消息
  • -n:跳过登录提示,直接启动登录过程
  • -t 60:将登录超时设置为 60 秒

示例输出:

Linux ubuntu 5.15.0-1023-aws #25~20.04.1-Ubuntu SMP Fri Sep 30 12:36:29 UTC 2022 x86_64

ubuntu login:

另一个有用的选项是 --flow-control,它为终端启用输入流控制:

sudo getty --flow-control tty2

这将在 tty2 上启动一个新的虚拟终端,并启用输入流控制。

你还可以使用 -I 选项设置发送到终端的初始字符串:

sudo getty -I "Welcome to the Lab!" tty3

这将在 tty3 上启动一个新的虚拟终端,并在登录提示前显示 "Welcome to the Lab!" 消息。

在下一步中,我们将学习如何使用 getty 命令配置和管理虚拟终端。

使用 getty 配置和管理虚拟终端

在这最后一步中,我们将学习如何使用 getty 命令配置和管理虚拟终端。

首先,让我们创建一个新的虚拟终端:

sudo getty tty4

这将在 tty4 上启动一个新的虚拟终端。你可以通过按下 Ctrl+Alt+F4 切换到该终端。

为了配置虚拟终端,我们可以使用带有各种选项的 getty 命令。例如,将登录超时设置为 120 秒:

sudo getty -t 120 tty4

你还可以设置在登录提示前显示的初始字符串:

sudo getty -I "Welcome to the Virtual Terminal!" tty4

要停止虚拟终端,可以使用 kill 命令:

sudo kill $(ps -ef | grep getty | grep tty4 | awk '{print $2}')

这将停止运行在 tty4 虚拟终端上的 getty 进程。

最后,让我们创建一个脚本来自动启动和配置多个虚拟终端:

#!/bin/bash

## 启动虚拟终端
sudo getty tty4 &
sudo getty -t 60 tty5 &
sudo getty -I "Virtual Terminal 6" tty6 &

## 等待终端准备就绪
sleep 5

## 切换到第一个虚拟终端
sudo chvt 4

将此脚本保存为 ~/project 目录下的 start_terminals.sh,并使其可执行:

chmod +x ~/project/start_terminals.sh

现在,你可以运行脚本来启动虚拟终端:

~/project/start_terminals.sh

你可以使用 Ctrl+Alt+F4Ctrl+Alt+F5Ctrl+Alt+F6 组合键在虚拟终端之间切换。

总结

在本实验中,我们探索了 Linux 中 getty 命令的用途和用法。getty 命令负责初始化和配置虚拟终端,提示用户输入登录凭据,并在成功验证后启动登录过程。我们学习了 getty 命令可用的各种选项,例如设置初始化字符串、启用输入流控制以及配置登录超时。此外,我们还讨论了如何使用 getty 命令配置和管理虚拟终端。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程