Quick reference × 0 · stdin Standard input1 · stdout Standard output2 · stderr Standard error
zsh on macOS zsh, the default shell on macOS, has MULTIOS on: a redirect adds a destination instead of replacing the pipe or an earlier redirect, and zsh copies the data to each, like tee. So cmd > out | grep x sends output to both, and cmd 2>&1 >/dev/null | grep x gives grep stdout and stderr. Process substitutions are /dev/fd/11 and up; one used as an argument gets the shell’s own descriptors. A line of only redirects runs cat (or more for input), and # does not start a comment at the prompt.
The BSD tools differ from GNU ones: options stop at the first file name, and many treat - as a file called “-”, not stdin.
Connections and usage
A solid line shows a connection, not observed data flow. A grey dashed line means a connected descriptor is not used by the command. Hollow ports are unused; dotted ports have unknown usage. Closed descriptors are labelled separately.
“May read”, “may write”, and “on error” describe possible use, not guaranteed traffic. “No writes” is a static prediction, not a measured byte count. Commands in a pipeline run concurrently; the foreground shell waits for all of them to finish.
Usage hints cover every commands , including all of GNU coreutils, plus grep, sed, awk, find, curl and other common tools. the BSD and Apple versions that ship with macOS 15, plus Mac tools such as pbcopy, pbpaste and say. They read common options and file arguments, and assume no aliases or replacement functions. Anything else, such as an unrecognised option or a script they cannot see, shows as usage unknown.
This is a static map of simple Bash-style pipelines, alone or joined by &&, || and ;. It does not inspect files or expand variables. Background jobs (&), control structures, command substitutions, and here-documents are outside its scope.
Read the Bash redirection guide ↗