Using Job Control

A job is any command you've started that has not completed. The shell provides a job control facility that lets you stop (suspend) commands temporarily and resume them later, or move commands back and forth between the foreground and the background.

Why Job Control Is Useful

Job control gives you a form of job multiplexing that lets you manage the execution of your commands and switch between jobs:

  • You can move a slow foreground job to the background, and work on something else while the slow job runs. Suppose you're running a large sort command or a network file copy that takes longer than you expected. Rather than killing the command and rerunning it in the background (which wastes the time you've already spent), you can stop the command, resume it in the background, and work on other things while it finishes.

  • You can put a command to sleep, then wake it up again when you're ready to continue. For instance, if you're editing a file and find you need to check some other files before proceeding, job control gives you an alternative to quitting the editor. Just suspend the editor and resume it later, after running the other commands. You'll be returned to the point where you left off—with no need to read the file back in and find your position again.

  • You can kill a command, e.g., if it starts producing runaway output, or you decide that you simply don't want to let it finish.

Basic Job Control

Try the examples shown below to learn how job control works. Table 3-4 summarizes ...

Get Using csh & tcsh now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.