├── .gitignore ├── LICENSE ├── README.md └── gifs ├── bash-file-reader-2.gif ├── bash-file-reader.gif ├── bash-ps-p.gif ├── bash-script-ls-process-substitution.gif ├── bash-script-pipefail-errexit-option.gif ├── bash-script-pipefail-option.gif ├── bash-script-pipeline-fail.gif ├── bash-script-stdin-file-reader.gif ├── bash-stdin-reader.gif ├── cat-process-substitution-date.gif ├── cat-stdin-write.gif ├── cat-tee-process-substitution.gif ├── cat-with-stdin-between-files.gif ├── command-group-stdout-file.gif ├── command-group-stdout-pipe.gif ├── diff-two-commands.gif ├── echo-and-notify-in-background.gif ├── echo-pipe-read-command.gif ├── echo-proc-self-fd-0.gif ├── echo-proc-self-fd-1.gif ├── echo-proc-self-fd-2.gif ├── echo-process-substitution-date.gif ├── echo-read-process-substitution.gif ├── echo-redirect-stdout-to-stderr-in-front.gif ├── echo-redirect-stdout-to-stderr-shorthand.gif ├── echo-redirect-stdout-to-stderr.gif ├── echo-stdin-file.gif ├── echo-to-tty.gif ├── echo-write-stderr-fd.gif ├── echo-write-stdout-error.gif ├── echo-write-stdout.gif ├── exec-close-file-descriptor.gif ├── group-commands-with-or.gif ├── jobs-command.gif ├── jobs-fg.gif ├── less-stdin.gif ├── ls-append-stdout.gif ├── ls-cat-list.gif ├── ls-dev-fd.gif ├── ls-dev-std.gif ├── ls-error-stderr.gif ├── ls-error-stdout.gif ├── ls-no-error-stderr.gif ├── ls-pipe-grep-trim.gif ├── ls-pipe-grep.gif ├── ls-stderr-to-stdout-append.gif ├── ls-stderr-to-stdout-before-redirect.gif ├── ls-stderr-to-stdout-shorthand.gif ├── ls-stdout-to-stderr-append.gif ├── ls-tee-cat-process-substitution-stderr.gif ├── ls-tee-cat-process-substitution.gif ├── ls-write-stderr.gif ├── ls-write-stdout.gif ├── mkfifo-echo-cat.gif ├── mkfifo-exec-stdin-echo.gif ├── mkfifo-exec-stdin-file-descriptor-echo.gif ├── mouse-move-webcam-picture.gif ├── multiple-commands-redirect-output.gif ├── multiple-commands-stdout-write.gif ├── pipe-tty-to-tcp-using-netcat.gif ├── pipe-tty-to-tcp.gif ├── proc-psid-fd.gif ├── proc-self-fd.gif ├── read-command.gif ├── read-pipe-into-variable.gif ├── record-ssh-session.gif ├── sleep-and-notify.gif ├── split-pipe.gif ├── stream-directory-contents.gif ├── stream-mp3.gif ├── subshell-command-group-stdout-pipe.gif ├── subshell-environment-variable.gif ├── test-exit-0-and-echo.gif ├── test-exit-0-or-echo.gif ├── test-exit-1-and-echo.gif ├── test-exit-1-or-echo.gif ├── tty-command.gif ├── tty-output-to-tty-using-script.gif ├── tty-output-to-tty.gif └── youtube-dl-pipe-to-mpv.gif /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/README.md -------------------------------------------------------------------------------- /gifs/bash-file-reader-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-file-reader-2.gif -------------------------------------------------------------------------------- /gifs/bash-file-reader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-file-reader.gif -------------------------------------------------------------------------------- /gifs/bash-ps-p.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-ps-p.gif -------------------------------------------------------------------------------- /gifs/bash-script-ls-process-substitution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-script-ls-process-substitution.gif -------------------------------------------------------------------------------- /gifs/bash-script-pipefail-errexit-option.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-script-pipefail-errexit-option.gif -------------------------------------------------------------------------------- /gifs/bash-script-pipefail-option.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-script-pipefail-option.gif -------------------------------------------------------------------------------- /gifs/bash-script-pipeline-fail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-script-pipeline-fail.gif -------------------------------------------------------------------------------- /gifs/bash-script-stdin-file-reader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-script-stdin-file-reader.gif -------------------------------------------------------------------------------- /gifs/bash-stdin-reader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/bash-stdin-reader.gif -------------------------------------------------------------------------------- /gifs/cat-process-substitution-date.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/cat-process-substitution-date.gif -------------------------------------------------------------------------------- /gifs/cat-stdin-write.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/cat-stdin-write.gif -------------------------------------------------------------------------------- /gifs/cat-tee-process-substitution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/cat-tee-process-substitution.gif -------------------------------------------------------------------------------- /gifs/cat-with-stdin-between-files.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/cat-with-stdin-between-files.gif -------------------------------------------------------------------------------- /gifs/command-group-stdout-file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/command-group-stdout-file.gif -------------------------------------------------------------------------------- /gifs/command-group-stdout-pipe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/command-group-stdout-pipe.gif -------------------------------------------------------------------------------- /gifs/diff-two-commands.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/diff-two-commands.gif -------------------------------------------------------------------------------- /gifs/echo-and-notify-in-background.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-and-notify-in-background.gif -------------------------------------------------------------------------------- /gifs/echo-pipe-read-command.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-pipe-read-command.gif -------------------------------------------------------------------------------- /gifs/echo-proc-self-fd-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-proc-self-fd-0.gif -------------------------------------------------------------------------------- /gifs/echo-proc-self-fd-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-proc-self-fd-1.gif -------------------------------------------------------------------------------- /gifs/echo-proc-self-fd-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-proc-self-fd-2.gif -------------------------------------------------------------------------------- /gifs/echo-process-substitution-date.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-process-substitution-date.gif -------------------------------------------------------------------------------- /gifs/echo-read-process-substitution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-read-process-substitution.gif -------------------------------------------------------------------------------- /gifs/echo-redirect-stdout-to-stderr-in-front.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-redirect-stdout-to-stderr-in-front.gif -------------------------------------------------------------------------------- /gifs/echo-redirect-stdout-to-stderr-shorthand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-redirect-stdout-to-stderr-shorthand.gif -------------------------------------------------------------------------------- /gifs/echo-redirect-stdout-to-stderr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-redirect-stdout-to-stderr.gif -------------------------------------------------------------------------------- /gifs/echo-stdin-file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-stdin-file.gif -------------------------------------------------------------------------------- /gifs/echo-to-tty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-to-tty.gif -------------------------------------------------------------------------------- /gifs/echo-write-stderr-fd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-write-stderr-fd.gif -------------------------------------------------------------------------------- /gifs/echo-write-stdout-error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-write-stdout-error.gif -------------------------------------------------------------------------------- /gifs/echo-write-stdout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/echo-write-stdout.gif -------------------------------------------------------------------------------- /gifs/exec-close-file-descriptor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/exec-close-file-descriptor.gif -------------------------------------------------------------------------------- /gifs/group-commands-with-or.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/group-commands-with-or.gif -------------------------------------------------------------------------------- /gifs/jobs-command.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/jobs-command.gif -------------------------------------------------------------------------------- /gifs/jobs-fg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/jobs-fg.gif -------------------------------------------------------------------------------- /gifs/less-stdin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/less-stdin.gif -------------------------------------------------------------------------------- /gifs/ls-append-stdout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-append-stdout.gif -------------------------------------------------------------------------------- /gifs/ls-cat-list.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-cat-list.gif -------------------------------------------------------------------------------- /gifs/ls-dev-fd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-dev-fd.gif -------------------------------------------------------------------------------- /gifs/ls-dev-std.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-dev-std.gif -------------------------------------------------------------------------------- /gifs/ls-error-stderr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-error-stderr.gif -------------------------------------------------------------------------------- /gifs/ls-error-stdout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-error-stdout.gif -------------------------------------------------------------------------------- /gifs/ls-no-error-stderr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-no-error-stderr.gif -------------------------------------------------------------------------------- /gifs/ls-pipe-grep-trim.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-pipe-grep-trim.gif -------------------------------------------------------------------------------- /gifs/ls-pipe-grep.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-pipe-grep.gif -------------------------------------------------------------------------------- /gifs/ls-stderr-to-stdout-append.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-stderr-to-stdout-append.gif -------------------------------------------------------------------------------- /gifs/ls-stderr-to-stdout-before-redirect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-stderr-to-stdout-before-redirect.gif -------------------------------------------------------------------------------- /gifs/ls-stderr-to-stdout-shorthand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-stderr-to-stdout-shorthand.gif -------------------------------------------------------------------------------- /gifs/ls-stdout-to-stderr-append.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-stdout-to-stderr-append.gif -------------------------------------------------------------------------------- /gifs/ls-tee-cat-process-substitution-stderr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-tee-cat-process-substitution-stderr.gif -------------------------------------------------------------------------------- /gifs/ls-tee-cat-process-substitution.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-tee-cat-process-substitution.gif -------------------------------------------------------------------------------- /gifs/ls-write-stderr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-write-stderr.gif -------------------------------------------------------------------------------- /gifs/ls-write-stdout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/ls-write-stdout.gif -------------------------------------------------------------------------------- /gifs/mkfifo-echo-cat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/mkfifo-echo-cat.gif -------------------------------------------------------------------------------- /gifs/mkfifo-exec-stdin-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/mkfifo-exec-stdin-echo.gif -------------------------------------------------------------------------------- /gifs/mkfifo-exec-stdin-file-descriptor-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/mkfifo-exec-stdin-file-descriptor-echo.gif -------------------------------------------------------------------------------- /gifs/mouse-move-webcam-picture.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/mouse-move-webcam-picture.gif -------------------------------------------------------------------------------- /gifs/multiple-commands-redirect-output.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/multiple-commands-redirect-output.gif -------------------------------------------------------------------------------- /gifs/multiple-commands-stdout-write.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/multiple-commands-stdout-write.gif -------------------------------------------------------------------------------- /gifs/pipe-tty-to-tcp-using-netcat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/pipe-tty-to-tcp-using-netcat.gif -------------------------------------------------------------------------------- /gifs/pipe-tty-to-tcp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/pipe-tty-to-tcp.gif -------------------------------------------------------------------------------- /gifs/proc-psid-fd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/proc-psid-fd.gif -------------------------------------------------------------------------------- /gifs/proc-self-fd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/proc-self-fd.gif -------------------------------------------------------------------------------- /gifs/read-command.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/read-command.gif -------------------------------------------------------------------------------- /gifs/read-pipe-into-variable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/read-pipe-into-variable.gif -------------------------------------------------------------------------------- /gifs/record-ssh-session.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/record-ssh-session.gif -------------------------------------------------------------------------------- /gifs/sleep-and-notify.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/sleep-and-notify.gif -------------------------------------------------------------------------------- /gifs/split-pipe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/split-pipe.gif -------------------------------------------------------------------------------- /gifs/stream-directory-contents.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/stream-directory-contents.gif -------------------------------------------------------------------------------- /gifs/stream-mp3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/stream-mp3.gif -------------------------------------------------------------------------------- /gifs/subshell-command-group-stdout-pipe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/subshell-command-group-stdout-pipe.gif -------------------------------------------------------------------------------- /gifs/subshell-environment-variable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/subshell-environment-variable.gif -------------------------------------------------------------------------------- /gifs/test-exit-0-and-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/test-exit-0-and-echo.gif -------------------------------------------------------------------------------- /gifs/test-exit-0-or-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/test-exit-0-or-echo.gif -------------------------------------------------------------------------------- /gifs/test-exit-1-and-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/test-exit-1-and-echo.gif -------------------------------------------------------------------------------- /gifs/test-exit-1-or-echo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/test-exit-1-or-echo.gif -------------------------------------------------------------------------------- /gifs/tty-command.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/tty-command.gif -------------------------------------------------------------------------------- /gifs/tty-output-to-tty-using-script.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/tty-output-to-tty-using-script.gif -------------------------------------------------------------------------------- /gifs/tty-output-to-tty.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/tty-output-to-tty.gif -------------------------------------------------------------------------------- /gifs/youtube-dl-pipe-to-mpv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miguelmota/bash-streams-handbook/HEAD/gifs/youtube-dl-pipe-to-mpv.gif --------------------------------------------------------------------------------