Set terminal-dependent capabilities, color, position.
Syntax
tput [-Ttype] capname [parms ... ]
tput [-Ttype] init
tput [-Ttype] reset
tput [-Ttype] longname
tput -S <<
tput -V
Key
-Ttype Indicates the type of terminal. Normally this option is unnecessary
because the default is taken from the environment variable TERM.
f -T is specified, then the shell variables LINES and COLUMNS will be
ignored,and the operating system will not be queried for the actual screen size.
capname
Indicates the capability from the terminfo database.
When termcap support is compiled in, the termcap name for the capability
is also accepted.
Typical capabilities include:
tput setab color Set ANSI Background color
tput setaf color Set ANSI Foreground color
tput blink Set blink mode
tput bold Set bold mode
tput dim Set half-bright mode
tput smul Set underline mode
tput rmul Exit underline mode
tput rev Reverse mode
tput smso Set standout mode
tput rmso Exit standout mode
tput sgr0 Reset all attributes
tput cols Display the number of columns
tput lines Display the number of lines
parms If the capability is a string that takes parameters, the arguments
parms will be instantiated into the string.
-S Allow more than one capability per invocation of tput. The capabilities must
be passed to tput from the standard input instead of from the command
line (see example). Only one capname is allowed per line.
-V Reports the version of ncurses which was used in this program, and exits.
init If the terminfo database is present and an entry for the user's
terminal exists (see -Ttype, above), output the terminal's initialization strings
and turn tabs expansion on or off according to the specification in the entry
reset Instead of putting out initialization strings, the terminal's reset strings
will be output if present (rs1, rs2, rs3, rf). If the reset strings are not
present, but initialization strings are, the initialization strings will be
output. Otherwise, reset acts identically to init.
longname
If the terminfo database is present and an entry for the user's terminal exists
(see -Ttype above), then the long name of the terminal will be put out.
The long name is the last name in the first line of the terminal's description in
the terminfo database [see term(5)].
If tput is invoked by a link named reset, this has the same effect as tput reset. See tset for comparison, which has similar behavior.
Black = 0
Red = 1
Green = 2
Yellow = 3
Blue = 4
Magenta = 5
Cyan = 6
White = 7
Reset to default color = 9
Colours set with tput may be used as part of a $PS Prompt Statement variable, if you do this, store the output of tput into a variable, which is then used when $PS1 is expanded. Storing the values means we don't have to fork a tput process multiple times every time the prompt is displayed.
The compiled terminal description database is stored at /usr/share/terminfo
tput is part of the ncurses package and is supplied with most Linux distributions.
Examples
Echo the clear-screen sequence for the current terminal.
tput clear
Set the foreground colour to Red.
tput setaf 1
Print the number of columns for the current terminal.
tput cols
“You are capable of more than you know. Choose a goal that seems right for you and strive to be the best, however hard the path. Aim high” ~ Edward O. Wilson
Related macOS commands:
tset - Select your terminal type
infocmp - compare or print out terminfo descriptions
$PS Prompt Statement variables