Come trovare la cronologia dei comandi della shell da quando è stata creata la macchina?

17

Ho creato una macchina virtuale Ubuntu un paio di settimane fa e da allora ho lavorato a progetti diversi.

Ora vorrei trovare la sintassi di alcuni comandi che ho digitato nel terminale una settimana fa, ma ho aperto e chiuso la finestra del terminale e riavviato la macchina numerose volte.

Come posso ottenere il comando history per tornare al primo comando che ho digitato dopo aver creato la macchina?
O c'è un altro posto in cui tutti i comandi sono memorizzati in Ubuntu?

    
posta Edward Tanguay 07.07.2012 - 08:16

4 risposte

23

Potrebbe o non potrebbe essere possibile ottenere tutti i comandi. Dipende da quanti comandi hai eseguito e da come è stato impostato il limite della cronologia.

Tuttavia puoi vedere che l'elenco cronologico è memorizzato qui

/home/<YOUR_USERNAME>/.bash_history

Domanda correlata (per la gestione della cronologia di più shell):

E 'possibile scrivere su .bash_history immediato?

    
risposta data Web-E 07.07.2012 - 09:20
6

Qualcosa che potrebbe interessarti è come cercare nella cronologia dei comandi precedente. Puoi invertire la ricerca della cronologia sulla riga di comando premendo Ctrl+r e quindi digitando le lettere che desideri abbinare. Se hai più di un comando di abbinamento, premi nuovamente Ctrl+r . Per uscire dalla ricerca inversa, premi Ctrl+g .

link

    
risposta data Sepero 07.07.2012 - 10:33
4

Di default, non c'è posto dove tutti i comandi sono registrati e mantenuti indefinitamente, sebbene ~/.bash_history contenga gli ultimi comandi (se usi bash , che è la shell predefinita in Ubuntu).

Se desideri ogni comando digitato in bash registrato per sempre , devi configurarlo tu stesso. Ad esempio, puoi inserire quanto segue nel tuo file ~/.bashrc per registrare tutti i comandi digitati in una shell bash nel file ~/.command_log :

# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
    trap "caller >/dev/null || \
printf '%s\n' \"$(date '+%Y-%m-%dT%H:%M:%S%z')\
 $(tty) ${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi

Quanto sopra imposta una trappola su DEBUG , che viene eseguita immediatamente prima dell'esecuzione di un comando ordinario. Il built-in caller viene utilizzato per verificare se il comando è stato digitato in una shell interattiva o eseguito tramite qualcosa come ~/.bashrc . Il valore ${BASH_COMMAND} contiene il comando attualmente in esecuzione.

    
risposta data Richard Hansen 12.07.2012 - 04:22
3

Puoi tornare indietro solo fino a quando il tuo limite di storia è impostato; una volta raggiunto quel punto, la cronologia inizierà a essere sovrascritta. Tuttavia, è possibile avere una dimensione della cronologia più grande per il futuro. Metti questo nel tuo .bashrc e specifica un valore (il mio è impostato a 1000):

export HISTSIZE=1000
    
risposta data user76204 10.07.2012 - 21:35

Leggi altre domande sui tag