Bird
Raised Fist0
Linux CLIscripting~20 mins

fg and bg commands in Linux CLI - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Job Control Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this sequence of commands?
You run the following commands in a Linux shell:

sleep 30 &
jobs
fg %1


What will the jobs command output before fg %1 is run?
Linux CLI
sleep 30 &
jobs
fg %1
A[1]+ Done sleep 30
B[1]+ Stopped sleep 30
C[1]- Running sleep 30 &
D[1]+ Running sleep 30 &
Attempts:
2 left
💡 Hint
Think about what happens when a command is run in the background with & and how jobs lists them.
💻 Command Output
intermediate
2:00remaining
What happens after running bg on a stopped job?
You start a command and stop it with Ctrl+Z. Then you run bg %1. What will be the job status if you run jobs immediately after?
Linux CLI
sleep 30
# Press Ctrl+Z to stop
bg %1
jobs
A[1]+ Stopped sleep 30
B[1]+ Running sleep 30 &
C[1]+ Done sleep 30
D[1]+ Terminated sleep 30
Attempts:
2 left
💡 Hint
bg resumes a stopped job in the background.
📝 Syntax
advanced
2:00remaining
Which command correctly brings job 2 to the foreground?
You have multiple jobs running. Which of these commands correctly brings job number 2 to the foreground?
Afg %2
Bfg job2
Cfg 2
Dfg #2
Attempts:
2 left
💡 Hint
Jobs are referenced by a percent sign followed by the job number.
🔧 Debug
advanced
2:00remaining
Why does this bg command fail with 'no such job' error?
You run:
sleep 100 &
bg %1


But get the error: 'bg: no such job'. Why?
Linux CLI
sleep 100 &
bg %1
ABecause the percent sign is missing in the command.
BBecause the job number 1 does not exist yet.
CBecause bg requires the job to be stopped, not running.
DBecause the job is already running in the background, bg cannot resume it.
Attempts:
2 left
💡 Hint
bg only works on stopped jobs.
🚀 Application
expert
2:00remaining
How to bring the most recent stopped job to foreground using a single command?
You have multiple jobs stopped and running. Which command brings the most recent stopped job to the foreground?
Afg %+
Bfg %%
Cfg %-
Dfg %1
Attempts:
2 left
💡 Hint
The %+ symbol refers to the current job.

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