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 natürlich nicht den Eindruck erwecken, dass alles im OS bereits enthaltene nichts taugt und immer etwas nach installiert werden muss. Dem ist natürlich nicht so und das möchte ich mit diesem Artikel, mit den 10 am meisten unterschätzten CLI-Kommandos für Linux und macOS auch zeigen.

Stellen wir uns 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. Dabei stecken in Linux und macOS echte Schätze, die bereits vorinstalliert sind und uns das Leben erleichtern. Diese 10 Kommandos sind deshalb unterschätzt, weil sie nicht sehr bekannt sind, aber in der Praxis wirklich Zeit sparen.

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. 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/Zsh.

2. 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 eurenn Workflow sofort. Mit diesen 10 CLI-Kommandos spare ich damit 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 kurze Beschreibungungen und Beispiele statt langer man-page. Einfach tldr <command> verwenden.

Ubuntu

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

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

macOS (Apple Silicone oder 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.