GitHub

Labs / interactive explorer

Shell Trace

A command line hides a small process graph. Step through a sample pipeline and watch arguments, descriptors, and terminal ownership take shape.

A guided simulation inspired by myShell. The sample commands are not executed, and no local files are accessed.

Sample command

Two processes share one pipe. sort waits for end-of-file before emitting sorted lines.

1 / 5 · Parse

Parse

Separate the unquoted pipeline operators and build each command's arguments. No process has started yet.

TERMINAL OWNER
Shell group 4100
JOB STATE
Preparing
EXIT STATUS
Pending

Commands and processes

STAGE 1 · NOT STARTED

cat

[
  "cat",
  "file.txt"
]
stdin
Not wired
stdout
Not wired
process group
Not assigned

STAGE 2 · NOT STARTED

sort

[
  "sort"
]
stdin
Not wired
stdout
Not wired
process group
Not assigned

Pipe connections

  • cat → pipe 1 → sort

    Not allocated

Simulated terminal
shell$ cat file.txt | sort

[parse]

Sample file.txt contains pear, apple, and banana on separate lines. Process IDs, descriptors, and output are illustrative; this explorer does not run a shell.