Gibt es eine Möglichkeit, in der Datei .bash_history aufzulisten:das Verzeichnis, in das der Befehl eingegeben wurde, das Datum und den Befehl ?
Akzeptierte Antwort:
Verlaufsbefehl, der das Verzeichnis anzeigt:NEIN! 🙁
Verlaufsbefehl, der das Datum anzeigt:JA! 🙂
Das liegt daran, dass (aus man history
):
The history list is an array of history entries. A history entry is declared as follows: typedef void * histdata_t; typedef struct _hist_entry { char *line; char *timestamp; histdata_t data; } HIST_ENTRY;
Also nichts über das Verzeichnis, in das der Befehl eingegeben wurde.
Um den genauen Zeitpunkt zu erfahren, zu dem ein bestimmter Befehl ausgeführt wurde, siehe help history
:
If the $HISTTIMEFORMAT variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each displayed history entry. No time stamps are printed otherwise.
Sie müssen also nur $HISTTIMEFORMAT
setzen etwa so in der aktuellen Shell:
export HISTTIMEFORMAT="%F %T "
Um es dauerhaft festzulegen, führen Sie den folgenden Befehl aus:
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
Der obige Befehl fügt eine neue Zeile hinzu (export HISTTIMEFORMAT="%F %T "
) am Ende Ihres ~/.bashrc
Datei.
Nun die Ausgabe von history
sieht in etwa so aus:
...
1613 2013-11-13 13:00:15 cat .bash_history
1614 2013-11-13 13:01:04 man history
1615 2013-11-13 13:11:58 help history
1616 2013-11-13 13:19:07 ls
1617 2013-11-13 13:19:09 cd
1618 2013-11-13 13:19:15 history