Redirecting Input and Output

πŸ“š Hoofdstuk 4.2: Input en Output Omleiden (Redirection in Linux)

──────────────────────────────
πŸ› οΈ Inleiding:
──────────────────────────────
In Linux kun je de uitvoer (STDOUT) en fouten (STDERR) van commando's omleiden naar bestanden of andere commando’s.

Je werkt met:
β€’ Bestandsdescriptoren: 0 (STDIN), 1 (STDOUT), 2 (STDERR)
β€’ Omleidingssymbolen: >, >>, 2>, &>
β€’ Pipes (|) en dynamische uitvoer ($( ))

──────────────────────────────
πŸ“‘ Bestandsdescriptoren:
──────────────────────────────
Descriptor | Naam | Betekenis
-----------|----------|-----------------------------------
0 | STDIN | Standaard invoer (toetsenbord)
1 | STDOUT | Standaard uitvoer (terminal)
2 | STDERR | Fouten (foutmeldingen)

βœ” Voorbeeld: STDOUT gaat standaard naar `/dev/tty` (de terminal)

──────────────────────────────
πŸ” Omleidingsoperators:
──────────────────────────────
Operator | Omschrijving
---------|-----------------------------------------------
> | STDOUT β†’ bestand (overschrijft)
>> | STDOUT β†’ bestand (voegt toe)
2> | STDERR β†’ bestand (overschrijft)
2>> | STDERR β†’ bestand (voegt toe)
&> | STDOUT + STDERR β†’ bestand (overschrijft)
&>> | STDOUT + STDERR β†’ bestand (voegt toe)

βœ” Voorbeelden:
ls /bin > output.txt
ls /bin 2> errors.txt
ls /bin &> output_and_errors.txt

──────────────────────────────
πŸ”— Piping met |
──────────────────────────────
Gebruik `|` om STDOUT van een commando door te sturen naar STDIN van een ander commando.

βœ” Voorbeeld:
grep "/bin/bash$" /etc/passwd | wc -l
β–Ά Tel regels met gebruikers die `/bin/bash` als shell hebben.

──────────────────────────────
πŸ“¨ Here Documents (<<):
──────────────────────────────
Stuur meerdere regels als input naar een commando.

βœ” Voorbeeld:
sort << EOF
banana
apple
cherry
EOF

β–Ά Output:
apple
banana
cherry

──────────────────────────────
πŸ”„ Dynamisch Combineren van Commando's:
──────────────────────────────

πŸ”Ή Methode 1: xargs
Gebruik output als argumenten voor een ander commando.

βœ” Voorbeeld:
find tmp -size 0 | xargs -p /usr/bin/rm
β–Ά Verwijdert lege bestanden in tmp/, met bevestiging.

πŸ”Ή Methode 2: $( )
Gebruik de uitvoer van een commando als input.

βœ” Voorbeeld:
ls $(find tmp -size 0)

πŸ”Ή Methode 3: Backticks (` `)
Oudere notatie voor commando-substitutie.

βœ” Voorbeeld:
ls `find tmp -size 0`

πŸ’‘ Tip: Gebruik liever `$( )` dan backticks – het is duidelijker.

──────────────────────────────