Linux shell编程学习笔记27:tputs

除了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 ~ $

相关推荐
望获linux16 分钟前
实时操作系统在服务型机器人中的关键作用
linux·机器人·操作系统·开源软件·rtos·具身智能
哈哈幸运36 分钟前
Linux Sed 深度解析:从日志清洗到 K8s 等12个高频场景
linux·运维·编辑器·sed
心随_风动38 分钟前
主流操作系统对比分析(macOS、Linux、Windows、Unix)
linux·windows·macos
啊吧怪不啊吧1 小时前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
陈大大陈2 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存
maotou5262 小时前
Ubuntu22学习记录
linux·ubuntu
杨凯凡2 小时前
Linux安全防护:全方位服务安全配置指南
linux·运维·服务器·安全
李菠菜2 小时前
CentOS系统中重置Root用户密码的完整步骤详解
linux·运维
Nightwish52 小时前
Linux随记(十七)
linux·运维·服务器
ghostmen2 小时前
Centos 实现 MySql 8.0.40 主从配置
linux·mysql·mysql主从