Quiero ver el contenido de mi .bash_historyarchivo pero no sé cómo llegar a través de la línea de comando.
/home/username/.bash_history ?
.bash_historyse agrega solo cuando un terminal está cerrado.
Quiero ver el contenido de mi .bash_historyarchivo pero no sé cómo llegar a través de la línea de comando.
/home/username/.bash_history ?
.bash_historyse 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 plumade gedito 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 $HISTFILEvariable, así que imprímalo para verificar su valor actual:
echo $HISTFILE
Si, en lugar del archivo, solo desea ver su historial, puede ejecutar historycomo sugirió @ minerz029. El historycomando sin opciones solo imprime el contenido de su $HISTFILEseguido 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_historyarchivo, reemplácelo historycon
cat ~/.bash_historytodos 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-getel último ejecutado impreso en último lugar (en la parte inferior). Puede reemplazarlo apt-getcon 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 + rteclas 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