¿Cómo encontrar el historial de comandos de shell desde que se creó la máquina?

17

Creé una máquina Ubuntubox virtual hace un par de semanas y he estado trabajando en proyectos de forma intermitente desde entonces.

Ahora me gustaría encontrar la sintaxis de algunos comandos que escribí en el terminal hace una semana, pero abrí y cerré la ventana del terminal y reinicié el equipo varias veces.

¿Cómo puedo obtener el comando history para volver al primer comando que escribí después de crear la máquina?
¿O hay otro lugar donde todos los comandos están almacenados en Ubuntu?

    
pregunta Edward Tanguay 07.07.2012 - 06:16

4 respuestas

23

Puede ser posible o no obtener todos los comandos. Depende de cuántos comandos haya ejecutado y cómo se haya establecido el límite de historial.

Sin embargo, puede ver que la lista de historial se almacena aquí

/home/<YOUR_USERNAME>/.bash_history

Pregunta relacionada (para manejar el historial de shell múltiple):

¿Es posible escribir en .bash_history? ¿inmediato?

    
respondido por el Web-E 07.07.2012 - 07:20
6

Algo que también podría interesarte es cómo buscar a través de tu historial de comandos anterior. Puede revertir la búsqueda de su historial en la línea de comando presionando Ctrl+r y luego escribiendo las letras que desea emparejar. Si tiene más de un comando coincidente, presione Ctrl+r nuevamente. Para salir de la búsqueda inversa, presione Ctrl+g .

enlace

    
respondido por el Sepero 07.07.2012 - 08:33
4

De manera predeterminada, no hay ningún lugar donde todos los comandos se graben y guarden indefinidamente, aunque ~/.bash_history contiene los últimos comandos (si usa bash , que es el shell predeterminado en Ubuntu).

Si quieres cada comando escrito en bash registrado para siempre , debes configurarlo tú mismo. Por ejemplo, puede poner lo siguiente en su archivo ~/.bashrc para registrar todos los comandos escritos en un shell bash en el archivo ~/.command_log :

# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
    trap "caller >/dev/null || \
printf '%s\n' \"$(date '+%Y-%m-%dT%H:%M:%S%z')\
 $(tty) ${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi

Lo anterior establece una trampa en DEBUG , que se ejecuta justo antes de que se ejecute un comando ordinario. El caller incorporado se usa para probar si el comando se escribe en un shell interactivo o se ejecuta a través de algo como ~/.bashrc . El valor ${BASH_COMMAND} contiene el comando que se está ejecutando actualmente.

    
respondido por el Richard Hansen 12.07.2012 - 02:22
3

Solo puede regresar hasta que se establezca su límite de historial; una vez que ha llegado a ese punto, el historial comenzará a sobrescribirse. Sin embargo, es posible tener un tamaño de historial más grande para el futuro. Pon esto en tu .bashrc y especifica un valor (el mío se establece en 1000):

export HISTSIZE=1000
    
respondido por el user76204 10.07.2012 - 19:35

Lea otras preguntas en las etiquetas