Bird
Raised Fist0
Linux CLIscripting~5 mins

ps (list processes) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: ps (list processes)
O(n)
Understanding Time Complexity

When we use the ps command, it lists all running processes on the system. Understanding how its execution time grows helps us know how it behaves as more processes run.

We want to find out how the time to list processes changes when the number of processes increases.

Scenario Under Consideration

Analyze the time complexity of this command:

ps -e

This command lists every process currently running on the system.

Identify Repeating Operations

Look at what repeats as the command runs:

  • Primary operation: Reading and displaying each process's information.
  • How many times: Once for each process running on the system.
How Execution Grows With Input

As the number of processes grows, the command takes longer because it must handle more data.

Input Size (n)Approx. Operations
10About 10 process reads and displays
100About 100 process reads and displays
1000About 1000 process reads and displays

Pattern observation: The work grows directly with the number of processes; double the processes, double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to run ps -e grows linearly with the number of processes running.

Common Mistake

[X] Wrong: "The ps command runs instantly no matter how many processes there are."

[OK] Correct: The command must read each process's info, so more processes mean more work and longer time.

Interview Connect

Knowing how commands like ps scale helps you understand system behavior and performance. This skill shows you can think about how tools work under the hood, which is valuable in many tech roles.

Self-Check

What if we added options to ps that filter processes before listing? How would that affect the time complexity?

Practice

(1/5)
1. What does the ps command do in Linux?
easy
A. It shows the disk usage of files and folders.
B. It lists the currently running processes on the system.
C. It displays the network connections.
D. It updates the system software.

Solution

  1. Step 1: Understand the purpose of ps

    The ps command is used to show processes running on the system.
  2. Step 2: Compare with other options

    Disk usage is handled by du, network connections by netstat or ss, and software updates by apt or yum.
  3. Final Answer:

    It lists the currently running processes on the system. -> Option B
  4. Quick Check:

    ps shows running processes [OK]
Hint: Remember: ps = process status, shows running programs [OK]
Common Mistakes:
  • Confusing ps with disk or network commands
  • Thinking ps updates software
  • Assuming ps shows file sizes
2. Which of the following is the correct syntax to list all processes with full details using ps?
easy
A. ps -l
B. ps -xv
C. ps auxf
D. ps -ef

Solution

  1. Step 1: Identify the common option for full details

    The -ef option with ps lists all processes with full details.
  2. Step 2: Check other options

    ps -xv is an invalid combination, ps auxf displays a tree view rather than a plain list, and ps -l shows limited info for current processes.
  3. Final Answer:

    ps -ef -> Option D
  4. Quick Check:

    ps -ef shows all processes fully [OK]
Hint: Use ps -ef for full process list [OK]
Common Mistakes:
  • Using ps -xv which is invalid
  • Confusing ps auxf as a single option
  • Using ps -l which shows limited info
3. What will be the output of the command ps -e | grep sshd if the sshd process is running?
medium
A. It will show the sshd process details in the list.
B. It will show an error because grep cannot be used with ps.
C. It will show all processes except sshd.
D. It will show nothing because sshd is filtered out.

Solution

  1. Step 1: Understand ps -e and pipe to grep

    ps -e lists all processes; piping to grep sshd filters lines containing 'sshd'.
  2. Step 2: Interpret the output if sshd is running

    If sshd is running, its process line will appear in the output.
  3. Final Answer:

    It will show the sshd process details in the list. -> Option A
  4. Quick Check:

    ps -e | grep sshd shows sshd if running [OK]
Hint: Pipe ps output to grep to find specific processes [OK]
Common Mistakes:
  • Thinking grep causes error with ps
  • Assuming grep excludes matching lines
  • Believing sshd won't appear if running
4. You run ps -ef | grep but get an error. What is the likely cause?
medium
A. You forgot to provide a search pattern after grep.
B. The ps command does not support pipes.
C. The -ef option is invalid for ps.
D. grep cannot be used with ps output.

Solution

  1. Step 1: Analyze the command structure

    ps -ef outputs all processes; piping to grep requires a pattern to search.
  2. Step 2: Identify the error cause

    Without a pattern, grep throws an error because it expects a search term.
  3. Final Answer:

    You forgot to provide a search pattern after grep. -> Option A
  4. Quick Check:

    grep needs a pattern after it [OK]
Hint: Always give grep a pattern to avoid errors [OK]
Common Mistakes:
  • Thinking ps can't pipe output
  • Believing -ef is invalid
  • Assuming grep works without a pattern
5. You want to list all processes owned by user 'alice' with detailed info. Which command should you use?
hard
A. ps aux | grep alice
B. ps -ef | grep alice
C. ps -u alice -f
D. ps -U alice

Solution

  1. Step 1: Understand options for user filtering

    ps -u alice lists processes for user alice; -f adds full details.
  2. Step 2: Compare other options

    Using ps -ef | grep alice or ps aux | grep alice relies on grep which may match username in other fields, not just owner. ps -U alice lists processes by real user ID but lacks full details.
  3. Final Answer:

    ps -u alice -f -> Option C
  4. Quick Check:

    ps -u alice -f lists alice's processes fully [OK]
Hint: Use ps -u username -f for detailed user processes [OK]
Common Mistakes:
  • Using grep which may show unrelated lines
  • Using -U without details
  • Confusing -u and -U options
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