Ich wollte wissen, ob es einen Befehl oder eine andere Möglichkeit gibt, meinen Befehlsverlauf nur in der aktuellen Sitzung zu überprüfen.
quelle
Ich wollte wissen, ob es einen Befehl oder eine andere Möglichkeit gibt, meinen Befehlsverlauf nur in der aktuellen Sitzung zu überprüfen.
Die history
integrierte Funktion bash
ermöglicht die Angabe von Dateinamen bei Verwendung mit -anrw
Flags und die -a
Beschreibung von Flags aus help history
Status:
Hängen Sie Verlaufszeilen dieser Sitzung an die Verlaufsdatei an
Deshalb können wir tun:
~$ history -a this_session.history
~$ cat ./this_session.history
history mysession.history
cat mysession.history
clear
history -a this_session.history
Für den Datensatz -w
schreibt (Schreibverlauf in Dateioption) den gesamten Verlauf in die angegebene Datei, daher ist -a
(Anhängen) hier die bevorzugte Wahl.
Es gibt andere manuelle Möglichkeiten. Insbesondere ksh
gibt es kein -a
Flag wie bash
das, aber was ksh
und mksh
was ist, ist eine HISTFILE
Umgebungsvariable (und bash
hat das auch, weil bash
es viele ksh
Funktionen enthält); Übrigens ist diese Variable standardmäßig nicht festgelegt (zumindest mksh
unter Ubuntu nicht). Um die aktuelle Sitzung in eine andere Datei HISTFILE
auszugeben , rufen wir den Befehl prepended to auf, was in der Shell-Syntax bedeutet, dass der Befehl mit einer zusätzlichen Umgebungsvariablen ausgeführt wird, die Sie angeben. Wie so:
bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$
bash-4.4$ cat ./mykshfile.hist
�echo 'Hello'
echo 'World'
Was Sie auch daran sehen können, ist, dass ksh
und die zugehörigen Shells den Verlauf mit Sonderzeichen anstelle von einfachem Text ausgeben bash
. Vielleicht möchten Sie diese Datei mit öffnen ksh
.
So weit wie der POSIX - /bin/sh
Shell auf Ubuntu , die Debian Almquist Shell oder Dash ist, gibt es fc
integrierte in . Doch auf Ubuntu Strich ohne lib-edit zusammengestellt , die von Ubuntu - Entwickler aus Performance - Gründen eine bewusste Entscheidung ist, so fc
und andere Modi , die Zeilenbearbeitung erfordern nicht funktionieren aus der Box (es sei denn recompile dash
Sie sich und installieren lib-edit
).
Shell-neutrale Möglichkeiten wären, Ihre Sitzung mit vorhandenen Tools aufzuzeichnen oder Ihre eigene Funktion zu schreiben , um sie auf Befehlsbasis aufzuzeichnen.