ubuntuusers.de

bash History mit Zeitstempel

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 857

Danke shiro,

ich möchte Deine folgende Variante versuchen:

... Sichern des $HISTFILE und Abändern des Timestamp von %s (Anzahl Sekunden seit dem 01.01.70) in eine leichter lesbare Form (z.B. %F %T). Hierbei wird die History-Datei abgeändert. Dies kannst du allerdings auch bereits bei der Sicherung machen. Also:

$ # Speicherung der Information in ".bashrc"
$ cat <<*EOF* >>~/.bashrc
HISTTIMEFORMAT="%F %T | "
alias cathist='sed "s/^#\(.*\)/date -d@\1 \"+$HISTTIMEFORMAT\"/e;N;s/\n//"'
hh() { HISTTIMEFORMAT="%F %T | " history "$@" | sed 's#^ *[0-9]\+ *##'; }
*EOF*
$ # Inhalt aus .bashrc aktivieren
$ . ~/.bashrc
$ # Sicherung der aktuellen History
$ history -a
$ cp $HISTFILE sicherung.bash_history	# Historie sichern und 
$ cathist sicherung.bash_history	# anzeigen. Natürlich kannst du auch gleich konvertieren mit
$ cathist $HISTFILE >sicherung.formated	# oder
$ hh >sicherung.formated
$ cat sicherung.formated		# Das Anzeigen mit less geht auch

Ist es richtig, wenn ich meine .bashrc um Deine ersten Zeilen ergänze, also:

export HISTTIMEFORMAT="%d.%m.%Y %T "                                          # aktueller Code, Zeile LÖSCHEN
export > HISTTIMEFORMAT="%F %T | "                                            # neu hinzu
shopt -s histappend                                                           # aktueller Code
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"   # aktueller Code
alias cathist='sed "s/^#\(.*\)/date -d@\1 \"+$HISTTIMEFORMAT\"/e;N;s/\n//"'   # neu hinzu: Alias definieren
hh() { HISTTIMEFORMAT="%F %T | " history "$@" | sed 's#^ *[0-9]\+ *##'; }     # neu hinzu: Alias definieren

?

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1245

Ist es richtig, wenn ich meine .bashrc um Deine ersten Zeilen ergänze, ...

Wie rklm schrieb, packt man Alias-Definitionen sinnvollerweise in die Datei "~/.bash_aliases". Für deinen Test kannst du sie aber in der ".bashrc" lassen (funktioniert auch, ist aber nicht so übersichtlich).

Allerdings solltest du folgende Änderungen vornehmen:

# statt
export > HISTTIMEFORMAT="%F %T | "
# besser löschen oder ersetzen zu
export HISTTIMEFORMAT="%F %T | "
...
# statt
export HISTTIMEFORMAT="%d.%m.%Y %T "
# kürzer schreiben als
export HISTTIMEFORMAT="%x %T "

Mit 'export > HISTTIMEFORMAT="%F %T | "' schreibst du eine Datei mit dem Namen 'HISTTIMEFORMAT="%F %T | "'. Ich denke, du willst irgend etwas anderes.

Das Format "%d.%m.%Y" ist identisch mit "%x".

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 857

Danke shiro, endlich habe ich eine lesbare history mit Zeoitstempel. Ich denke, so kann ich weitermachen ...

Antworten |