Bird
Raised Fist0
Linux CLIscripting~15 mins

fg and bg commands in Linux CLI - Mini Project: Build & Apply

Choose your learning style10 modes available
Using fg and bg Commands to Manage Background and Foreground Processes
📖 Scenario: You are working in a Linux terminal and want to manage running programs efficiently. Sometimes you want to pause a program and send it to the background, and other times you want to bring a background program back to the foreground to interact with it.
🎯 Goal: Learn how to use the fg and bg commands to move processes between the foreground and background in a Linux shell.
📋 What You'll Learn
Create a simple command that runs a program in the foreground
Pause the running program and send it to the background
Bring the background program back to the foreground
Display the current jobs and their statuses
💡 Why This Matters
🌍 Real World
Managing multiple tasks in a terminal without opening new windows or tabs is common for system administrators and developers.
💼 Career
Knowing how to control foreground and background processes is essential for efficient command-line work and automation.
Progress0 / 4 steps
1
Start a Long-Running Command in the Foreground
Type the command sleep 100 to start a program that runs for 100 seconds in the foreground.
Linux CLI
Hint

The sleep command pauses for a number of seconds. This will keep the terminal busy.

2
Pause the Running Command and Send It to the Background
While sleep 100 is running, press Ctrl+Z to pause it. Then type bg to send it to the background.
Linux CLI
Hint

Pressing Ctrl+Z pauses the program and puts it in the background in a stopped state. The bg command resumes it in the background.

3
Check the Status of Background Jobs
Type jobs to list all current background jobs and their statuses.
Linux CLI
Hint

The jobs command shows all jobs started in the current shell and their states.

4
Bring the Background Job Back to the Foreground
Type fg to bring the background sleep 100 process back to the foreground.
Linux CLI
Hint

The fg command brings the most recent background job to the foreground so you can interact with it.

Practice

(1/5)
1. What does the fg command do in a Linux shell?
easy
A. Brings a background job to the foreground for interaction
B. Stops a running job immediately
C. Lists all running jobs
D. Terminates a background job

Solution

  1. Step 1: Understand the purpose of fg

    The fg command is used to bring a job running in the background to the foreground so you can interact with it directly.
  2. Step 2: Compare with other commands

    jobs lists jobs, bg resumes jobs in background, and stopping or terminating jobs use other commands.
  3. Final Answer:

    Brings a background job to the foreground for interaction -> Option A
  4. Quick Check:

    fg = bring job to foreground [OK]
Hint: Remember: fg = foreground, bg = background [OK]
Common Mistakes:
  • Confusing fg with bg
  • Thinking fg lists jobs
  • Assuming fg stops jobs
2. Which of the following is the correct syntax to resume a stopped job in the background?
easy
A. fg %1
B. bg %1
C. jobs %1
D. stop %1

Solution

  1. Step 1: Identify the command to resume a stopped job in background

    The bg command resumes a stopped job in the background, allowing the terminal to be free.
  2. Step 2: Understand job specification

    Using %1 specifies job number 1. So bg %1 resumes job 1 in background.
  3. Final Answer:

    bg %1 -> Option B
  4. Quick Check:

    bg %jobnumber resumes job in background [OK]
Hint: Use bg with %jobnumber to resume in background [OK]
Common Mistakes:
  • Using fg instead of bg to resume in background
  • Trying to use jobs command to resume
  • Using stop which is invalid
3. Given the following commands run in a terminal:
sleep 100 &
jobs
fg %1

What will happen after running fg %1?
medium
A. The sleep command will continue running in the background
B. An error will occur because %1 is invalid
C. The sleep command will be terminated
D. The sleep command will be brought to the foreground and block the terminal

Solution

  1. Step 1: Analyze the commands

    sleep 100 & runs sleep in background. jobs lists it as job 1. fg %1 brings job 1 to foreground.
  2. Step 2: Understand effect of fg

    Bringing sleep to foreground means it blocks terminal until it finishes or is stopped.
  3. Final Answer:

    The sleep command will be brought to the foreground and block the terminal -> Option D
  4. Quick Check:

    fg %1 = foreground job blocks terminal [OK]
Hint: fg brings job to foreground and blocks terminal [OK]
Common Mistakes:
  • Thinking fg keeps job in background
  • Assuming fg terminates job
  • Believing %1 is invalid without jobs output
4. You ran a command in the background with sleep 200 & but accidentally typed fg 1 instead of fg %1. What will happen?
medium
A. The job will be brought to foreground successfully
B. The job will continue running in background silently
C. An error message will appear: 'fg: 1: no such job'
D. The shell will terminate

Solution

  1. Step 1: Understand job specification syntax

    The fg command requires job IDs to be prefixed with %, e.g., fg %1.
  2. Step 2: Analyze incorrect command

    Typing fg 1 without % causes shell to look for a job named '1' which does not exist, causing an error.
  3. Final Answer:

    An error message will appear: 'fg: 1: no such job' -> Option C
  4. Quick Check:

    Job IDs need % prefix for fg/bg [OK]
Hint: Always prefix job number with % in fg/bg commands [OK]
Common Mistakes:
  • Omitting % before job number
  • Assuming fg accepts plain numbers
  • Ignoring error messages
5. You have two stopped jobs listed by jobs as:
[1]+  Stopped                 nano file1.txt
[2]-  Stopped                 vim file2.txt

How do you resume vim file2.txt in the background and then bring nano file1.txt to the foreground?
hard
A. bg %2 followed by fg %1
B. fg %2 followed by bg %1
C. bg %1 followed by fg %2
D. fg %1 followed by fg %2

Solution

  1. Step 1: Resume vim in background

    Use bg %2 to resume job 2 (vim) in background so it runs without blocking terminal.
  2. Step 2: Bring nano to foreground

    Use fg %1 to bring job 1 (nano) to foreground for interaction.
  3. Final Answer:

    bg %2 followed by fg %1 -> Option A
  4. Quick Check:

    bg %job runs in background, fg %job runs in foreground [OK]
Hint: Use bg for background, fg for foreground with correct job IDs [OK]
Common Mistakes:
  • Mixing up job numbers
  • Using fg for both jobs
  • Not using % before job number
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