C'è un modo per avere nel file .bash_history, elencato:la directory in cui è stato digitato il comando, la data e il comando?
Risposta accettata:
Comando di cronologia che mostra la directory:NO! 🙁
Comando Cronologia che mostra la data:SÌ! 🙂
Questo perché (da 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;
Quindi, niente sulla directory in cui è stato digitato il comando.
Per conoscere l'ora esatta in cui è stato eseguito un determinato comando, vedere 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.
Quindi tutto ciò che devi fare è impostare $HISTTIMEFORMAT
qualcosa del genere nella shell corrente:
export HISTTIMEFORMAT="%F %T "
Per impostarlo in modo permanente, esegui il seguente comando:
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
Il comando precedente aggiungerà una nuova riga (export HISTTIMEFORMAT="%F %T "
) alla fine del tuo ~/.bashrc
file.
Ora, l'output di history
avrà un aspetto simile a questo:
...
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