Bird
Raised Fist0
Linux CLIscripting~10 mins

Background processes (&) in Linux CLI - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Background processes (&)
User types command with &
↓
Shell starts command
↓
Command runs in background
↓
Shell prompt returns immediately
↓
User can run other commands
↓
Background command finishes
↓
Shell shows job completion message
The shell runs the command in the background, freeing the prompt immediately for new commands while the background job runs.
Execution Sample
Linux CLI
sleep 5 &
echo "Done"
Runs 'sleep 5' in the background and immediately prints 'Done' without waiting.
Execution Table
StepActionShell BehaviorOutputPrompt State
1User types 'sleep 5 &'Shell recognizes & for backgroundPrompt waits for input
2Shell starts 'sleep 5' in backgroundCommand runs without blockingPrompt returns immediately
3User types 'echo "Done"'Shell executes echo immediatelyDonePrompt returns immediately
4'sleep 5' finishes after 5 secondsShell prints job completion message[1]+ Done sleep 5Prompt ready for input
💡 Background job finishes and shell shows completion message; prompt stays ready for new commands.
Variable Tracker
VariableStartAfter Step 2After Step 4
sleep_processnot runningrunning in backgroundfinished
Key Moments - 3 Insights
Why does the shell prompt return immediately after typing a command with &?
Because the & tells the shell to run the command in the background, so it does not wait for the command to finish before showing the prompt again, as seen in execution_table step 2.
What happens if you run a command without &?
The shell waits for the command to finish before returning the prompt. With &, the shell does not wait, shown by the immediate prompt return in step 2.
How does the shell notify you when a background job finishes?
It prints a job completion message like '[1]+ Done sleep 5' after the background process ends, as shown in execution_table step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the shell prompt state immediately after starting 'sleep 5 &'?
APrompt waits until 'sleep 5' finishes
BPrompt disappears
CPrompt returns immediately ready for input
DPrompt shows an error
💡 Hint
Check execution_table row 2 under 'Prompt State'
At which step does the shell print the job completion message?
AStep 4
BStep 2
CStep 3
DStep 1
💡 Hint
Look at the 'Output' column in execution_table for job completion
If you remove the & from 'sleep 5 &', how would the prompt behave?
APrompt returns immediately
BPrompt waits until 'sleep 5' finishes
CPrompt shows an error
DPrompt runs two commands at once
💡 Hint
Refer to key_moments about shell waiting behavior without &
Concept Snapshot
Background processes (&) in Linux shell:
- Add & at command end to run it in background
- Shell prompt returns immediately, no waiting
- Background job runs independently
- Shell shows job done message when finished
- Useful to keep working while long tasks run
Full Transcript
When you add an ampersand (&) at the end of a command in the Linux shell, the shell runs that command in the background. This means the shell does not wait for the command to finish and immediately shows you the prompt so you can type other commands. For example, running 'sleep 5 &' starts a 5-second pause in the background. Right after, you can run 'echo "Done"' and see the output immediately. After 5 seconds, the shell will notify you that the background job finished. This helps you keep working without waiting for long commands to complete.

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

  1. 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.
  2. Step 2: Effect on terminal usability

    Running a command in the background frees the terminal immediately for other commands.
  3. Final Answer:

    Runs the command in the background, freeing the terminal immediately -> Option C
  4. 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

  1. Step 1: Identify correct placement of &

    The & must be at the end of the command to run it in the background.
  2. Step 2: Check each option

    sleep 10 & places & correctly after sleep 10. Others place it incorrectly or use wrong syntax.
  3. Final Answer:

    sleep 10 & -> Option D
  4. 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

  1. Step 1: Run sleep 5 &

    This starts the sleep command in the background for 5 seconds.
  2. Step 2: Run jobs

    This command lists all background jobs currently running, including the sleep job.
  3. Final Answer:

    Lists the sleep job running in the background -> Option B
  4. 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

  1. 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.
  2. Step 2: Check other options

    Sleep supports background execution, & was used, and jobs is a built-in command, so those are unlikely issues.
  3. Final Answer:

    You ran the command in a different shell session -> Option A
  4. 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

  1. Step 1: Run the script in background

    Use ./backup.sh & to start the script in the background.
  2. Step 2: Bring the background job to foreground

    Use fg %1 to bring job number 1 (the backup script) to the foreground.
  3. 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.
  4. Final Answer:

    ./backup.sh & fg %1 -> Option A
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard