除了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)。
csdn @ edu bash ~ $ ++tput setaf 3 setab 5++
csdn @ edu bash ~ $ ++tput setab 5++
csdn @ edu bash ~ $
看来不能在一个命令中同时设置前景色和背景色,要分开来用两个命令分别设置。
csdn @ edu bash ~ $ tput setaf 3; tput setab 5
csdn @ edu bash ~ $
3.2 tput rev:反显当前的颜色方案
rev源自reverse。
csdn @ edu bash ~ $++tput setaf 3; tput setab 5++
csdn @ edu bash ~ $ ++tput rev++
csdn @ 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, 取消所有属性 |
csdn @ edu bash ~ $ ++tput setaf 3; tput setab 5++
csdn @ edu bash ~ $ ++tput smso++
csdn @ edu bash ~ $ ++tput rmso++
csdn @ edu bash ~ $ ++tput smul++
csdn @ edu bash ~ $ ++tput bold++
csdn @ edu bash ~ $ ++tput rmul++
csdn @ edu bash ~ $ ++tput dim++
csdn @ edu bash ~ $ ++tput sgr0++
csdn @ 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 | 清空格式 |
我们将执行以下命令序列:
bash
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 # 显示用户输入的密码
csdn @ 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 | 具有状态行 |
csdn @ edu bash ~ $ ++tput lines++
22
csdn @ edu bash ~ $ ++tput cols++
132
csdn @ edu bash ~ $ ++tput longname++
xterm terminal emulator (X Window System)csdn @ edu bash ~ $