Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Die Standard-Shell der interaktiven Session, Bash, protokolliert ausgeführte Befehle auf der Kommandozeile in der sogenannten history analog zu einem Browserverlauf. Dies kann hilfreich sein, um bereits ausgeführte Befehle wiederzuverwenden, ohne sie neu eintippen zu müssen. Durch Eingabe des Befehls history kann der gesamte gespeicherte Verlauf ausgegeben werden. Alternativ können durch Angabe eines Parameters n (history n) die letzten n Befehle angezeigt werden.

History durchsuchen

Der Verlauf kann auch dazu verwendet werden, bereits ausgeführte Befehle zu suchen und direkt in der aktuellen Eingabeaufforderung einzufügen. Dazu dient beispielsweise das Tastenkürzel Ctrl+R. Dann ändert sich der Text der Eingabeaufforderung zu (reverse-i-search) und es kann ein Suchbegriff eingegeben werden. Die Kommandozeile schlägt automatisch den ersten Treffer zu diesem Suchbegriff vor, durch Erneutes drücken von Ctrl+R können weitere Treffer angezeigt werden. Die Treffer werden in einer umgekehrt chronlogischen Reihenfolge angezeigt (zuletzt eingegebene Befehle zuerst). Der vorgeschlagene Befehl kann vor der Ausführung noch bearbeitet werden, anschließend mit Enter die Ausführung bestätigen.

History zwischen verschiedenen Instanzen synchronisieren

Der Verlauf wird normalerweise erst beim Beenden einer interaktiven Session gespeichert. Während der Session ist der aktuelle Verlauf nur für die jeweilige Sitzung sichtbar. Für weitere, parallele Sitzungen desselben Nutzers ist der aktuelle Verlauf nicht sichtbar. Außerdem wird der Verlauf nicht gespeichert, wenn die Sitzung durch PBS beendet wird, z.B. weil die angeforderte Walltime abgelaufen ist.

Um diese Probleme zu addressieren, ist es möglich, den Verlauf nach der Eingabe jedes Befehls direkt zu sichern (und neu zu laden). So sind neue Kommandos direkt für alle Sitzungen desselben Nutzers sichtbar, und der Verlauf geht auch nicht verloren, wenn die Sitzung durch PBS beendet wird. Dazu in der Datei .bashrc im Benutzerverzeichnis die folgende Zeile anfügen:

Codeblock
languagebash
echo 'declare PROMPT_COMMAND="history -a;history -r"'  >> ~/.bashrc

Von nun an wird jede neue interaktive Session diese Einstellung berücksichtigen und den Verlauf immer sofort speichern.