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

相关推荐
网络工程小王13 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习
wangbing112513 小时前
各linux版本的包管理命令
linux·运维·服务器
Joseph Cooper13 小时前
Linux/Android 跟踪技术:ftrace、TRACE_EVENT、atrace、systrace 与 perfetto 入门
android·linux·运维
比昨天多敲两行14 小时前
Linux基础开发工具(下)
linux·运维·服务器
笨笨饿16 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
cn_lyg16 小时前
Linux的入门级常用操作命令
linux·运维·服务器
就叫飞六吧17 小时前
TOML vs YAML:为什么 Cargo 选择 TOML?
linux·运维·服务器
IMPYLH17 小时前
Linux 的 test 命令
linux·运维·服务器·chrome·bash
xrui5817 小时前
2026实战:深度解析 Gemini 3.1 镜像站函数调用在自动化运维工单中的应用
linux·服务器·网络
HackTwoHub17 小时前
Linux 内核史诗级本地提权 全网深度复现、原理完整分析( CVE-2026-31431)
linux·运维·安全·web安全·网络安全·代码审计·安全架构