📖 Scenario: You are working on a Linux system and want to run commands without waiting for them to finish. This helps you do other tasks while the command runs in the background.
🎯 Goal: Learn how to run a command as a background process using the & symbol in the Linux command line.
📋 What You'll Learn
Create a simple command that runs for a few seconds
Add a background process indicator variable
Run the command in the background using &
Display a message showing the command is running in the background
💡 Why This Matters
🌍 Real World
Running long tasks like downloads or scripts in the background lets you keep using the terminal for other work.
💼 Career
System administrators and developers often use background processes to manage multiple tasks efficiently on servers and development machines.
Progress0 / 4 steps
1
Create a command that runs for 5 seconds
Type the command sleep 5 which pauses the terminal for 5 seconds.
Linux CLI
Hint
The sleep command pauses the terminal for the number of seconds you specify.
2
Create a variable called background with the value &
Create a variable called background and set it to the string &.
Linux CLI
Hint
Use background='&' to store the background process symbol.
3
Run the sleep 5 command in the background using &
Run the command sleep 5 followed by & to run it in the background.
Linux CLI
Hint
Use sleep 5 & to run the command in the background.
4
Print a message showing the command is running in the background
Use echo to print the message "The sleep command is running in the background".
Linux CLI
Hint
Use echo "The sleep command is running in the background" to show the message.
Practice
(1/5)
1. What does adding & at the end of a command in Linux do?
easy
A. Runs the command with higher priority
B. Stops the command from running
C. Runs the command in the background, freeing the terminal immediately
D. Saves the command output to a file
Solution
Step 1: Understand the role of & in Linux commands
Adding & at the end of a command tells the shell to run it in the background.
Step 2: Effect on terminal usability
Running a command in the background frees the terminal immediately for other commands.
Final Answer:
Runs the command in the background, freeing the terminal immediately -> Option C
Quick Check:
Background process = command + & [OK]
Hint: Remember: & means run in background [OK]
Common Mistakes:
Thinking & stops the command
Confusing & with output redirection
Assuming & increases priority
2. Which of the following is the correct syntax to run sleep 10 in the background?
easy
A. sleep & 10
B. & sleep 10
C. sleep 10 &&
D. sleep 10 &
Solution
Step 1: Identify correct placement of &
The & must be at the end of the command to run it in the background.
Step 2: Check each option
sleep 10 & places & correctly after sleep 10. Others place it incorrectly or use wrong syntax.
Final Answer:
sleep 10 & -> Option D
Quick Check:
Command + & at end = background run [OK]
Hint: Put & at the end of the command [OK]
Common Mistakes:
Placing & before the command
Using && instead of &
Splitting & from command arguments
3. What will be the output after running these commands?
sleep 5 &
jobs
medium
A. Immediately exits the terminal
B. Lists the sleep job running in the background
C. Displays an error about sleep command
D. Shows no jobs running
Solution
Step 1: Run sleep 5 &
This starts the sleep command in the background for 5 seconds.
Step 2: Run jobs
This command lists all background jobs currently running, including the sleep job.
Final Answer:
Lists the sleep job running in the background -> Option B
Quick Check:
jobs shows background tasks [OK]
Hint: Use jobs to see background tasks [OK]
Common Mistakes:
Expecting jobs to show nothing
Confusing jobs with ps command
Thinking sleep runs in foreground without &
4. You ran sleep 10 & but the job does not appear when you run jobs. What is the likely problem?
medium
A. You ran the command in a different shell session
B. The sleep command does not support background execution
C. You forgot to add & at the end
D. The jobs command is not installed
Solution
Step 1: Understand job control scope
Background jobs are tracked per shell session. Running jobs in a different session won't show jobs from another.
Step 2: Check other options
Sleep supports background execution, & was used, and jobs is a built-in command, so those are unlikely issues.
Final Answer:
You ran the command in a different shell session -> Option A
Quick Check:
jobs show current shell's background tasks only [OK]
Hint: jobs only shows current shell's background tasks [OK]
Common Mistakes:
Assuming jobs shows all system background tasks
Thinking sleep can't run in background
Believing jobs is an external command
5. You want to run a script backup.sh in the background and bring it to the foreground later. Which sequence of commands is correct?
hard
A. ./backup.sh & fg %1
B. ./backup.sh && fg
C. ./backup.sh & jobs; fg %2
D. ./backup.sh & bg %1
Solution
Step 1: Run the script in background
Use ./backup.sh & to start the script in the background.
Step 2: Bring the background job to foreground
Use fg %1 to bring job number 1 (the backup script) to the foreground.
Step 3: Analyze options
./backup.sh & fg %1 correctly runs the script in background and then brings job 1 to foreground. ./backup.sh && fg uses logical && instead of &, so runs in foreground. ./backup.sh & jobs; fg %2 uses wrong job number %2. ./backup.sh & bg %1 uses bg which resumes background jobs, not foreground.
Final Answer:
./backup.sh & fg %1 -> Option A
Quick Check:
Run with & then fg %job_number to foreground [OK]
Hint: Use fg %job_number to bring background job forward [OK]
Common Mistakes:
Using && instead of & for background
Using bg instead of fg to foreground
Using wrong job number like %2
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.