介绍
在本实验中,你将学习如何在 Linux 中使用 stty
命令来配置和控制终端或串口的设置。实验内容涵盖了 stty
命令的用途和语法,以及修改终端设置(如波特率、行数和列数,以及各种控制字符)的实际示例。本实验属于系统配置和设置技能集的一部分,stty
命令是 Linux 中广泛用于管理终端设置的工具。
在本实验中,你将学习如何在 Linux 中使用 stty
命令来配置和控制终端或串口的设置。实验内容涵盖了 stty
命令的用途和语法,以及修改终端设置(如波特率、行数和列数,以及各种控制字符)的实际示例。本实验属于系统配置和设置技能集的一部分,stty
命令是 Linux 中广泛用于管理终端设置的工具。
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
命令的实践示例。
## 禁用 Ctrl+C 中断
stty -intr
这将禁用 Ctrl+C 中断,该中断通常用于终止正在运行的进程。你可以通过运行一个通常会被 Ctrl+C 中断的命令(例如 sleep 60
)来验证这一点。
## 将擦除字符更改为 Backspace
stty erase ^?
这将把擦除字符从默认值(通常是 Delete)更改为 Backspace。你可以通过在终端中输入一些文本并按 Backspace 来测试这一点。
## 将终端大小设置为 80 列和 24 行
stty cols 80 rows 24
这将把终端大小更改为 80 列和 24 行。你可以通过运行 stty -a
或使用 resize
命令来验证更改。
## 保存当前终端设置
stty -g > terminal_settings.txt
## 恢复保存的终端设置
stty $(cat terminal_settings.txt)
此示例展示了如何将当前终端设置保存到文件中,然后在以后恢复它们。如果你需要临时更改一些设置并恢复到原始配置,这会非常有用。
在本实验中,你学习了 Linux 中 stty
命令的用途和语法,该命令用于配置和控制终端或串口的设置。你探索了如何使用 -a
选项显示当前终端设置,以及如何修改波特率、行数和列数以及控制字符等各种设置。实验提供了实际示例,帮助你理解 stty
命令的用法及其在管理终端配置中的多功能性。