Use watch to repeatedly run any command, and show you the results
If you have ever had a long-running background process, chances are you are used to repeatedly checking to see if the command has finished using ps and grep:
mc@escher:~$ ps ax |grep tar 10303 ? S 0:00 bash -c cd /; tar cf - home 10304 ? S 0:42 tar cf - home mc@escher:~$ ps ax |grep tar 10303 ? S 0:00 bash -c cd /; tar cf - home 10304 ? S 0:43 tar cf - home
Or maybe you're ftping a file, and forgot the hash command (and for some reason, aren't using ncftp or scp or wget or curl), so you have no idea how far along your transfer is. Naturally, you login again and take a look at the file with ls:
mc@escher:~$ ls -l xfree86.tgz -rw-r--r-- 1 rob users 12741812 Jun 13 2001 xfree86.tgz mc@escher:~$ ls -l xfree86.tgz -rw-r--r-- 1 rob users 12744523 Jun 13 2001 xfree86.tgz
Any time you find yourself running a command over and over again, try the watch command. It will repeatedly cycle over any command you give it, and whatever interval you'd like (defaulting to 2 seconds). It clears the screen on each pass, making a nice, easy to read display.
mc@escher:~$ watch 'ps ax |grep tar' Every 2s: ps ax |grep tar|grep -v pts/0 Fri Sep 6 00:22:01 2002 10303 ? S 0:00 bash -c cd /; tar cf - home 10304 ? S 0:42 tar cf - home
You'll only need to enclose the command in single quotes if you're using pipes (or other special characters that you don't want interpolated before watch runs). To specify a different ...