In this tutorial, we will introduce you to the watch command.

Watch is used to run any arbitrary command at regular intervals and displays the output of the command on the terminal window.

It is useful when you have to execute a command repeatedly and watch the command output change over time. For example, you can use the watch command to monitor the system uptime or disk usage.

The watch utility is a part of the procps (or procps-ng) package which is pre-installed on nearly all Linux distributions.

How to Use the Watch Command

The syntax for the watch command is as follows:

To best illustrate how the watch command works let’s run the date command:

watch date

As you can see in the image above, the watch command will temporarily clear all of the terminal content and start running the provided command at regular intervals. When used without any option watch will run the specified command every two seconds.

On the top left side of the screen header you can see the watch update interval and the executed command (Every 2.0s: date), while on the top left side watch shows the current time and date. If you want to turn off the header use the -t(--no-title) option.

The output of the specified command is shown on the screen and regularly updated every two seconds.

To exit out of the watch command, just hit the Ctrl C key combination. You can also set the watch to exit when the output from command changes by using -g(--chgexit) option.

In the following sections, we’ll go over the most commonly used watch command options.

How to Change the Time Interval

What if the default update interval of two seconds is not suitable for your use-case?

The -n (--interval) option followed by the desired number of seconds allows you to change the time interval between updates:

watch -n INTERVAL_IN_SECONDS COMMAND

For example, to monitor your disk space usage with the df command and refresh the screen every five seconds on you would run:

watch -n 5 df -h

Highlighting the Difference Between Updates

The -d (--difference), option will cause watch to highlight the changes between successive updates.

Let’s say you want to monitor the system uptime by running the uptime command and to highlight the changes. The command would be:

watch -d uptime

If you want the highlights to be sticky, pass =cumulative to the -d option. This means that all values that have ever changed will stay highlighted.

watch -d=cumulative COMMAND

Commands with Pipes

If you want to execute a command that contains pipes you need to enclose the command in single or double quotes. If you don’t enclose the full command watch will run just the first command and then pipe its output to the next command in the pipeline.

watch 'COMMAND_1 | COMMAND_2'

For example, the following command will monitor the number of active connections on port 80 using a combination of the netstat and grep utilities:

watch "netstat -anp | grep -c ':80b.*LISTEN'"

Conclusion

By now you should have a good understanding of how to use the Linux watch command. You can always view all available watch command options by typing man watch in your terminal.

If you have any questions or feedback, feel free to leave a comment.