Swiftorial Logo
Home
Swift Lessons
AI Tools
Learn More
Career
Resources

Job Control: Using bg and fg

Introduction

In Unix-like operating systems, job control is a feature that allows users to manage multiple processes (jobs) within a single shell session. The bg and fg commands are crucial tools for controlling jobs in the background and foreground, respectively. This tutorial will guide you through using these commands effectively.

Starting a Job

When you run a command in the shell, it typically runs in the foreground by default, occupying the terminal until it completes. For example:

ping google.com

This command will continuously ping Google's servers, and you won't be able to use the terminal until you stop it (usually by pressing Ctrl+C).

Running a Job in the Background

To run a job in the background, append an ampersand (&) to the end of the command. For example:

ping google.com &

This will start the ping command in the background, allowing you to continue using the terminal. You will see a job number and process ID (PID) displayed:

[1] 12345

Listing Background Jobs

To view all background jobs, use the jobs command:

jobs

This will display a list of current jobs with their status:

[1]+ Running ping google.com &

Bringing a Job to the Foreground

To bring a background job to the foreground, use the fg command followed by the job number. For example:

fg %1

This brings job number 1 to the foreground, allowing you to interact with it directly. If you omit the job number, fg will operate on the most recent job.

Sending a Job to the Background

If you have a job running in the foreground, you can suspend it and move it to the background by pressing Ctrl+Z and then using the bg command:

bg %1

This resumes the suspended job in the background.

Conclusion

Understanding how to use bg and fg commands is essential for effective job control in Unix-like systems. These commands allow you to manage multiple processes efficiently, improving your workflow and productivity.