Bird
Raised Fist0
Linux CLIscripting~15 mins

dmesg for kernel messages in Linux CLI - Mini Project: Build & Apply

Choose your learning style10 modes available
Using dmesg to View Kernel Messages
📖 Scenario: You are a system administrator who wants to check the system's kernel messages to troubleshoot hardware or driver issues.
🎯 Goal: Learn how to use the dmesg command to view kernel messages and filter them by keywords.
📋 What You'll Learn
Use the dmesg command to display kernel messages
Create a variable to store the output of dmesg
Filter kernel messages containing the word usb
Print the filtered messages
💡 Why This Matters
🌍 Real World
System administrators often need to check kernel messages to diagnose hardware or driver problems on Linux servers or desktops.
💼 Career
Knowing how to use <code>dmesg</code> and filter its output is a basic skill for Linux system troubleshooting and monitoring.
Progress0 / 4 steps
1
Capture Kernel Messages
Run the command dmesg and save its output to a variable called kernel_messages.
Linux CLI
Hint

Use command substitution with $( ) to save the output of dmesg into a variable.

2
Set Filter Keyword
Create a variable called filter_keyword and set it to the string usb.
Linux CLI
Hint

Assign the string usb to the variable filter_keyword using double quotes.

3
Filter Kernel Messages
Use grep with the variable filter_keyword to filter kernel_messages and save the result to a variable called filtered_messages.
Linux CLI
Hint

Use echo to send kernel_messages to grep and save the output.

4
Display Filtered Messages
Print the contents of the variable filtered_messages to display the filtered kernel messages.
Linux CLI
Hint

Use echo to print the variable filtered_messages.

Practice

(1/5)
1. What is the primary purpose of the dmesg command in Linux?
easy
A. To display kernel messages and system events
B. To list all running processes
C. To show disk usage statistics
D. To edit system configuration files

Solution

  1. Step 1: Understand the role of dmesg

    The dmesg command reads the kernel ring buffer, which contains messages about system events and hardware status.
  2. Step 2: Compare with other options

    Options A, B, and C relate to file editing, process listing, and disk usage, which are unrelated to kernel messages.
  3. Final Answer:

    To display kernel messages and system events -> Option A
  4. Quick Check:

    Kernel messages = display with dmesg [OK]
Hint: dmesg always shows kernel logs, not processes or files [OK]
Common Mistakes:
  • Confusing dmesg with ps or top commands
  • Thinking dmesg edits files
  • Assuming dmesg shows disk info
2. Which of the following is the correct syntax to display kernel messages with human-readable timestamps using dmesg?
easy
A. dmesg -r
B. dmesg --time
C. dmesg -T
D. dmesg -h

Solution

  1. Step 1: Identify the option for readable timestamps

    The -T option in dmesg converts kernel timestamps to human-readable format.
  2. Step 2: Verify other options

    -r reverses output order, --time is invalid, and -h shows help.
  3. Final Answer:

    dmesg -T -> Option C
  4. Quick Check:

    Readable time = -T option [OK]
Hint: Use -T for readable timestamps in dmesg output [OK]
Common Mistakes:
  • Using -r instead of -T for timestamps
  • Typing invalid options like --time
  • Confusing -h (help) with timestamp option
3. What will be the output of the command dmesg | grep usb?
medium
A. All kernel messages containing the word 'usb'
B. Only USB device names without any messages
C. A list of all running USB processes
D. An error because grep cannot be used with dmesg

Solution

  1. Step 1: Understand the pipe and grep usage

    The command pipes dmesg output to grep usb, filtering lines containing 'usb'.
  2. Step 2: Interpret the filtered output

    This shows kernel messages related to USB devices or events, not just names or processes.
  3. Final Answer:

    All kernel messages containing the word 'usb' -> Option A
  4. Quick Check:

    dmesg | grep filters messages by keyword [OK]
Hint: Pipe dmesg to grep to filter messages by keyword [OK]
Common Mistakes:
  • Thinking grep lists processes
  • Expecting only device names without messages
  • Assuming grep causes errors with dmesg
4. You run dmesg -T but get an error saying "dmesg: option requires an argument -- 'T'". What is the likely cause?
medium
A. You typed the command incorrectly; -T needs a filename
B. You used an older dmesg version that does not support -T
C. The kernel is not loaded, so dmesg fails
D. You need root permissions to use -T option

Solution

  1. Step 1: Analyze the error message

    The error says the option -T requires an argument, which is unusual because -T normally needs none.
  2. Step 2: Understand version compatibility

    Older versions of dmesg do not support -T, causing this error.
  3. Final Answer:

    You used an older dmesg version that does not support -T -> Option B
  4. Quick Check:

    Old dmesg versions lack -T support [OK]
Hint: Check dmesg version if -T option errors [OK]
Common Mistakes:
  • Assuming -T needs a filename argument
  • Thinking root permission is required for -T
  • Blaming kernel load status for this error
5. You want to monitor new kernel messages related to network devices in real-time. Which command combination is best?
hard
A. dmesg --follow --filter=net
B. dmesg -T | grep net
C. dmesg | tail -n 10 | grep net
D. dmesg -w | grep net

Solution

  1. Step 1: Identify real-time monitoring option

    The -w option makes dmesg wait and show new messages as they appear.
  2. Step 2: Combine with grep for filtering

    Piping to grep net filters messages related to network devices.
  3. Step 3: Evaluate other options

    -T shows timestamps but is not real-time; tail -n 10 shows only last 10 lines; --follow --filter=net is invalid syntax.
  4. Final Answer:

    dmesg -w | grep net -> Option D
  5. Quick Check:

    Real-time dmesg = -w with grep filter [OK]
Hint: Use dmesg -w for live kernel logs, pipe to grep to filter [OK]
Common Mistakes:
  • Using -T for real-time (it only formats time)
  • Using tail only shows past logs, not live
  • Assuming --follow or --filter options exist
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