Come visualizzare il file ".bash_history" tramite la riga di comando?

55

Voglio visualizzare il contenuto del mio file .bash_history ma non so come arrivarci tramite la riga di comando.

    
posta isupportopensource 14.10.2013 - 11:46

4 risposte

46

Se vuoi accedere al vero file, usa il tuo editor di testo preferito (io uso emacs ma puoi usare pluma di gedit o vim o qualsiasi altra cosa):

emacs ~/.bash_history

Questa è la posizione predefinita se il tuo file di cronologia. Se non trovi nulla lì, potresti aver cambiato il nome del file della cronologia. Questo è memorizzato nella variabile $HISTFILE , quindi stampalo per verificarne il valore corrente:

echo $HISTFILE

Se, invece del file, vuoi solo vedere la cronologia, puoi eseguire history come suggerito da @ minerz029. Il comando history senza opzioni stampa solo il contenuto della tua $HISTFILE seguito dai comandi eseguiti nella shell corrente che non sono ancora stati scritti in quel file, con i numeri di riga.

    
risposta data terdon 14.10.2013 - 23:43
40

Se in realtà hai bisogno dell'output del file .bash_history , sostituisci history con
cat ~/.bash_history in tutti i comandi sottostanti.

Se in realtà vuoi i comandi senza numeri in primo piano, usa questo comando invece di history :

history | cut -d' ' -f 4-

altrimenti, non ci saranno differenze (eccetto se stai usando una shell diversa).

Ultimi 15 comandi

Puoi usare

history | tail -n 15

per ottenere solo le ultime 15 righe della cronologia con l'ultima stampa stampata per ultima (in basso).

Ricerca di un comando

In alternativa, usa

history | grep "apt-get" | tail -n 15

per ottenere gli ultimi 15 comandi che contenevano apt-get con l'ultimo stampato ultimo (in basso). Puoi sostituire apt-get con qualsiasi comando (o argomento del comando) che desideri cercare (può essere un'espressione regolare).

Scorrere la cronologia

Puoi usare

history | tac | less

per scorrere tutti i comandi eseguiti iniziando dal più recente in alto. Premi q per uscire.

Allo stesso modo, usa

history | grep "apt-get" | tac | less

per scorrere tutti i comandi eseguiti con " apt-get " in essi (inclusi gli argomenti) iniziando dal più recente in alto. Premi q per uscire.

    
risposta data kiri 14.10.2013 - 12:07
15

Oltre all'eccellente risposta di minerz029.

Per reiterare: il comando "cronologia" stampa la cronologia insieme a un numero accanto ad essa.

Puoi reindirizzare l'output della cronologia in grep, meno ecc.

L'uscita della cronologia mostra anche un numero a sinistra accanto all'output. per es.

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

Con questo numero puoi rieseguire il comando.

es. per ri-eseguire 473 vorrei digitare nel terminale

 [email protected]~$ !473

seguito dal tasto Invio per ripetere il comando accanto a 473 nell'output della cronologia.

Puoi anche cercare in modo interattivo all'indietro nella cronologia dei comandi digitando ctrl + r keys, quindi inizia a digitare alcuni dei contenuti del comando e cercherà e li compila. Quando lo hai trovato, puoi digitare enter per ripeterlo o premere il tasto [tab] per copiarlo sulla riga di comando per modificare prima il comando.

Ovviamente, queste ultime due opzioni funzionano nella shell bash. Non sono sicuro che queste funzionalità funzionino in altre shell. Ma dal momento che bash è la shell predefinita di Ubuntu, dovresti trovarli lì.

    
risposta data Matt H 15.10.2013 - 01:47
1

Puoi provare a "suggerire box" -come storia link - legge la cronologia di Bash e consente una navigazione veloce.

    
risposta data Martin Dvorak 11.05.2015 - 14:15

Leggi altre domande sui tag