Voglio visualizzare il contenuto del mio .bash_history
file ma non so come arrivarci dalla riga di comando.
/home/username/.bash_history
?
.bash_history
viene aggiunto solo quando un terminale è chiuso.
Voglio visualizzare il contenuto del mio .bash_history
file ma non so come arrivarci dalla riga di comando.
/home/username/.bash_history
?
.bash_history
viene aggiunto solo quando un terminale è chiuso.
Risposte:
Se si desidera accedere al file vero e proprio, basta usare il tuo editor di testo preferito (io uso emacs
, ma si può usare pluma
di gedit
o di vim
o 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 $HISTFILE
variabile, quindi stampalo per verificarne il valore corrente:
echo $HISTFILE
Se, invece del file, vuoi solo vedere la tua cronologia, puoi eseguire history
come suggerito da @ minerz029. Il history
comando senza opzioni stampa solo il contenuto del tuo $HISTFILE
seguito dai comandi eseguiti nella shell corrente che non sono stati ancora scritti in quel file, con numeri di riga.
Se hai effettivamente bisogno dell'output del .bash_history
file, sostituiscilo history
con
cat ~/.bash_history
in 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).
Puoi usare
history | tail -n 15
per ottenere solo le ultime 15 righe della cronologia con l'ultima stampa eseguita per ultima (in fondo).
In alternativa, utilizzare
history | grep "apt-get" | tail -n 15
per ottenere gli ultimi 15 comandi che contenevano apt-get
l'ultimo stampato eseguito per ultimo (in fondo). Puoi sostituirlo apt-get
con qualsiasi comando (o argomento) che desideri cercare (può essere un'espressione regolare).
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.
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 + r
tasti, 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ì.
Puoi provare la storia simile a "suggerisci box" https://github.com/dvorka/hstr : legge la cronologia di Bash e consente una navigazione rapida.
history | less