00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 光标属性
  • 04. **移动光标**
  • 05. 文本属性
  • 06. 附录

01. 命令概述

tput命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。

02. 命令格式

用法:tput [-Ttype] capname [parms ... ]tput [-Ttype] inittput [-Ttype] resettput [-Ttype] longnametput -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        具有状态行

03. 光标属性

在 UNIX shell 脚本中或在命令行中,移动光标或更改光标属性可能是非常有用的。有些情况下,您可能需要输入敏感信息(如密码),或在屏幕上两个不同的区域输入信息。在此类情况下,使用 tput 可能会对您有所帮助。

3.1 清屏

[deng@localhost ~]$ tput clear

3.2 保存当前光标位置

[deng@localhost ~]$ tput sc
[deng@localhost ~]$

3.3 将光标移动到指定行列

[deng@localhost ~]$ tput cup 10 14[deng@localhost ~]$

3.4 光标不可见

[deng@localhost ~]$ tput civis
[deng@localhost ~]$

3.5 设置光标可见

[deng@localhost ~]$ tput  cnorm
[deng@localhost ~]$

3.6 显示输出

[deng@localhost ~]$ tput rc
[deng@localhost ~]$

04. 移动光标

使用 tput 可以方便地实现在各设备上移动光标的位置。通过在 tput 中使用 cup 选项,或光标位置,您可以在设备的各行和各列中将光标移动到任意 X 或 Y 坐标。设备左上角的坐标为 (0,0)。

要在设备上将光标移动到第 5 列 (X) 的第 1 行 (Y),只需执行 tput cup 5 1。另一个示例是 tput cup 23 45,此命令将使光标移动到第 23 列上的第 45 行。

4.1 移动光标,执行用于显示信息的命令,然后返回到前一光标位置

[deng@localhost ~]$ (tput sc ; tput cup 5 8 ; echo “Input from tput/echo at 23/45” ; tput rc)
[deng@localhost ~]$ “Input from tput/echo at 23/45”

分析:

tput sc

​ 必须首先保存当前的光标位置。要保存当前的光标位置,请包括 sc 选项或“save cursor position”。

tput cup 5 8

​ 在保存了光标位置后,光标坐标将移动到 (5, 8)。

echo “Input from tput/echo at 23/45”

​ 将信息显示到 stdout 中。

tput rc

​ 在显示了这些信息之后,光标必须返回到使用 tput sc 保存的原始位置。要使光标返回到其上次保存的位置,请包括 rc 选项或“restore cursor position”。

注意:由于本文首先详细介绍了通过命令行执行 tput,因此您可能会觉得在自己的 subshell 中执行命令要比单独执行每条命令然后在每条命令执行之前显示提示更简洁。

05. 文本属性

更改文本的显示方式可以让用户注意到菜单中的一组词或警惕用户注意某些重要的内容。您可以通过以下方式更改文本属性:使文本加粗、在文本下方添加下划线、更改背景颜色和前景颜色,以及逆转颜色方案等。

要更改文本的颜色,请使用 setb 选项(用于设置背景颜色)和 setf 选项(用于设置前景颜色)以及在 terminfo 数据库中分配的颜色数值。通常情况下,分配的数值与颜色的对应关系如下,但是可能会因 UNIX 系统的不同而异:

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

执行以下示例命令可以将背景颜色更改为黄色,将前景颜色更改为红色:

[deng@localhost ~]$ tput setb 6
[deng@localhost ~]$ tput setf 4
[deng@localhost ~]$

反显当前的颜色方案

[deng@localhost ~]$ tput rev
[deng@localhost ~]$

要将文本更改为粗体,请使用 bold 选项。要开始添加下划线,请使用 smul 选项。在完成显示带下划线的文本后,请使用 rmul 选项。

06. 附录

参考:【Linux】一步一步学Linux系列教程汇总

【Linux】一步一步学Linux——tput命令(232)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

  9. 大学生为什么要学Linux?Linux有什么优点?

    前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...

最新文章

  1. 专访施巍松:边缘计算早期提出者之一
  2. 工作中系统报错:数据库连接失败怎么办?
  3. python 导入模型h20_【机器学习】模型融合方法概述
  4. 消息队列-ActiveMQ
  5. 1MySQL是面向对象型数据库_数据库及MySQL基础(1)
  6. java-基础练习题3
  7. SQL语句--INSERT INTO SELECT 语句用法示例
  8. 第十二届蓝桥杯JavaB组省赛H题 杨辉三角形
  9. imp导入前对当前用户清库脚本
  10. python3 gui协程_Python3进阶-协程
  11. mysql nb3 备份_Navicat mysql 数据库备份和使用,备份以后是nb3文件-Go语言中文社区...
  12. 一个计算机爱好者的不完整回忆(三十一)我的拼音输入法
  13. macOS | 提取BDrip(封装格式为mkv)中视频与音频并重新封装为mp4
  14. 算法——霍夫曼编码压缩算法
  15. 深入理解操作系统实验——bomb lab(phase_2)
  16. 从51开始的单片机之旅(一)----流水灯、矩形键盘、电子时钟
  17. Struts MVC 框架 (让你一步步成为高手)
  18. USB(一)——USB通用串行总线基础知识详述
  19. Unity小技巧——Inspector中插入数组元素
  20. C#之打造气泡屏幕保护

热门文章

  1. Linux软件安装之RPM的安装技巧
  2. SuperMap产权登记管理平台
  3. typescript 怎么表示当前时间减一个月_TypeScript 入门知识点总结
  4. a卡显存测试软件_官方游戏性能堪比RTX 3080 苏姿丰:RX 6000 Big Navi是史上最强A卡...
  5. Java黑皮书课后题第1章:1.5(计算表达式)编写程序,显示以下式子的结果
  6. C语言学习之分别用if和switch编程,输入0-100分成绩,输出相应的成绩档次。
  7. 程序员面试100题之七:最长公共子字符串
  8. 类方法classmethod 绑定方法
  9. 2018 多校联合训练 10
  10. 【SIP协议】学习初学笔记