Linux stty 命令及实践示例

LinuxLinuxBeginner
立即练习

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

介绍

在本实验中,你将学习如何在 Linux 中使用 stty 命令来配置和控制终端或串口的设置。实验内容涵盖了 stty 命令的用途和语法,以及修改终端设置(如波特率、行数和列数,以及各种控制字符)的实际示例。本实验属于系统配置和设置技能集的一部分,stty 命令是 Linux 中广泛用于管理终端设置的工具。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/sleep("Execution Delaying") subgraph Lab Skills linux/sleep -.-> lab-422935{{"Linux stty 命令及实践示例"}} end

理解 stty 命令的用途和语法

在这一步中,你将学习 Linux 中 stty 命令的用途和语法。stty 命令用于配置和控制终端或串口的设置。

首先,让我们了解 stty 命令的基本语法:

stty [OPTION] [SETTING]

OPTION 可以是以下之一:

  • -a:显示所有当前设置
  • -g:以可以作为另一个 stty 命令参数的形式打印所有当前设置

SETTING 可以是许多终端设置之一,例如:

  • speed:设置终端波特率
  • rows:设置行数
  • cols:设置列数
  • intr:设置中断字符
  • quit:设置退出字符
  • erase:设置擦除字符
  • kill:设置终止字符
  • eof:设置文件结束字符

让我们通过一些示例来更好地理解 stty 命令:

## 显示所有当前终端设置
stty -a

示例输出:

speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke -flusho -extproc

此输出显示了当前终端设置,包括波特率、行数和列数,以及各种控制字符。

现在,让我们尝试更改一些设置:

## 将终端波特率设置为 9600
stty speed 9600

## 将行数设置为 30
stty rows 30

## 将列数设置为 100
stty cols 100

运行这些命令后,你可以通过再次运行 stty -a 来验证更改。

使用 stty 命令修改终端设置

在这一步中,你将学习如何使用 stty 命令修改各种终端设置。

首先,让我们检查当前的终端设置:

stty -a

这将显示所有当前的终端设置,包括波特率、行数和列数,以及各种控制字符。

现在,让我们尝试修改其中一些设置:

## 将终端设置为使用 7 位字符模式
stty cs7

## 将终端设置为使用 8 位字符模式
stty cs8

## 将终端设置为无奇偶校验
stty -parenb

## 将终端设置为偶校验
stty parenb -parodd

## 将终端设置为奇校验
stty parenb parodd

## 将终端设置为使用硬件流控制
stty crtscts

## 将终端设置为使用软件流控制
stty -crtscts ixon ixoff

## 将终端设置为忽略中断条件
stty -ignbrk

## 将终端设置为在检测到中断条件时生成信号
stty ignbrk brkint

运行这些命令后,你可以通过再次运行 stty -a 来验证更改。

使用 stty 命令的实践示例

在这最后一步中,你将探索一些使用 stty 命令的实践示例。

  1. 禁用 Ctrl+C 中断
## 禁用 Ctrl+C 中断
stty -intr

这将禁用 Ctrl+C 中断,该中断通常用于终止正在运行的进程。你可以通过运行一个通常会被 Ctrl+C 中断的命令(例如 sleep 60)来验证这一点。

  1. 更改擦除字符
## 将擦除字符更改为 Backspace
stty erase ^?

这将把擦除字符从默认值(通常是 Delete)更改为 Backspace。你可以通过在终端中输入一些文本并按 Backspace 来测试这一点。

  1. 更改终端大小
## 将终端大小设置为 80 列和 24 行
stty cols 80 rows 24

这将把终端大小更改为 80 列和 24 行。你可以通过运行 stty -a 或使用 resize 命令来验证更改。

  1. 保存和恢复终端设置
## 保存当前终端设置
stty -g > terminal_settings.txt

## 恢复保存的终端设置
stty $(cat terminal_settings.txt)

此示例展示了如何将当前终端设置保存到文件中,然后在以后恢复它们。如果你需要临时更改一些设置并恢复到原始配置,这会非常有用。

总结

在本实验中,你学习了 Linux 中 stty 命令的用途和语法,该命令用于配置和控制终端或串口的设置。你探索了如何使用 -a 选项显示当前终端设置,以及如何修改波特率、行数和列数以及控制字符等各种设置。实验提供了实际示例,帮助你理解 stty 命令的用法及其在管理终端配置中的多功能性。

Linux 命令速查表