π 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.
ββββββββββββββββββββββββββββββ