Linux Bash – History optimieren / Nützliche Parameter
Inhaltsverzeichnis:
Die Linux Bash speichert die zuletzt eingegebenen Befehle ab, die man dann mit dem Befehl history abrufen kann.
History anpassen
Über die Konfigurationsdati der Bash lassen sich hier noch ein paar nützliche Optimierungen vornehmen, z.B. lassen sich Duplikate auslenden oder Befehle, die mit einem vorangestellten Leerzeichen eingegeben werden.

Dazu bearbeitet man die Datei .bashrc seines Benutzers:
nano ~/.bashrc
Bestimmte Befehle in der BASH-History nicht anzeigen:
HISTIGNORE="?:??:???:bash:clear:exit:man*:*--help*"
Die jeweiligen Werte sind mit Doppelpunkt getrennt. Erklärung:
- Alle Befehl mit einer Länge von 1-3 ausblenden
- Alle Befehle mit bash, clear, exit, man*, –help ebenfalls ausblenden
Dubletten und Befehle mit vorangestelltem Leerzeichen in der History ignorieren:
HISTCONTROL=ignoreboth
Danach müssen dei Einstellungen noch dauerhaft gespeichert werden:
source ~/.bashrc
History Session-übergreifend verfügbar machen
Damit wird die History nach jedem Projekt vom Arbeitsspeicher direkt in die History-Datei geschrieben. So bekommt man in allen Terminal-Sessions eine einheitliche History, ohne sich mit exit abmelden zu müssen:
nano ~/.bashrc
PROMPT_COMMAND="history -a
Nun die bashrc veröffentlichen:
source ~/.bashrc
Hilfreiche Kommandos / Parameter für die History
| Parameter | Bechreibung |
|---|---|
| !! | Zuletzt aufgerufene Befehl |
| :h | In einer Pfadangabe das Ende abschneiden (alles hinter dem letzten Slash) |
| :r | Alles hinter dem letzten Punkt abschneiden (hilfreich bei Dateinamen) |
| :e | Alles hinter dem letzten Punkt (Dateiendung) |
| !* | Alle Parameter vom vorherigen Befehl |
| !$ | Letzter Parameter vom vorherigen Befehl |
| :1-3 | Der zweite bis vierte Parameter des Befehls (erster Parameter wäre 0) |
| :1-$ | Ab dem zweiten und alle weiteren Parameter des Befehls |
| :* | Alle Parameter des Befehls |
Beispiel: Mehrere Pakete mit apt-install hintereinander installieren
Man installiert ein Paket über apt install, dann fällt einem ein das man ja noch mehr Pakete installieren muss. Man möchte aber nicht jedesmal apt install eingeben, sondern diese zwei Befehle (“apt” und “install”) weiter verwenden.
(Mir ist durchaus bewusst, dass man mit apt install auch mehrere Pakete hintereinander installieren kann, aber das dient ja hier nur als Beispiel)
apt install php7.4
Nun möchte man zusätzlich das Paket php7.4-cli installieren. Dazu führt man folgendes Kommando aus:
!:0-1 php7.4-cli
Das “!:0-1” bedeutet, dass man die ersten beiden Befehle es letzten Kommandoaufrufs weiter verwenden möchte.

Beispiel: Ordner wechseln anhand einer vorher geöffneten Datei
Man gibt die Datei /etc/ssh/sshd/config aus und möchte nachher in das entspr. Verzeichnis springen. Die Datei am Ende soll also abgeschnitten werden.
cat /etc/ssh/sshd_config
Um nun in den Ordner /etc/ssh/ zu springen, geben wir folgendes ein:
cd !!:$:h
!! steht in dem Fall für den letzten Parameter des vorherigen Befehls, das :h scneidet alles ab dem letzten Schrägstrich ab. So bleibt folgendes Kommando übrig:
cd /etc/ssh