Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Aliase, Pipes, Weiterleitungen und Verkettungen

1 Aliase

Ein Alias ist ein benutzerdefinierter Kurzbefehl. Er ersetzt längere und/oder häufig genutzt Terminal befehle durch ein Kürzel.

1.1 Typische Aliase (Beispiele)

alias ll="ls -lah"
alias la="ls -A"
alias gs="git status"
alias gp="git pull"
alias v="nvim"
alias ..="cd .."
alias ...="cd ../.."

Es sind auch dynamische Aliase möglich:

alias now='date "+%Y-%m-%d %H:%M:%S"'
alias weather='curl wttr.in'

1.2 Dauerhafte Speicherung von Aliasen

Damit die Aliase bei jedem Start verfügbar sind, müssen sie in die ~/.zshrc eingefügt werden (siehe auch Abschnitt “Die .zshrc-Datei”).

Öffnen von ~/.zshrc:

nano ~/.zshrc

Anschließend zum Beispiel:

# Eigene Aliase
alias editrc="nano ~/.zshrc"
alias reloadrc="source ~/.zshrc"
alias openfl="open -a ForkLift ."

Neuladen:

source ~/.zshrc

2 Pipes (|) – Kombination von Kommandos

Mit dem Pipe-Zeichen (|) wird die Ausgabe eines Befehls als Eingabe für den nächsten Befehl weitergeleitet. Auf diese Weise kann man kleine Werkzeuge zu sehr mächtigen Befehlen kombinieren.

2.1 Beispiele

Alle Dateien auflisten und nach Dateiendung .txt filtern:

ls | grep txt
  • ls: listet alle Dateien und Ordner im aktuellen Verzeichnis auf
  • grep txt: filtert die Ausgabe und zeigt nur Zeilen an, die „txt“ enthalten (d. h. .txt-Dateien)

Prozesse anzeigen, die “Safari” enthalten:

ps aux | grep Safari
  • ps aux: zeigt alle laufenden Prozesse im System mit Benutzer, PID, CPU- und Speicherverbrauch
  • grep Safari: filtert die Prozessliste und zeigt nur Zeilen, in denen “Safari” vorkommt

Zählen, wie viele Zeilen im Log das Wort “ERROR” enthalten:

cat access.log | grep "ERROR" | wc -l
  • cat access.log: gibt den gesamten Inhalt der Datei access.log aus
  • grep "ERROR": filtert alle Zeilen, die das Wort „ERROR“ enthalten
  • wc -l: zählt die Anzahl der Zeilen der gefilterten Ausgabe (d. h. die Anzahl der Fehlermeldungen)

Pipes können beliebig verkettet werden. Somit sind sie in Kombination mit grep, awk, sed, sort, uniq, cut usw. sehr mächtig.

2.2 Relevante Befehle für Pipes

BefehlBeschreibungBeispiel
grepFiltert Zeilen nach Textmustern; unterstützt reguläre Ausdrückedmesg | grep error
awkVerarbeitet Textzeilen spaltenweise, ermöglicht Filter, Formatierungen und erlaubt Berechnungenls -l | awk '{print $9, $5}'
sedStream-Editor zum Ersetzen und Bearbeiten von Text innerhalb eines Datenstromscat file.txt | sed 's/foo/bar/g'
sortSortiert Zeilen alphabetisch oder numerisch.cat names.txt | sort
uniqEntfernt doppelte Zeilen (oft nach sort verwendet)sort file.txt | uniq
cutSchneidet Spalten aus Textzeilen heraus (z. B. bei CSV-Dateien).cat users.csv | cut -d',' -f1

2.2.1 grep

Durchsucht Textzeilen nach Mustern oder Wörtern. Unterstützt reguläre Ausdrücke.

Syntax:

grep [Optionen] Muster [Datei(en)]

Häufige Optionen:

  • -i: Groß-/Kleinschreibung ignorieren
  • -r: rekursiv durchsuchen
  • -n: Zeilennummern anzeigen

Beispiele:

grep "error" /var/log/system.log
ps aux | grep Safari

Siehe auch grep-Beispiele.

2.2.2 awk

Zeilen- und spaltenorientierter Textprozessor, ideal für Auswertungen oder Filterung.

Syntax:

awk '{Aktion}' [Datei]

Beispiele:

ls -l | awk '{print $9, $5}'      # Dateiname + Größe
df -h | awk '{print $1, $5}'      # Laufwerk + Auslastung

2.2.3 sed

Stream-Editor zum automatischen Bearbeiten von Texten in Datenströmen.

Syntax:

sed 's/ALT/NEU/g' [Datei]

Häufige Optionen:

  • -i: Änderungen direkt in der Datei speichern
  • -n: unterdrückt Standardausgabe

Beispiele:

cat config.txt | sed 's/enabled=false/enabled=true/g'
sed -i '' 's/http:/https:/g' urls.txt

2.2.4 sort

Sortiert Zeilen alphabetisch oder numerisch.

Syntax:

sort [Optionen] [Datei]

Syntax:

  • -n: numerisch sortieren
  • -r: Reihenfolge umkehren

Beispiele:

cat names.txt | sort
ls -l | sort -k5 -n

2.2.5 uniq

Entfernt aufeinanderfolgende Duplikate aus sortierten Listen.

Syntax:

uniq [Optionen] [Datei]

Häufige Optionen:

  • -c: zählt Vorkommen
  • -d: zeigt nur doppelte Einträge

Beispiele:

sort names.txt | uniq
sort names.txt | uniq -c

2.2.6 cut

Extrahiert Spalten aus Textzeilen – besonders nützlich bei CSV-Dateien.

Syntax:

cut -d[Trennzeichen] -f[Feldnummer] [Datei]

Häufige Optionen:

  • -d: legt das Trennzeichen fest (z. B. , oder :)
  • -f: bestimmt die Spaltennummer(n)

Beispiele:

cat users.csv | cut -d',' -f1     # erste Spalte (Name)
ps aux | cut -c1-10               # Zeichen 1–10 jeder Zeile

3 Weiterleitungen (>, >>, <)

Weiterleitungen bestimmen, wohin die Eingaben oder Ausgaben eines Befehls gehen.

3.1 Arten von Weiterleitungen

SymbolBedeutungBeispiel
>Ausgabe in Datei schreiben (überschreibt)ls > dateien.txt
>>Ausgabe anhängenecho "neuer Eintrag" >> log.txt
<Eingabe aus Datei lesensort < unsortiert.txt
2>Fehlermeldungen in Datei schreibenls xyz 2> fehler.txt
&>Ausgabe und Fehler umleitenscript.sh &> output.txt

3.2 Beispiele

Die Namen aller JPEG-Dateien in eine Textdatei schreiben:

find . -name "*.jpg" > bilder.txt

Gefundene Warnungen aus einem Log an eine Textdatei anhängen:

grep "WARN" log.txt >> warnungen.txt

Aus input.txt lesen und in output.txt schreiben:

cat < input.txt > output.txt

Stumme Ausführung eines Befehls (keine Ausgabe, d. h. keine sichtbare Fehlermeldung):

befehl &> /dev/null

4 Verkettung von Befehlen – AND (&&) und OR (||)

mkdir ordner123 && cd ordner123  # Ordner erstellen und hineinwechseln
cd ordner123 || mkdir ordner123  # In Ordner wechseln oder erstellen, wenn er nicht existiert