How to Use the Command 'tput' (with Examples)
tput
is a command-line utility in Unix-like systems that allows users to interact with and manipulate terminal settings and capabilities. It provides the ability to control various terminal attributes, such as cursor location, text colors, and display settings, by making use of the terminal’s capabilities as specified in the terminfo database. This makes it an essential tool for scripting and terminal customization.
Use Case 1: Move the Cursor to a Screen Location
Code:
tput cup 5 10
Motivation:
In a terminal or shell script, you might want to position the cursor to a specific location on the screen to print text or user prompts at that exact location. This is particularly useful in creating text-based user interfaces, where elements are dynamically placed on the screen.
Explanation:
tput
: Invokes the tput command to use terminal capabilities.cup
: Stands for “cursor position”; it is the capability to move the cursor.5
: Specifies the row number to which the cursor should be moved. Rows are usually numbered starting from zero, so this places the cursor on the sixth row.10
: Specifies the column number for the cursor, placing it on the eleventh column.
Example Output:
After executing this command, the cursor will move to the position at the 5th row and 10th column. If you type any text after running this command, it will start from this new cursor position.
Use Case 2: Set Foreground (af) or Background (ab) Color
Code:
tput setaf 4
Motivation:
Changing text colors in the terminal can significantly enhance readability and the user interface experience by providing visual cues or highlighting specific information. This is vital in logs, reports, or even when creating compelling command-line interfaces.
Explanation:
tput
: This is the command-line tool to interface with terminal capabilities.setaf
: Sets the foreground color (text color) of the terminal.4
: Represents the ANSI color code for blue. ANSI color codes range from 0 to 7 for standard colors.
Example Output:
The text following the execution of this command will be displayed in blue until another color is set or the terminal is reset.
Use Case 3: Show Number of Columns, Lines, or Colors
Code:
tput cols
Motivation:
Knowing the number of columns and lines of the terminal is crucial when designing display outputs in scripts that need to adjust dynamically to various terminal sizes. It helps in making sure that content appears correctly formatted across different terminal sizes.
Explanation:
tput
: Utilizes the terminal interface capabilities.cols
: Outputs the current number of columns (width) in the terminal window.
Example Output:
Executing this command may output “80”, indicating that the terminal is currently 80 columns wide.
Use Case 4: Ring the Terminal Bell
Code:
tput bel
Motivation:
The terminal bell is an effective way to alert a user to a specific event when a script finishes execution or an error occurs. It draws attention without interrupting other processes.
Explanation:
tput
: Accesses terminal capabilities.bel
: Sends a bell signal to the terminal, which usually results in a sound or a visual bell depending on the terminal configuration.
Example Output:
Upon execution, the terminal may emit a beep sound if the bell is enabled, alerting the user.
Use Case 5: Reset All Terminal Attributes
Code:
tput sgr0
Motivation:
Resetting terminal attributes is often necessary when a script changes colors, attributes, or cursor positions during execution and you want to revert to the default settings. This ensures that subsequent terminal commands or scripts are not affected by previous customizations.
Explanation:
tput
: Engages the terminal control command.sgr0
: Resets all terminal formatting, like colors and text styles, to their default settings.
Example Output:
All terminal text formatting reverts to the terminal’s default state, nullifying previous color and style changes.
Use Case 6: Enable or Disable Word Wrap
Code:
tput smam
Motivation:
Enabling or disabling word wrap is helpful depending on how you want text to be displayed in the terminal. For instance, long lines that wrap onto the next line can interrupt readability; controlling this feature allows you to better format and navigate text output.
Explanation:
tput
: Initiates terminal capabilities.smam
: Turns on auto-margin (word wrap), allowing text to wrap to the next line automatically when the end of the current line is reached.
Example Output:
With word wrap enabled, any text typed or displayed will continue onto a new line once it exceeds the terminal width, making it easier to read lengthy outputs.
Conclusion:
The tput
command offers a rich set of functionalities for managing how text and cursor actions are handled in a terminal environment. Whether you’re looking to enhance terminal aesthetics, control text flow, or modify cursor behavior, tput
provides the necessary tools to create an efficient and visually pleasing terminal experience.