1. Overview

When we work on the Linux command line, sometimes we want to execute a command periodically and check the output of each execution. The watch command can help us with that.

In this tutorial, we’ll learn this command together through some examples.

2. Introduction to the watch Command

The watch command is a utility from the procps-ng package. This package is by default available on all Linux distros.

We can use the watch command to execute a command at regular intervals. It displays its output on a console or terminal in fullscreen mode.

In this way, we can observe the changes in the command output over time.

The basic usage syntax of the watch command is pretty straightforward:

watch [options] COMMAND

The default interval to execute the given command is two seconds. For example, we can monitor the output of the date command every two seconds:

$ watch date

We will see the output:

20200302_233446

To exit the watch command, we press Ctrl-C.

3.  Customize the Update Interval

If we pass the -n (seconds) option to the watch command, we can specify the update interval.

Let’s monitor the output of the date command every three seconds instead of the default two seconds:

$ watch -n 3 date

The output looks like:

20200302_234504

At the very beginning of the screen, it lists the interval and the command to watch: Every 3.0s: date in the header.

4. Turn Off the Header in Output

We’ve seen the header in the output of the watch command, showing the interval, command, hostname, and the current system time.

We can use the -t  option to hide the header in the output:

$ watch -t date

Now, we have the output without the header:

20200302_235326

5. Highlight the Differences Between Updates

The output of the command we want to watch might not be as simple as the previous example. In this case, it is not so easy for us to see the changes between updates.

The -d option will highlight the differences between successive updates. 

For example, let’s monitor memory usage every two seconds and highlight the changes:

$ watch -d free

The output would be:

20200303_000431

6. watch Commands With Pipes

Sometimes we want to execute pipe-chained commands with the watch utility. We must wrap the whole command by quotes:

$ watch "COMMAND1 | COMMAND2 |..."

Now let’s monitor the vim process information by executing the ps command with grep:

$ watch "ps -ef | grep [v]im"

20200303_002633

7. Conclusion

In this article, we’ve discussed the usage of the watch command through examples.

Although it’s a simple program, if we use it properly, it can be quite useful.