Inhalt dieses Kapitels
Cheat-Sheet — alle Befehle von Tag 2
DruckbarDiese Tabelle ausdrucken (oder die Seite als PDF speichern) und neben den Bildschirm legen — das ist dein Begleiter für Tag 3 und den Admin-Alltag.
1 · Wildcards & Brace Expansion
| Befehl | Beschreibung | Beispiel |
|---|---|---|
* | beliebig viele Zeichen (auch 0) | ls *.txt |
? | genau ein Zeichen | ls report?.log |
[abc] | eines dieser Zeichen | ls datei[123].txt |
[a-z] | Zeichenbereich | ls log_[0-9].txt |
{a,b,c} | Brace Expansion: jeder dieser Strings | mkdir {src,dst,bak} |
{1..10} | Zahlen-Range | touch file_{01..12}.log |
{2024..2026} | Jahres-Range | mkdir archiv_{2024..2026} |
2 · Redirection & Pipes
| Befehl | Beschreibung | Beispiel |
|---|---|---|
> | stdout in Datei umleiten (überschreibt!) | ls > liste.txt |
>> | stdout anhängen | date >> logbuch.txt |
2> | stderr umleiten | find / -name "x" 2> fehler.log |
&> | stdout + stderr umleiten | cmd &> alles.log |
2>&1 | stderr in stdout umleiten | cmd > out.log 2>&1 |
< datei | stdin aus Datei | sort < unsortiert.txt |
/dev/null | „Mülltonne" — alles wird verworfen | cmd 2> /dev/null |
| | Pipe — stdout zu stdin verketten | ls | grep conf |
tee DATEI | Ausgabe AUF Bildschirm + in Datei | ls | tee liste.txt |
tee -a DATEI | tee mit Anhängen | cmd | tee -a log.txt |
3 · grep — Mustersuche
| Befehl | Beschreibung | Beispiel |
|---|---|---|
grep MUSTER DATEI | Zeilen mit Treffer ausgeben | grep ERROR app.log |
grep -i | Groß-/Kleinschreibung ignorieren | grep -i error app.log |
grep -v | Zeilen OHNE Treffer | grep -v "^#" config.txt |
grep -n | Zeilennummern anzeigen | grep -n WARN log.txt |
grep -r MUSTER DIR | Rekursiv im Verzeichnisbaum | grep -r TODO src/ |
grep -c | Nur Anzahl Treffer | grep -c ERROR log.txt |
grep -E | Extended Regex | grep -E "INFO|ERROR" log.txt |
grep -l | Nur Dateinamen mit Treffer | grep -rl secret /etc |
4 · Archivieren & Komprimieren (tar, gzip)
| Befehl | Beschreibung | Beispiel |
|---|---|---|
tar -cvf ARCHIV QUELLE | Archiv erstellen (uncompressed) | tar -cvf backup.tar /etc |
tar -czvf ARCHIV QUELLE | Archiv erstellen + gzip-komprimiert | tar -czvf backup.tar.gz /etc |
tar -xvf ARCHIV | Archiv entpacken | tar -xvf backup.tar |
tar -xzvf ARCHIV | gzip-Archiv entpacken | tar -xzvf backup.tar.gz |
tar -tvf ARCHIV | Inhalt anzeigen (NICHT entpacken) | tar -tvf backup.tar.gz |
tar -C ZIEL -xzvf ARCHIV | In bestimmtes Verzeichnis entpacken | tar -C /tmp/ -xzvf backup.tar.gz |
tar --exclude='*.log' ... | Bestimmte Muster ausschließen | tar --exclude='*.log' -czvf b.tar.gz dir/ |
gzip DATEI | Datei komprimieren (Original wird ersetzt!) | gzip access.log |
gunzip DATEI.gz | Datei dekomprimieren | gunzip access.log.gz |
gzip -k DATEI | Original behalten | gzip -k access.log |
gzip -9 DATEI | Maximale Komprimierung (langsam) | gzip -9 backup.tar |
tar-Optionenc = create, x = extract, t
= list. z = gzip, j = bzip2,
J = xz. v = verbose (was passiert),
f = file (Dateiname kommt als Nächstes).
Merkspruch: „Christel xagt: tar verfüllt" →
c/x/t · v · f.
5 · Hard- & Soft-Links
| Befehl | Beschreibung | Beispiel |
|---|---|---|
ln ZIEL NAME | Hard-Link erstellen | ln original.txt hardlink.txt |
ln -s ZIEL NAME | Soft-Link (Symlink) erstellen | ln -s /opt/app/v2.3 current |
ln -sfn ZIEL NAME | Symlink umbiegen (überschreibt vorhandenen) | ln -sfn /opt/app/v2.4 current |
readlink NAME | Ziel eines Symlinks anzeigen | readlink current |
readlink -f NAME | Absoluten Pfad auflösen | readlink -f current |
unlink NAME | Link entfernen (sicherer als rm) | unlink current |
6 · Inode-Befehle
| Befehl | Beschreibung | Beispiel |
|---|---|---|
ls -i | Inode-Nummern anzeigen | ls -i datei.txt |
ls -li | Long-Listing + Inode-Nummern | ls -li /etc/ |
stat DATEI | Detail-Infos: Inode, Größe, Rechte, Zeiten | stat /etc/hosts |
df -i | Inode-Belegung des Dateisystems | df -i |
7 · Berechtigungen lesen
Die 10 Zeichen aus ls -l entschlüsseln:
| Zeichen | Bedeutung |
|---|---|
- | Normale Datei |
d | Verzeichnis (directory) |
l | Symlink (link) |
c | Character device |
b | Block device |
p | Named pipe |
s | Socket |
8 · Berechtigungen setzen (symbolisch)
| Symbol | Bedeutung |
|---|---|
u | user (owner) |
g | group |
o | others |
a | all (u+g+o) |
+ | Recht hinzufügen |
- | Recht entziehen |
= | Recht exakt setzen (überschreibt) |
r / w / x | read / write / execute |
| Beispiel | Bedeutung |
|---|---|
chmod u+x script.sh | Owner darf zusätzlich ausführen |
chmod g-w datei.txt | Group verliert Schreibrecht |
chmod o= geheim.txt | Others bekommen GAR NICHTS |
chmod a+r doku.md | Alle dürfen lesen |
chmod u=rw,g=r,o= datei | Komplette Zuweisung |
9 · Berechtigungen setzen (numerisch)
| Wert | Bedeutung |
|---|---|
4 | read (r) |
2 | write (w) |
1 | execute (x) |
0 | nichts |
| Oktal | Symbolisch | Typische Verwendung |
|---|---|---|
400 | r-------- | Nur Owner darf lesen (privat) |
600 | rw------- | Owner darf alles, sonst nichts (Konfig, Keys) |
644 | rw-r--r-- | Standard für Dateien: Owner schreibt, Rest liest |
700 | rwx------ | Owner darf alles, sonst nichts |
750 | rwxr-x--- | Owner alles, Group lesen+ausführen, Rest nichts |
755 | rwxr-xr-x | Standard für Verzeichnisse und Skripte |
775 | rwxrwxr-x | Group darf schreiben (Team-Verzeichnisse) |
777 | rwxrwxrwx | ⚠️ ALLE dürfen ALLES — fast immer falsch! |
10 · Eigentümer & Gruppen
| Befehl | Beschreibung | Beispiel |
|---|---|---|
whoami | aktueller Username | whoami |
groups | Gruppen-Mitgliedschaften | groups |
id | User-ID + Gruppen-IDs | id |
chown USER DATEI | Owner ändern | sudo chown admin datei.txt |
chown USER:GROUP DATEI | Owner + Group gleichzeitig | sudo chown admin:wheel datei.txt |
chown -R USER DIR | Rekursiv (gesamter Baum) | sudo chown -R admin /srv/app |
chgrp GROUP DATEI | Nur Group ändern | sudo chgrp wheel datei.txt |
chgrp -R GROUP DIR | Rekursiv | sudo chgrp -R wheel /srv/team |
11 · Suchen (find, locate, which, whereis)
| Befehl | Beschreibung | Beispiel |
|---|---|---|
find PFAD -name "MUSTER" | Datei nach Name suchen | find /etc -name "*.conf" |
find PFAD -iname "MUSTER" | Case-insensitive | find / -iname "readme*" |
find PFAD -type f | Nur normale Dateien | find /var -type f |
find PFAD -type d | Nur Verzeichnisse | find / -type d -name "log" |
find PFAD -type l | Nur Symlinks | find /usr -type l |
find PFAD -size +100M | Größer als 100 MB | find /var -size +100M |
find PFAD -size -1k | Kleiner als 1 KB | find . -size -1k |
find PFAD -mtime -7 | Geändert in letzten 7 Tagen | find /etc -mtime -7 |
find PFAD -mtime +30 | Älter als 30 Tage | find /tmp -mtime +30 |
find PFAD -user USER | Bestimmter Owner | find /home -user admin |
find PFAD -perm 644 | Bestimmte Berechtigung | find /etc -perm 644 |
find PFAD -perm -o=w | „mindestens"-Match (Others-Write) | find / -perm -o=w |
find ... -exec CMD {} \; | Befehl pro Treffer ausführen | find /tmp -name "*.log" -exec rm {} \; |
find ... -delete | Treffer löschen (gefährlich!) | find /tmp -mtime +30 -delete |
locate MUSTER | Schnell-Suche über Datenbank | locate nginx.conf |
sudo updatedb | locate-Datenbank aktualisieren | sudo updatedb |
which BEFEHL | Pfad eines Befehls | which find |
whereis BEFEHL | Pfad + Manpage + Source | whereis find |
find -deletefind -delete ist destruktiv und nicht
rückholbar. Erste Regel: immer zuerst ohne
-delete ausführen, schauen was getroffen wird,
dann mit -delete wiederholen. Niemals
blind find / -delete tippen.
12 · Goldene Regeln für Tag 2
- chmod 777 ist fast immer falsch. Wenn du glaubst, du brauchst es — du brauchst es nicht. 755 oder 644 reichen in 99 % aller Fälle.
- Vor
find -deleteimmer ohne-deletetesten. Erst sehen, was getroffen wird. Dann löschen. - Wildcards expandiert die Shell, nicht der
Befehl. Wenn
ls *.txtnichts findet, gibt es keine.txt-Dateien — der Befehl sieht den Stern gar nicht. - Hard-Links nur innerhalb desselben Dateisystems. Über Filesystem-Grenzen geht nur Soft-Link.
- Symlinks zeigen auf einen Pfad, nicht auf eine Datei. Wenn das Ziel verschoben wird, zeigt der Link ins Leere. „Dangling symlink."
>überschreibt ohne Warnung. Wenn du anhängen willst:>>. Wenn nicht sicher: erstechoohne Umleitung testen.tar -cfohne-z= nicht komprimiert. Wenn die Datei.tar.gzheißen soll, brauchst du-z. Sonst hast du nur ein unkomprimiertes.tarmit irreführendem Namen.
Ausblick: Was kommt an Tag 3?
VorschauTag 2 war die Werkzeug-Werkstatt. Du kennst jetzt die
Bausteine: Wildcards, Pipes, Archive, Berechtigungen, Links und
find. Tag 3 baut darauf auf — wir gehen ins „echte
Admin-Land":
- Prozesse & Jobs —
ps,top,htop,kill,jobs,fg/bg - Systemd-Services —
systemctl, Services starten/stoppen, Logs mitjournalctl - Benutzer & Gruppen anlegen —
useradd,passwd,groupadd,/etc/passwd,/etc/shadow - Pakete installieren —
dnftiefer, Repositories, Updates, Repo-Pinning - Netzwerk-Grundlagen —
ip,ss, Routing, Hostname, DNS-Auflösung - Bash-Variablen & Command Substitution —
$VAR,$(befehl), einfache Skripte
Spiele 20 Minuten mit den Tag-2-Befehlen. Bau dir eine eigene
Test-Struktur in ~/uebung/ und probiere
chmod, find, tar in
verschiedenen Kombinationen aus. Wer am nächsten Morgen mit
Muskelgedächtnis kommt, hat Tag 3 schon halb gewonnen.
man chmod,man find,man tar— die offiziellen Manpages- explainshell.com — komplexe Shell-Befehle Stück für Stück erklären lassen
- man7.org — alle Linux-Manpages online, hübsch formatiert
- Spiel
findals Schatzsuche: „Find alle Dateien in/etc, die größer als 100 KB sind UND in den letzten 30 Tagen geändert wurden"
Tag 2 — geschafft!
Finale- Du kennst Wildcards und kannst viele Dateien in einem Befehl ansprechen
- Du kannst Ausgaben umleiten und Befehle mit Pipes verketten
- Du suchst Muster mit
grepaus Text und Logs - Du archivierst und komprimierst Daten mit
tarundgzip - Du verstehst Inodes und den Unterschied zwischen Hard- und Soft-Links
- Du liest und setzt Berechtigungen — symbolisch und numerisch
- Du findest jede Datei mit
find— nach Name, Größe, Alter, Owner und Berechtigung
Das ist mehr Linux-Power als die meisten Sysadmins nach einem halben Jahr im Job nutzen. Sei stolz drauf.
Bevor du den Laptop zuklappst: Snapshot deiner VM.
Nenn ihn tag2-abschluss. Falls Tag 3 wild wird, hast du
einen sauberen Stand zum Zurückkehren.
Bis morgen, frischer Linux-Admin. 🐧