tput – Initialize and manipulate terminal sessions through the terminfo database

The tput command is used to initialize and manipulate terminal sessions through the terminfo database. It allows you to control various aspects of the terminal such as cursor movement, text colors, and terminal modes. The command uses the terminfo database to determine the capabilities of the terminal, and then sends the appropriate control codes to the terminal to perform the desired actions.

Overview

The tput command can be used to perform a wide range of actions on the terminal. Here are some examples of how to use tput for specific use cases:

  • To move the cursor to a specific location on the screen, use the cup capability:
tput cup 10 20

This will move the cursor to row 10, column 20 on the screen.

  • To set the foreground or background color of text, use the setaf or setab capabilities:
tput setaf 2
tput setab 4

This will set the foreground color to green and the background color to blue.

  • To turn on or off terminal modes such as bold or underline, use the bold, smul, or rmul capabilities:
tput bold
tput smul
tput rmul

This will turn on bold mode, underline mode, or turn off underline mode respectively.

  • To clear the screen or erase a portion of the screen, use the clear or ed capabilities:
tput clear
tput ed

This will clear the entire screen or erase from the current cursor position to the end of the screen respectively.

Options

Here are the available options for the tput command:

Option Description
cup row col Move the cursor to the specified row and column
setaf color Set the foreground color to the specified color
setab color Set the background color to the specified color
bold Turn on bold mode
smul Turn on underline mode
rmul Turn off underline mode
clear Clear the entire screen
ed Erase from the current cursor position to the end of the screen

Troubleshooting tips

Here are some common issues you may encounter when using the tput command, along with their solutions:

  • The terminal does not support the requested capability: Some terminals may not support certain capabilities, or may have different names for them. You can use the infocmp command to view the capabilities of the current terminal and their names:
infocmp -L

This will display a list of capabilities and their names for the current terminal. You can then use the appropriate name for the capability in the tput command.

  • The terminal output is garbled or incorrect: This can happen if the terminal’s capabilities are not set correctly. You can use the reset command to reset the terminal’s capabilities to their default values:
reset

This will reset the terminal and clear any garbled output.

Notes

  • The tput command can be used in shell scripts to perform various actions on the terminal.
  • The capabilities of the terminal can vary depending on the terminal emulator being used, so it is important to test your tput commands on different terminals to ensure compatibility.