Bird
Raised Fist0
Linux CLIscripting~20 mins

History command and search in Linux CLI - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
History Command Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of history search with grep
What is the output of the following command sequence in a Linux shell where the history contains these commands:

1. ls -l
2. cd /var
3. ls -a
4. history

Command:
history | grep ls
Linux CLI
history | grep ls
A
  1  ls -l
  2  cd /var
  3  ls -a
B
ls -l
ls -a
C
  1  ls -l
  3  ls -a
D 2 cd /var
Attempts:
2 left
💡 Hint
The grep command filters lines containing 'ls' from the history output.
💻 Command Output
intermediate
1:30remaining
Effect of reverse search with Ctrl+R
If you press Ctrl+R in a Linux terminal and type 'git', what will happen?
AIt opens the git manual page.
BIt shows the most recent command in history containing 'git'.
CIt deletes the last command from history.
DIt clears the terminal screen.
Attempts:
2 left
💡 Hint
Ctrl+R is used for reverse search in command history.
📝 Syntax
advanced
1:30remaining
Correct syntax for searching history with a pattern
Which command correctly searches the history for commands containing the word 'docker' and shows line numbers?
Ahistory | grep docker
Bgrep docker history
Chistory grep docker
Dhistory -search docker
Attempts:
2 left
💡 Hint
Use pipe to send history output to grep.
🔧 Debug
advanced
2:00remaining
Why does this history search command fail?
A user runs this command:
history | grep 'apt-get update'
But it returns no results, even though they ran 'sudo apt-get update' earlier. Why?
ABecause the command in history includes 'sudo' and the search is for 'apt-get update' only.
BBecause grep cannot search for strings with spaces.
CBecause history does not store commands with sudo.
DBecause the history command needs root privileges to show all commands.
Attempts:
2 left
💡 Hint
Check the exact text stored in history.
🚀 Application
expert
2:30remaining
Count how many unique commands contain 'ssh' in history
You want to find out how many unique commands in your history contain the string 'ssh'. Which command will give you the correct count?
Ahistory | sort | grep ssh | uniq | wc -l
Bhistory | grep ssh | uniq | wc -l
Chistory | grep ssh | wc -l
Dhistory | grep ssh | sort | uniq | wc -l
Attempts:
2 left
💡 Hint
You need to filter, sort, remove duplicates, then count lines.

Practice

(1/5)
1. What does the history command do in a Linux terminal?
easy
A. Deletes all saved commands
B. Lists all previously executed commands
C. Shows current running processes
D. Clears the terminal screen

Solution

  1. Step 1: Understand the purpose of history

    The history command shows a list of commands you typed before in the terminal.
  2. Step 2: Compare options with command behavior

    Only Lists all previously executed commands correctly describes this behavior; others describe different commands.
  3. Final Answer:

    Lists all previously executed commands -> Option B
  4. Quick Check:

    history lists past commands [OK]
Hint: Remember: history shows past commands typed [OK]
Common Mistakes:
  • Confusing history with clearing screen
  • Thinking history deletes commands
  • Mixing history with process listing
2. Which of the following is the correct syntax to rerun the last command starting with git?
easy
A. !!git
B. !$git
C. !git
D. !^git

Solution

  1. Step 1: Recall syntax for rerunning commands by prefix

    Using !string reruns the last command starting with string.
  2. Step 2: Analyze options

    !git reruns last command starting with 'git'. Others are invalid or incorrect syntax.
  3. Final Answer:

    !git -> Option C
  4. Quick Check:

    Use !string to rerun commands [OK]
Hint: Use ! plus command start to rerun quickly [OK]
Common Mistakes:
  • Using !!git which is invalid
  • Confusing !$ with rerun syntax
  • Trying !^git which is not correct
3. Given the following history output:
  100  ls -l
101 git status
102 cd projects
103 git commit -m 'fix'

What command will run if you type !git?
medium
A. git commit -m 'fix'
B. git status
C. ls -l
D. cd projects

Solution

  1. Step 1: Identify last command starting with 'git'

    From history, commands 101 and 103 start with 'git'. The last one is 103: git commit -m 'fix'.
  2. Step 2: Understand !git runs last matching command

    !git reruns the most recent command starting with 'git', which is command 103.
  3. Final Answer:

    git commit -m 'fix' -> Option A
  4. Quick Check:

    !string runs last command starting with string [OK]
Hint: !string runs last command starting with string [OK]
Common Mistakes:
  • Choosing first matching command instead of last
  • Confusing command numbers with commands
  • Selecting unrelated commands
4. You tried to rerun a command with !cd but got an error: bash: !cd: event not found. What is the likely cause?
medium
A. The shell does not support history
B. You typed the command incorrectly
C. You need to use !! instead
D. No previous command starts with 'cd' in history

Solution

  1. Step 1: Understand error meaning

    event not found means no matching command found in history for the given prefix.
  2. Step 2: Analyze cause

    If no previous command starts with 'cd', !cd fails with this error.
  3. Final Answer:

    No previous command starts with 'cd' in history -> Option D
  4. Quick Check:

    !string fails if no matching command [OK]
Hint: Check history for matching commands before using !string [OK]
Common Mistakes:
  • Assuming syntax error instead of missing history
  • Thinking shell lacks history support
  • Using !! instead of !string incorrectly
5. You want to find and rerun a command that contains the word backup anywhere in it, but you don't remember the exact command start. Which is the best way to do this?
hard
A. Press Ctrl + r and type 'backup' to search interactively
B. Use !backup to rerun the command
C. Run history | grep backup and then rerun manually
D. Use !! backup to rerun last backup command

Solution

  1. Step 1: Understand searching commands with unknown start

    !string only matches commands starting with string, so !backup won't find commands containing 'backup' elsewhere.
  2. Step 2: Identify interactive search method

    Ctrl + r lets you search history interactively for any substring, including 'backup'.
  3. Final Answer:

    Press Ctrl + r and type 'backup' to search interactively -> Option A
  4. Quick Check:

    Use Ctrl + r for substring history search [OK]
Hint: Use Ctrl + r to search history by any word quickly [OK]
Common Mistakes:
  • Assuming !backup matches anywhere in command
  • Trying !! backup which is invalid syntax
  • Relying only on grep without rerun shortcut
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