Come visualizzare il file `.bash_history` tramite riga di comando?


Risposte:


56

Se si desidera accedere al file vero e proprio, basta usare il tuo editor di testo preferito (io uso emacs, ma si può usare plumadi gedito di vimo qualsiasi altra cosa):

emacs ~/.bash_history

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

echo $HISTFILE

Se, invece del file, vuoi solo vedere la tua cronologia, puoi eseguire historycome suggerito da @ minerz029. Il historycomando senza opzioni stampa solo il contenuto del tuo $HISTFILEseguito dai comandi eseguiti nella shell corrente che non sono stati ancora scritti in quel file, con numeri di riga.


49

Se hai effettivamente bisogno dell'output del .bash_historyfile, sostituiscilo historycon
cat ~/.bash_historyin tutti i comandi seguenti.

Se vuoi effettivamente i comandi senza numeri davanti, usa questo comando invece di history:

history | cut -d' ' -f 4-

in caso contrario, non ci sarà alcuna differenza (tranne se si utilizza 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 eseguita per ultima (in fondo).


Alla ricerca di un comando

In alternativa, utilizzare

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

per ottenere gli ultimi 15 comandi che contenevano apt-getl'ultimo stampato eseguito per ultimo (in fondo). Puoi sostituirlo apt-getcon qualsiasi comando (o argomento) che desideri cercare (può essere un'espressione regolare).


Scorrendo la cronologia

Puoi usare

history | tac | less

per scorrere tutti i comandi eseguiti a partire dal più recente in alto. Premere qper uscire.

Allo stesso modo, utilizzare

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

per scorrere tutti i comandi eseguiti con " apt-get" al loro interno (inclusi gli argomenti) a partire dal più recente in alto. Premere qper uscire.


15

Oltre all'ottima risposta di minerz029.

Per ripetere: il comando "cronologia" stampa la cronologia insieme a un numero accanto.

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

L'uscita della storia mostra anche un numero a sinistra accanto all'output. per esempio

  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 è possibile rieseguire il comando.

ad es. per rieseguire 473, digitarei nel terminale

 admin@xen1~$ !473

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

Puoi anche cercare interattivamente all'indietro nella cronologia dei comandi digitando i ctrl + rtasti, quindi inizia a digitare alcuni dei contenuti del comando e lo cercherà e lo compilerà. Quando l'hai trovato, puoi digitare invio per ripeterlo oppure premere il [tab]tasto per copiarlo nella riga di comando per modificare prima il comando.

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


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.