Bash / Terminal-Befehle
Wesentliche Befehle für Navigation, Dateien, Suche, Berechtigungen, Prozesse, Netzwerk und Archive
Navigation
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
ls
|
-la, -lh, -R |
ls -la /etc |
Dateiliste | Verzeichnisinhalt anzeigen; -l langes Format, -a versteckte Dateien, -h menschenlesbare Größen |
cd
|
-, ~, .. |
cd ~/projects |
Verz. wechseln | Verzeichnis wechseln; cd - geht zurück, cd ~ geht ins Home-Verzeichnis |
pwd
|
|
pwd |
/home/user | Aktuelles Arbeitsverzeichnis anzeigen (vollständiger Pfad) |
tree
|
-L n, -a |
tree -L 2 |
Baumansicht | Verzeichnisbaum anzeigen; -L begrenzt Tiefe (ggf. Installation nötig) |
find
|
-name -type -mtime |
find . -name '*.log' |
Dateipfade | Dateien/Verzeichnisse nach Kriterien suchen |
locate
|
-i |
locate nginx.conf |
Dateipfade | Schnelle Dateisuche per Datenbankindex; vorher updatedb ausführen |
Dateioperationen
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
cp
|
-r, -i, -u |
cp -r src/ dst/ |
Datei kopiert | Dateien kopieren; -r für Verzeichnisse, -i fragt vor dem Überschreiben |
mv
|
-i, -n |
mv old.txt new.txt |
verschoben/umbenannt | Dateien verschieben oder umbenennen; -i fragt vor dem Überschreiben |
rm
|
-r, -f, -i |
rm -rf dist/ |
gelöscht | Dateien/Verzeichnisse entfernen; -r rekursiv, -f erzwingen — mit Vorsicht verwenden |
mkdir
|
-p |
mkdir -p a/b/c |
neues Verz. | Verzeichnis erstellen; -p legt übergeordnete Verzeichnisse bei Bedarf an |
touch
|
|
touch index.html |
leere Datei | Leere Datei erstellen oder Zeitstempel einer Datei aktualisieren |
ln
|
-s |
ln -s /etc/nginx nginx |
symlink | Hardlink erstellen; -s für symbolischen Link (symlink) |
Dateien Anzeigen
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
cat
|
-n, -A |
cat -n file.txt |
Dateiinhalt | Datei ausgeben; -n fügt Zeilennummern hinzu, -A zeigt nicht druckbare Zeichen |
head
|
-n N |
head -n 20 log.txt |
erste N Zeilen | Erste Zeilen einer Datei anzeigen (Standard: 10) |
tail
|
-n N, -f |
tail -f app.log |
letzte N Zeilen | Letzte Zeilen anzeigen; -f verfolgt neue Inhalte in Echtzeit |
less
|
/search, q |
less large.log |
seitenweise Anzeige | Datei seitenweise durchblättern; / zum Suchen, q zum Beenden, Leertaste zum Blättern |
wc
|
-l, -w, -c |
wc -l file.txt |
Anzahl | Zählen; -l Zeilen, -w Wörter, -c Bytes/Zeichen |
Suchen & Textverarbeitung
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
grep
|
-r -i -n -v -E |
grep -rn 'error' logs/ |
Treffer-Zeilen | Textmuster suchen; -r rekursiv, -i Groß-/Kleinschreibung ignorieren, -n Zeilennummern |
grep -v
|
|
grep -v 'debug' app.log |
nicht passende Zeilen | Invertierte Suche — Zeilen anzeigen, die das Muster NICHT enthalten |
grep -E
|
|
grep -E 'warn|error' log |
Treffer-Zeilen | Erweitertes regex — | für ODER verwenden, + für ein oder mehrere Vorkommen |
awk
|
'{print $N}' |
awk '{print $1}' f |
Spaltenwert | Muster-Aktion-Textverarbeitung; $1 erstes Feld, $NF letztes Feld |
sed
|
-i 's/a/b/g' |
sed -i 's/foo/bar/g' f |
geänderter Text | Stream-Editor; s/suchen/ersetzen/g ersetzt global |
sort
|
-n -r -k N |
sort -n numbers.txt |
sortierte Ausgabe | Zeilen sortieren; -n numerisch, -r umgekehrt, -k nach Spalte N sortieren |
uniq
|
-c, -d |
sort f | uniq -c |
eindeutige Zeilen | Doppelte aufeinanderfolgende Zeilen entfernen; üblicherweise nach sort per Pipe genutzt |
Berechtigungen
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
chmod
|
755, 644, +x |
chmod +x script.sh |
Rechte geändert | Dateiberechtigungen ändern; 755=rwxr-xr-x, 644=rw-r--r-- |
chown
|
-R user:group |
chown -R www-data:www-data /var/www |
Eigentümer geändert | Dateibesitzer und Gruppe ändern; -R rekursiv |
ls -la
|
|
ls -la /var/www |
Rechte-Auflistung | Berechtigungen, Eigentümer, Gruppe und Größe aller Dateien anzeigen |
umask
|
022, 027 |
umask 022 |
Standard-Rechte | Standard-Berechtigungsmaske für neue Dateien setzen (022 → 644 für Dateien) |
sudo
|
-u user |
sudo systemctl restart nginx |
erhöhter Befehl | Befehl als Superuser ausführen; -u führt als anderer Benutzer aus |
Prozessverwaltung
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
ps
|
aux, -ef |
ps aux | grep nginx |
Prozessliste | Prozesse auflisten; aux=alle Benutzer, -ef=vollständiges Format |
top
|
q, k, M |
top |
Live-Ansicht | Interaktiver Prozessmonitor; q beenden, k beenden, M nach Speicher sortieren |
htop
|
F3, F9 |
htop |
Live-Ansicht | Erweitertes top mit Farben; F3 suchen, F9 beenden (ggf. Installation nötig) |
kill
|
-9, -15 |
kill -9 1234 |
Signal gesendet | Signal an PID senden; -15 SIGTERM (geordnet), -9 SIGKILL (erzwungen) |
killall
|
-9, -u |
killall node |
Signal gesendet | Alle Prozesse mit dem angegebenen Namen beenden |
jobs
|
-l |
jobs -l |
Jobliste | Hintergrund- und gestoppte Jobs der aktuellen Shell auflisten |
bg / fg
|
%N |
fg %1 |
fortgesetzt | bg schickt Job in den Hintergrund, fg holt ihn in den Vordergrund |
Netzwerk
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
curl
|
-o -L -X -H -d |
curl -O https://example.com/f |
Antwort | Daten über HTTP/FTP übertragen; -L Weiterleitungen folgen, -o in Datei speichern |
wget
|
-O -r -q |
wget -q https://example.com |
gespeicherte Datei | Dateien herunterladen; -O Ausgabe umbenennen, -r rekursiv, -q ruhig |
ping
|
-c N |
ping -c 4 google.com |
RTT ms | Netzwerkverbindung testen; -c begrenzt die Paketanzahl |
ssh
|
-i -p -L |
ssh user@host -p 2222 |
Shell | Sichere Shell; -i Schlüsseldatei, -p Port, -L lokale Port-Weiterleitung |
scp
|
-r -P -i |
scp file user@host:~/ |
kopiert | Sicheres Kopieren über SSH; -r rekursiv, -P Port (Großbuchstabe) |
netstat
|
-tuln |
netstat -tuln |
Portliste | Netzwerkverbindungen anzeigen; -t TCP, -u UDP, -l lauschend, -n numerisch |
ss
|
-tuln |
ss -tuln |
Portliste | Moderner Ersatz für netstat; schneller und detaillierter |
Archive & Komprimierung
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
tar -czf
|
-czf out.tar.gz |
tar -czf arc.tar.gz dir/ |
Archiv | Komprimiertes gzip-Tarball erstellen; c=erstellen, z=gzip, f=Dateiname |
tar -xzf
|
-xzf file.tar.gz |
tar -xzf arc.tar.gz -C /tmp |
entpackt | gzip-Tarball entpacken; x=entpacken, -C Zielverzeichnis |
tar -tf
|
|
tar -tf archive.tar.gz |
Dateiliste | Inhalt eines Tarballs auflisten ohne zu entpacken |
zip
|
-r, -9 |
zip -r out.zip dir/ |
Zip-Datei | Zip-Archiv erstellen; -r rekursiv, -9 maximale Komprimierung |
unzip
|
-d, -l |
unzip archive.zip -d out/ |
entpackt | Zip entpacken; -d Zielverzeichnis, -l Inhalt auflisten ohne zu entpacken |
gzip / gunzip
|
-k, -d |
gzip -k file.txt |
komprimiert | Einzelne Datei gzip-komprimieren; -k Original behalten, gunzip zum Dekomprimieren |
Umgebung & Shell
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
env
|
|
env | grep PATH |
var=wert | Alle Umgebungsvariablen ausgeben; per Pipe mit grep filtern |
export
|
|
export NODE_ENV=production |
Variable gesetzt | Umgebungsvariable für die aktuelle Sitzung und Kindprozesse setzen |
echo $VAR
|
|
echo $HOME |
Wert | Variablenwert ausgeben; ${VAR} zur Abgrenzung in Zeichenketten verwenden |
which
|
|
which node |
Pfad | Vollständigen Pfad der ausführbaren Datei eines Befehls anzeigen |
alias
|
|
alias ll='ls -la' |
Kurzbefehl | Befehlskürzel erstellen; in ~/.bashrc eintragen für dauerhafte Nutzung |
source
|
|
source ~/.bashrc |
neu geladen | Datei im aktuellen Shell-Kontext ausführen (auch: . ~/.bashrc) |
history
|
!N, !! |
history | tail -20 |
Befehlsliste | Befehlshistorie anzeigen; !! wiederholt letzten, !N führt den N-ten Befehl aus |
Git Kurzreferenz
| Befehl | Optionen | Beispiel | Ausgabe | Beschreibung |
|---|---|---|---|---|
git init
|
|
git init my-project |
Repository erstellt | Neues Git-Repository im Verzeichnis initialisieren |
git clone
|
--depth 1 |
git clone url |
Repository geklont | Remote-Repository klonen; --depth 1 für flachen Klon |
git status
|
-s |
git status -s |
Änderungen | Status des Arbeitsverzeichnisses anzeigen; -s Kurzformat |
git add
|
-A, -p |
git add -p |
gestaged | Änderungen stagen; -A alle, -p interaktiver Patch-Modus |
git commit
|
-m, --amend |
git commit -m 'msg' |
committet | Gestagte Änderungen committen; --amend letzten Commit ändern |
git push
|
-u origin |
git push -u origin main |
gepusht | Zum Remote pushen; -u setzt den Upstream-Tracking-Branch |
git pull
|
--rebase |
git pull --rebase |
synchronisiert | Remote-Änderungen holen und integrieren; --rebase statt Merge |
git log
|
--oneline --graph |
git log --oneline -10 |
Verlauf | Commit-Verlauf anzeigen; --oneline kompakt, --graph visueller Branch |
git stash
|
pop, list |
git stash pop |
wiederhergestellt | Nicht committete Arbeit vorübergehend speichern; pop zum Wiederherstellen |
git diff
|
--staged |
git diff --staged |
Diff | Änderungen anzeigen; --staged zeigt gestagte, aber noch nicht committete Änderungen |