Antworten:
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.