Einleitung
Das Terminal ist das mächtigste Werkzeug unter Linux. Diese Tipps und Tricks helfen dir, produktiver zu arbeiten.
Terminal aufräumen
Terminal leeren
clear
Oder Tastenkombination:
Ctrl+L
Terminal zurücksetzen
Wenn das Terminal “kaputt” ist (z.B. nach cat einer Binärdatei):
reset
Befehlshistorie
History anzeigen
history
In History suchen
history | grep [query]
Oder interaktiv:
Ctrl+R
Dann Suchbegriff eingeben und durch Treffer navigieren.
Letzten Befehl wiederholen
!!
Vorletzten Befehl
!-2
Befehl nach Nummer ausführen
!123
Programme beenden
Gefrorenes Fenster schließen
xkill
Dann auf das gefrorene Fenster klicken.
Prozess per ID beenden
# Prozess finden
ps aux | grep firefox
# Beenden
kill [processID]
# Force kill
kill -9 [processID]
Tab Completion
Tab einmal drücken = Auto-vervollständigen
Tab Tab (doppelt) = Alle Möglichkeiten anzeigen
Funktioniert für:
- Dateien und Verzeichnisse
- Befehle
- Git-Branches
- SSH-Hosts (wenn konfiguriert)
Aliases
Temporäre Aliases
alias [name]="[command]"
Beispiel:
alias publicip="curl ifconfig.me"
Permanente Aliases
In ~/.bashrc oder ~/.zshrc eintragen:
# My shortcuts
alias h="history"
alias ll="ls -lah"
alias ..="cd .."
alias ...="cd ../.."
alias gs="git status"
alias gp="git pull"
alias update="sudo apt update && sudo apt upgrade"
Danach Reload:
source ~/.bashrc
Alias temporär umgehen
\[command]
Beispiel: Wenn ls ein Alias ist:
\ls
Befehle verketten
Immer alle ausführen (egal ob Fehler)
command1 ; command2 ; command3
Nur bei Erfolg fortfahren
command1 && command2 && command3
Bei Fehler alternativen Befehl
command1 || command2
Befehlssyntax lernen
Man Page
man [command]
Help Flag
[command] --help
TLDR (vereinfachte Beispiele)
tldr [command]
Installation:
npm install -g tldr
# oder
pip install tldr
Cursor Navigation
| Shortcut | Aktion |
|---|---|
Ctrl+A | Zum Anfang der Zeile |
Ctrl+E | Zum Ende der Zeile |
Ctrl+F | Ein Zeichen vorwärts |
Ctrl+B | Ein Zeichen rückwärts |
Alt+F | Ein Wort vorwärts |
Alt+B | Ein Wort rückwärts |
Ctrl+U | Alles vor Cursor löschen |
Ctrl+K | Alles nach Cursor löschen |
Ctrl+W | Letztes Wort löschen |
Ctrl+_ | Undo |
Redirection
Output in Datei schreiben (überschreiben)
echo "Write output to file" > example.txt
An Datei anhängen
echo "Append this to file" >> example.txt
Input aus Datei lesen
cowsay < example.txt
Errors in separate Datei
rm -vf folder1 file1 > out.txt 2> err.txt
Output UND Errors in eine Datei
command > output.txt 2>&1
Output verwerfen
command > /dev/null 2>&1
Wildcards & Pattern
Asterisk (*) - alles
ls *.txt # Alle .txt Dateien
rm prefix* # Alle Dateien die mit "prefix" beginnen
Fragezeichen (?) - ein Zeichen
ls file?.txt # file1.txt, fileA.txt, aber nicht file10.txt
Eckige Klammern [] - Zeichenauswahl
ls file[abc].txt # fileaBC.txt, fileb.txt, filec.txt
ls file[0-9].txt # file0.txt bis file9.txt
Pipes
Output als Input weiterreichen
cat file.txt | grep "search" | wc -l
Mit tee gleichzeitig in Datei und stdout
ls | tee file-list.txt | less
Background & Foreground
Prozess im Hintergrund starten
long-running-command &
Laufenden Prozess in Hintergrund schicken
Ctrl+Z # Pausieren
bg # In Hintergrund weiterlaufen lassen
Background-Prozess in Vordergrund holen
fg
Alle Background-Jobs anzeigen
jobs
Spezielle Variablen
Letztes Argument
mkdir /long/path/to/directory
cd $_ # $_ enthält "/long/path/to/directory"
Oder:
Alt+.
# oder
Esc .
Vorherigen Befehl beibehalten, ein Wort ändern
ls *.png
^png^jpg # Führt aus: ls *.jpg
Exit-Code des letzten Befehls
echo $? # 0 = Erfolg, != 0 = Fehler
File Permissions
Permissions anzeigen
ls -l [file]
Output-Format: -rwxr-xr--
- Position 1: Typ (
-=Datei,d=Directory,l=Symlink) - Position 2-4: Owner permissions (rwx)
- Position 5-7: Group permissions (r-x)
- Position 8-10: Other permissions (r—)
Permissions ändern (symbolisch)
chmod [who][+/-/=][permissions] [file]
Beispiele:
chmod g+rw test.txt # Gruppe: read+write hinzufügen
chmod o-x script.sh # Others: execute entfernen
chmod u=rwx file.txt # Owner: genau rwx
chmod a+r file.txt # All: read hinzufügen
Who:
u= User (Owner)g= Groupo= Othersa= All
Permissions:
r= Read (4)w= Write (2)x= Execute (1)
Permissions ändern (numerisch)
chmod 640 test.txt
- Erste Ziffer: Owner (6 = rw-)
- Zweite Ziffer: Group (4 = r—)
- Dritte Ziffer: Others (0 = ---)
Berechnung: r(4) + w(2) + x(1)
Häufige Permissions
chmod 755 script.sh # rwxr-xr-x (ausführbares Script)
chmod 644 file.txt # rw-r--r-- (normale Datei)
chmod 600 secret.txt # rw------- (nur Owner)
chmod 777 file.txt # rwxrwxrwx (alle Rechte - VORSICHT!)
Productivity Hacks
Command-Editor öffnen
Ctrl+X Ctrl+E
Öffnet aktuellen Befehl in $EDITOR (meist vim/nano).
Befehl pausieren, anderen ausführen, fortsetzen
Ctrl+U # Aktuelle Zeile "ausschneiden"
[... anderen Befehl ausführen ...]
Ctrl+Y # Zeile wieder einfügen
Screen/Tmux für persistente Sessions
# Screen
screen -S mysession
# Detach: Ctrl+A D
screen -r mysession
# Tmux
tmux new -s mysession
# Detach: Ctrl+B D
tmux attach -t mysession
Best Practices
- Nutze Tab-Completion: Schneller und fehlerfreier
- Lerne Shortcuts: Spart enorm Zeit
- History durchsuchen: Ctrl+R ist dein Freund
- Aliases für häufige Befehle: Automatisiere Wiederholungen
- Screen/Tmux auf Servern: Keine Angst vor Connection-Loss
- Man Pages lesen: Beste Dokumentation direkt im System
Weitere Ressourcen
- Bash Shortcuts Cheat Sheet
- The Art of Command Line
- Awesome Shell
- explainshell.com - Befehle erklärt