在Linux操作系统中,tput
命令是一个提供终端控制的功能强大的命令行工具。通过使用tput
,用户可以在脚本中控制终端的各种属性,如移动光标位置、改变文字颜色、设置窗口标题等,从而创建更为动态和交互式的脚本和程序。
Linux tput命令介绍
tput
(terminal put)命令用于初始化终端或修改终端控制设置。它利用terminfo数据库来使得终端操作的编程变得终端无关。通过tput
可以执行许多终端相关的操作,如清屏、设置属性、移动光标等。
Linux tput命令适用的Linux版本
tput
命令在几乎所有主流Linux发行版中都是预安装的,但如果系统中没有,可以通过包管理器安装:
# 基于apt的发行版(如Debian、Ubuntu、Raspbian、Kali Linux等)
sudo apt-get update && sudo apt-get install ncurses-bin
# 基于yum的发行版(如RedHat,CentOS 7等)
sudo yum update && sudo yum install ncurses
# 基于dnf的发行版(如Fedora,CentOS 8等)
sudo dnf update && sudo dnf install ncurses
# 基于apk的发行版(如Alpine Linux)
sudo apk add --update ncurses
# 基于pacman的发行版(如Arch Linux)
sudo pacman -Syu && sudo pacman -S ncurses
# 基于zypper的发行版(如openSUSE)
sudo zypper ref && sudo zypper in ncurses
# 基于pkg的FreeBSD发行版
sudo pkg update && sudo pkg install ncurses
# 基于Homebrew的OS X/macOS发行版
brew update && brew install ncurses
Linux tput命令的基本语法
tput [选项]... [字符串]...
Linux tput命令的常用选项或参数说明
选项 | 说明 |
---|---|
clear | 清除屏幕 |
cols | 显示终端列数 |
cup | 移动光标到指定位置(行,列) |
init | 初始化终端 |
lines | 显示终端行数 |
sgr0 | 重置所有属性为默认值 |
setaf | 设置前景色 |
setab | 设置背景色 |
bold | 设置粗体字 |
reset | 重置终端到默认状态 |
setb | 设置背景色(与setab 类似,但使用颜色编号) |
Linux tput命令实例详解
实例1:清除屏幕
[linux@bashcommandnotfound.cn ~]$ tput clear
这个命令会清除整个终端屏幕。
实例2:获取终端宽度
[linux@bashcommandnotfound.cn ~]$ tput cols
这个命令会显示终端的列数。
实例3:获取终端高度
[linux@bashcommandnotfound.cn ~]$ tput lines
这个命令会显示终端的行数。
实例4:移动光标到指定位置
[linux@bashcommandnotfound.cn ~]$ tput cup 10 20
这个命令将光标移动到第10行,第20列的位置。
实例5:设置文本为粗体
[linux@bashcommandnotfound.cn ~]$ tput bold
执行这个命令将使之后的文本输出为粗体。
实例6:重置所有属性为默认值
[linux@bashcommandnotfound.cn ~]$ tput sgr0
执行这个命令将重置文本属性到默认设置。
实例7:设置文本前景色和背景色
# 设置文本前景色为蓝色
[linux@bashcommandnotfound.cn ~]$ tput setaf 4
# 设置文本背景色为红色
[linux@bashcommandnotfound.cn ~]$ tput setab 1
这些命令将设置文本的前景色和背景色。颜色编码通常从0到7或更多,取决于终端的颜色支持。
实例8:发出蜂鸣声
# 发出一个蜂鸣声
[linux@bashcommandnotfound.cn ~]$ tput bel
此命令将使终端发出一个蜂鸣声,用于提醒用户注意。
实例9:隐藏光标
# 隐藏光标
[linux@bashcommandnotfound.cn ~]$ tput civis
执行此命令后,光标将不可见。
实例10:显示光标
# 显示光标
[linux@bashcommandnotfound.cn ~]$ tput cnorm
如果之前执行了隐藏光标的命令,此命令将使光标再次可见。
实例11:保存光标当前位置
# 保存当前光标位置
[linux@bashcommandnotfound.cn ~]$ tput sc
此命令用于保存光标的当前位置。
实例12:恢复光标到之前保存的位置
# 恢复光标到之前保存的位置
[linux@bashcommandnotfound.cn ~]$ tput rc
如果之前保存了光标位置,此命令将光标恢复到那个位置。
实例13:清除从光标位置到行尾的内容
# 清除从当前光标位置到行尾的内容
[linux@bashcommandnotfound.cn ~]$ tput el
执行此命令将删除从当前光标位置到行尾的所有内容。
实例14:清除整行内容
# 清除整行内容
[linux@bashcommandnotfound.cn ~]$ tput el1
此命令将清除当前行的内容,不论光标位置。
实例15:使用tput
与echo
命令结合设置颜色
# 使用tput结合echo命令设置红色文字
[linux@bashcommandnotfound.cn ~]$ echo "$(tput setaf 1)这是红色的文字$(tput sgr0)"
此命令会输出红色的文本,并在文本后重置文本属性。
实例16:创建一个带有颜色的提示符
# 创建一个带有颜色的提示符
[linux@bashcommandnotfound.cn ~]$ export PS1="\[$(tput setaf 2)\]\u@\h:\w\$ \[$(tput sgr0)\]"
这个命令将会设置提示符,使用户名和主机名显示为绿色。
实例17:使用tput
设置下划线文本
# 设置下划线文本
[linux@bashcommandnotfound.cn ~]$ tput smul
执行此命令后,输出的文本将带有下划线。
实例18:关闭tput
设置的下划线文本
# 关闭下划线文本
[linux@bashcommandnotfound.cn ~]$ tput rmul
如果之前设置了下划线文本,此命令将关闭下划线效果。
注意事项
-
使用
tput
时,应确保你的脚本或命令行操作考虑到了终端的实际能力。例如,尝试在不支持颜色的终端上设置颜色可能不会有任何效果。 -
tput
命令的参数(如颜色代码)可能在不同系统或终端模拟器中有所不同。最好查看本地terminfo
数据库或使用终端特定的文档。 -
在编写脚本时,可以通过命令替换将
tput
命令的输出赋值给变量,然后在脚本其他部分使用这些变量,这样可以提高脚本的效率和可读性。 -
在使用
tput
修改了终端状态后,在脚本结束时应当使用tput init
或tput reset
来重置终端状态,避免对后续的终端使用造成影响。
评论区