概述
stty
命令用于检查和修改当前注册的终端的通信参数。UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过 stty
命令对特定终端或通信线路设置选项。stty
还可用于控制一些具有特殊控制功能的键。比如系统可能已经使用 CTRL-D
作为文件结束符,但你可能喜欢使用 CTRL-C
。这时我们可以使用 stty
命令改变这些默认设置。
语法
该命令的语法如下:
stty [-F DEVICE | --file=DEVICE] [SETTING]...
stty [-F DEVICE | --file=DEVICE] [-a|--all]
stty [-F DEVICE | --file=DEVICE] [-g|--save]
该命令支持的选项有:
选项 | 说明 |
---|---|
-a | 以容易阅读的方式打印当前的所有配置 |
-g | 以stty可读方式打印当前的所有配置 |
使用
输出终端的行数和列数
如果要输出终端的行数,命令如下:
stty size
# 等价于 tput cols 和 cput lines
禁止和启用输出大写的方法
如果在命令行下要禁止输出大写,命令格式如下:
# 禁止输出大写
stty iuclc
# 解除禁止
stty -iuclc
禁止和启用输出小写的方法
如果在命令行下要禁止输出小写,命令格式如下:
# 禁止输出小写
stty olcuc
# 解除禁止
stty -olcuc
屏蔽显示
设置之后,在命令行窗口输入的字符是不可见的,通常可以用来输入密码。格式如下:
# 屏蔽显示
stty -echo
# 恢复显示
stty echo
写一个简单的脚本来获取输入的密码,而不是使用 read
命令的 -s
选项。如下:
#!/bin/bash
echo -e "Enter password: "
# 在读取密码前禁止回显
stty -echo
# 读取输入的内容存入到 password 变量
read password
# 重新允许回显
stty echo
# 打印结果
echo "password: $password"