Linux命令之修改终端属性tput

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令之修改终端属性tput相关的知识,希望对你有一定的参考价值。

概述

编写命令行shell脚本时,总是免不了处理当前终端的相关信息,比如行数、列数、光标位置、遮盖的密码字段等。tput 命令可以采集终端信息,并进行一些设置如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。



语法

该命令的语法如下:

用法:
       tput [-Ttype] capname [parms ... ]
       tput [-Ttype] init
       tput [-Ttype] reset
       tput [-Ttype] longname
       tput -S  <<
       tput -V
       
       
(1)字符串输出参数设置 
  bel       警铃 
  blink     闪烁模式 
  bold      粗体 
  civis     隐藏光标 
  clear     清屏 
  cnorm     不隐藏光标 
  cup       移动光标到屏幕位置(x,y) 
  el        清除到行尾 
  ell       清除到行首 
  smso      启动突出模式 
  rmso      停止突出模式 
  smul      开始下划线模式 
  rmul      结束下划线模式 
  sc        保存当前光标位置 
  rc        恢复光标到最后保存位置 
  sgr0      正常屏幕 
  rev       逆转视图 
(2)数字输出参数设置 
  cols      列数目 
  ittab     设置宽度 
  lines     屏幕行数 
(3)布尔输出参数设置 
  chts      光标不可见 
  hs        具有状态行  


使用

获取终端的行数和列数

获取当前终端的行数和列数,命令格式如下:

# 获取终端的列数
tput cols
# 获取终端的行数
tput lines

打印当前的终端名

打印当前的终端名,命令如下:

# 语法
tput longname

将光标移动到指定坐标处

将光标移动到指定坐标的语法如下:

# 语法
tput cup x坐标 y坐标
# 示例,移动到坐标(20,50)处
tput cup 20 50

设置终端背景色

可以设置终端的背景色,命令格式如下:

# 语法
tput setb n
# 示例,设置背景色为红色
tput setb 4

通常情况下,分配的数值与颜色的对应关系如下,但是可能会因 UNIX 系统的不同而异:

  • 0:黑色
  • 1:蓝色
  • 2:绿色
  • 3:青色
  • 4:红色
  • 5:洋红色
  • 6:黄色
  • 7:白色

注意,如果在 XShell 中没有显示成功,可以调下配色方案,Black on White 是不会显示成功的。

修改前景色

如果要修改终端的前景色(即文本的颜色),命令格式如下:

# 语法
tput setf n
# 示例,修改文本颜色为黄色
tput setf 6

反显当前的配色方案

即如果当前的背景色是红色,前景色是黄色,那么反显之后是背景色是黄色,前景色是红色。命令格式如下:

tput rev

设置文本样式为粗体

如果要设置文本样式为加粗,命令格式如下:

tput bold

设置下划线的起止

如果要设置文本的下划线,可以通过如下命令:

# 设置下划线的开始
tput smul
# 设置下划线的结束
tput rmul

删除从当前光标位置到行尾的所有内容

如果要删除从当前光标位置到行尾的所有内容,命令格式如下:

tput ed

清屏

等同于 clear 命令。格式如下:

tput clear

设置光标可见和不可见

如果要设置光标可见和不可见,命令格式如下:

# 设置光标不可见
tput civis
# 设置光标可见
tput cnorm

重置终端设置

如果要重置所有的终端设置如颜色字体等设置,可以通过如下命令:

tput reset

以上是关于Linux命令之修改终端属性tput的主要内容,如果未能解决你的问题,请参考以下文章

Linux 命令(240)—— tput 命令

shell 终端terminfo命令 tput

linux命令:tput(termnal put)

《Linux Shell 脚本攻略》读书笔记

Linux命令之修改终端参数stty

Linux 命令(244)—— reset 命令