Post

Top 10 CLI-Kommandos für Linux und macOS

Top 10 CLI-Kommandos für Linux und macOS

Nachdem ich bereits meine 10 besten CLI Tools vorgestellt habe, möchte ich nicht den Eindruck erwecken, dass alle Kommandos die im OS bereits enthalten sind, nichts taugen.

Stellen wir uns doch kurz vor, wir sitzen vor dem Terminal, jonglieren mit Verzeichnissen, Logs und Skripten und greifen doch immer wieder zu den üblichen Verdächtigen wie ls, cd oder grep und denken uns, da hat doch so ein Typ einen Artikel geschrieben, was ich alles noch installieren muss. Dabei stecken in Linux und macOS auch ohne meinen Artikel bereits viele unterschätzte Kommandos, die bereits vorinstalliert sind und uns das Leben massiv erleichtern können. Diese 10 Kommandos werden deshalb unterschätzt, weil sie nicht sehr bekannt sind, aber in der Praxis wirklich Zeit sparen. Zeit also, diese mal kennenzulernen.

Wichtig: Alles läuft “out-of-the-box” auf macOS und gängigen Linux-Distributionen (Ubuntu, Fedora etc.), keine Paketmanager nötig (ok, mit einer kleinen Ausnahme, aber dazu mehr bei Nummer 4).

1. Darf ich vorstellen, sudo !! – Das “Mist, sudo vergessen!” Kommando

Habt ihr schon mal z.B. ein langes Kommando ohne sudo ausgeführt und musstet danach alles noch mal tippen oder erst umständlich den Cursor bewegen? sudo !! wiederholt den letzten Befehl einfach mit sudo davor.

Beispiel:

1
2
3
4
$ apt update
# Fehlermeldung: Permission denied
$ sudo !!
sudo apt update

Spart mit Sicherheit 5 Sekunden pro Tag, die sich summieren. Funktioniert in Bash und Zsh.

2. Das Dream-Team pushd und popd – Verzeichnis-Stack für Multitasking

Vergesst cd Marathons zwischen Projekten. pushd legt Verzeichnisse auf einen Stack, popd holt sie ab. dirs -v zeigt den Stack an.

Beispiel:

1
2
3
4
5
6
$ pushd ~/projekte/app1
~/projekte/app1 ~
$ pushd ~/projekte/app2
~/projekte/app2 ~/projekte/app1 ~
$ popd
~/projekte/app1 ~

Pro-Tipp:

pushd +2 rotiert den Stack ohne zu wechseln, ideal für parallele Branches.

3. script – Terminal-Session als Datei aufnehmen

Macht ihr vielleicht ein How-to-Video oder eine Dokumentation? script zeichnet eure gesamte Session (Eingaben + Ausgaben) in eine Datei auf.

Beispiel:

1
2
3
4
5
6
$ script session.log
Script started, file is session.log
$ ls -la; echo "Test"
[...]
$ exit
Script done, file is session.log

Perfekt für Support-Tickets oder Blog-Demos, inklusive Timing und Farben.

4. watch – Live-Überwachung von Befehlen

Statt while true; do ... einzutippen, watch führt einen Befehl zyklisch aus und aktualisiert den Screen.

Beispiel:

1
watch -n 2 df -h

Zeigt die Festplatten-Nutzung alle 2 Sekunden. -d hebt dabei Änderungen hervor, super für Log-Tail oder Prozess-Monitoring.

Tip: Auf macOS kann es tatsächlich bei der Standard Variante zu Fehlern kommen. Besser hier die GNU Variante per Homebrew nachinstallieren.

1
brew install watch

5. fold – Text umbrechen ohne Formatverlust

Lange Logs oder Configs sind unlesbar? fold bricht Zeilen bei festgelegter Breite um, ohne Wörter zu zerhacken.

Beispiel:

1
fold -w 40 /var/log/syslog | less

Pipes in Editoren oder für präzise PDF-Exports. Besser als fmt, weil es Leerzeichen respektiert.

6. tee – Ausgabe in Datei UND Terminal

cat datei | grep fehler > log.txt – aber es ist nichts zu sehen? tee teilt den Stream: Ausgabe + Datei.

Beispiel:

1
ps aux | grep python | tee prozesse.log

Ideal für CI/CD-Logs oder Live-Debugging.

7. xargs – Massenverarbeitung aus Pipes

find . -name "*.log" | rm scheitert bei vielen Dateien? xargs baut Argumentlisten.

Beispiel:

1
find . -name "*.tmp" | xargs rm

Powertip:

-I {} für komplexe Loops, z.B. find ... | xargs -I {} mv {} backup/.

8. alias – Permanente Shortcuts (interaktiv)

Nicht persistent, aber sofort: alias ll='ls -la' im Terminal. Für Sessions mit viel Tipparbeit.

Beispiel:

1
2
alias gs='git status'
gs

Tipp: In die Datei .zshrc oder .bashrc geschrieben, spart das Tastenanschläge und macht das permanent (nach einem source .zshrc).

9. envsubst – Variablen in Textdateien ersetzen

Config-Templates? envsubst ersetzt ${VAR} durch Umgebungsvariablen, ganz ohne sed/perl.

Beispiel:

1
2
export DB_HOST=localhost
cat config.tpl | envsubst > config.prod

Gerade für Docker-Compose oder Ansible, sauberer als String-Replace.

10. column – Tabellen aus Flachdateien zaubern

CSV oder Space-separierte Logs? column -t formatiert zu sauberen Tabellen.

Beispiel:

1
2
3
4
cat prozesse.txt | column -t -s $'\t'
PID   USER  CPU%
1234  root  15.2
5678  user  2.1

Macht ps-Ausgaben lesbar, auch ohne Excel.

Meine Top-Empfehlung

Beginnt mit pushd/popd und watch, die ändern euren Workflow sofort. Mit diesen 10 CLI-Kommandos spare ich in Projekten Stunden.

Bonustip

Für jedes Kommando könnt ihr euch natürlich die entsprechende man Page mit man <command> anschauen. Aber ehrlich, die sind teilweise ziemlich lang und unübersichtlich. Hier könnt ihr aber einfach tldr (steht für too long; didn’t read) nachinstallieren. Ihr bekommt dann nur eine kurze Beschreibungungen und Beispiele statt langer und unübersichtlicher man-pages. Einfach tldr <command> statt man <command>verwenden.

Ubuntu

1
2
3
4
5
6
7
8
sudo apt install tldr
# bei Problemen mit apt geht auch snap 
sudo snap install tldr
# oder pip
pip3 install tldr

# Zum Schluss noch den Offline-Cache herunterladen, dann geht es auch ohne Internet
tldr --update

macOS (Apple Silicon/Intel)

1
2
brew install tldr
tldr --update

Habt ihr Favoriten die ich hier vielleicht vergessenen habe? Teilt mir eure bevorzugten Kommandos in den Kommentaren mit.

This post is licensed under CC BY 4.0 by the author.