Quiero ver el contenido de mi .bash_history
archivo pero no sé cómo llegar a través de la línea de comando.
/home/username/.bash_history
?
.bash_history
se agrega solo cuando un terminal está cerrado.
Quiero ver el contenido de mi .bash_history
archivo pero no sé cómo llegar a través de la línea de comando.
/home/username/.bash_history
?
.bash_history
se agrega solo cuando un terminal está cerrado.
Respuestas:
Si desea acceder al archivo en sí, sólo tiene que utilizar su editor de texto favorito (yo uso emacs
, pero puede utilizar pluma
de gedit
o vim
, o lo que sea):
emacs ~/.bash_history
Esa es la ubicación predeterminada de su archivo de historial. Si no encuentra nada allí, es posible que haya cambiado el nombre del archivo de historial. Esto se almacena en la $HISTFILE
variable, así que imprímalo para verificar su valor actual:
echo $HISTFILE
Si, en lugar del archivo, solo desea ver su historial, puede ejecutar history
como sugirió @ minerz029. El history
comando sin opciones solo imprime el contenido de su $HISTFILE
seguido por los comandos ejecutados en el shell actual que aún no se han escrito en ese archivo, con números de línea.
Si realmente necesita la salida del .bash_history
archivo, reemplácelo history
con
cat ~/.bash_history
todos los comandos a continuación.
Si realmente quiere los comandos sin números al frente, use este comando en lugar de history
:
history | cut -d' ' -f 4-
de lo contrario, no habrá diferencia (excepto si está utilizando un shell diferente).
Puedes usar
history | tail -n 15
para obtener solo las últimas 15 líneas de su historial con la última ejecución impresa en último lugar (en la parte inferior).
Alternativamente, use
history | grep "apt-get" | tail -n 15
para obtener los últimos 15 comandos que contenían apt-get
el último ejecutado impreso en último lugar (en la parte inferior). Puede reemplazarlo apt-get
con cualquier comando (o argumento de comando) que desee buscar (puede ser una expresión regular).
Puedes usar
history | tac | less
para desplazarse por todos los comandos ejecutados comenzando por el más reciente en la parte superior. Presione qpara salir.
Del mismo modo, use
history | grep "apt-get" | tac | less
para desplazarse por todos los comandos ejecutados con " apt-get
" en ellos (incluidos los argumentos) comenzando por el más reciente en la parte superior. Presione qpara salir.
Además de la excelente respuesta de minerz029.
Para reiterar: el comando 'historial' imprime el historial junto con un número al lado.
Puede canalizar la salida del historial en grep, less etc.
La salida del historial también muestra un número a la izquierda junto a la salida. p.ej
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 este número puede volver a ejecutar el comando.
por ejemplo, para volver a ejecutar 473, escribiría en el terminal
admin@xen1~$ !473
seguido de la tecla Intro para repetir el comando junto a 473 en la salida del historial.
También puede buscar interactivamente hacia atrás en el historial de comandos escribiendo ctrl + r
teclas y luego comenzar a escribir algunos de los contenidos del comando y buscará y completará. Cuando lo haya encontrado, puede escribir enter para repetirlo, o presionar la [tab]
tecla para copiarlo en la línea de comando para editar el comando primero.
Por supuesto, esas dos últimas opciones funcionan en el shell bash. No estoy seguro de si estas características funcionan en otros shells. Pero como bash es el shell predeterminado de Ubuntu, debería encontrarlos allí.
Es posible que desee probar el "historial de cuadro de sugerencia" https://github.com/dvorka/hstr : lee el historial de Bash y permite una navegación rápida.
history | less