除了stty命令,我们还可以使用tput命令来更改终端的参数和功能。
1 tput 命令的功能
tput 命令的主要功能有:移动更改光标、更改文本显示属性(如颜色、下划线、粗体),清除屏幕特定区域等。
2 tput 命令格式
tput [选项] [参数]
3 设置文本颜色属性
3.1 tput setaf / setbf :设置前景色 / 背景色
命令格式:
- tput setab n : 设置背景色,set text attributes background color
- tput setaf n : 设置前景色,set text attributes front color
参数n:
- 0 – Black,黑色
- 1 – Red,红色
- 2 – Green,绿色
- 3 – Yellow,黄色
- 4 – Blue,蓝色
- 5 – Magenta,品红
- 6 – Cyan,青色
- 7 – White,白色
例子:设置前背景色为黄色(3),背景色为品红(5)。
cs @ edu bash ~ $ tput setaf 3 setab 5
cs @ edu bash ~ $ tput setab 5
cs @ edu bash ~ $
看来不能在一个命令中同时设置前景色和背景色,要分开来用两个命令分别设置。
cs @ edu bash ~ $ tput setaf 3; tput setab 5
cs @ edu bash ~ $
3.2 tput rev:反显当前的颜色方案
rev源自reverse。
cs @ edu bash ~ $ tput setaf 3; tput setab 5
cs @ edu bash ~ $ tput rev
cs @ edu bash ~ $
4 设置文本模式属性
命令 |
功能 |
tput bold |
加粗字体 |
tput dim |
打开高亮模式,turn on half-bright mode |
tput smul |
添加下划线,start mode of underline, |
tput rmul |
取消下划线,remove mode of underline |
tput smso |
突出模式,start mode of standout |
tput rmso |
反显突出模式,reverse mode of standout |
tput sgr0 |
set global attributes return to 0, 取消所有属性 |
cs @ edu bash ~ $ tput setaf 3; tput setab 5
cs @ edu bash ~ $ tput smso
cs @ edu bash ~ $ tput rmso
cs @ edu bash ~ $ tput smul
cs @ edu bash ~ $ tput bold
cs @ edu bash ~ $ tput rmul
cs @ edu bash ~ $ tput dim
cs @ edu bash ~ $ tput sgr0cs @ edu bash ~ $
5 设置光标属性
命令 |
功能 |
tput clear |
清屏 |
tput sc |
保存当前光标位置,save curosr position |
tput rc |
恢复光标位置,restore cursor postion |
tput cup row column |
将光标移动到指定行row和列column, |
tput civis |
光标不可见,cursor invisible |
tput cnorm |
光标可见,cursor mormal |
tpu init |
清空格式 |
我们将执行以下命令序列:
tput clear # 清屏
tput sc # 保存当前光标位置
tput cup 10 13 # 将光标移动到第10行第13列
echo -n Enter your password: # 提示用户输入密码
tput civis # 光标不可见
read p # 将用户输入的密码保存到变量p中
tput cnorm # 光标可见
tput rc # 恢复光标位置
echo your password: $p # 显示用户输入的密码
cs @ edu bash ~ $ tput clear;tput sc;tput cup 10 13;echo -n Enter your password:;tput civis; read p; tput cnorm; tput rc; echo your password: $p
6 其它功能
命令 |
功能 |
tput lines |
显示行数 |
tpus cols |
显示列数 |
tput reset |
重置终端设置 |
tput longname |
显示当前终端类型的长名称 |
tput hs |
具有状态行 |
cs @ edu bash ~ $ tput lines
22
cs @ edu bash ~ $ tput cols
132
cs @ edu bash ~ $ tput longname
xterm terminal emulator (X Window System)c @ edu bash ~ $