Cómo hacer una copia de seguridad del historial del terminal de Linux

El terminal de Linux tiene una función de «historial». Con esta función, cada operación de comando que ingrese será respaldada para más adelante. Dado que todos los comandos de su terminal se guardan en el «historial», es esencial mantener una copia de seguridad para su custodia.

En esta guía, le mostraremos cómo hacer una copia de seguridad del historial de la terminal de Linux y también cómo restaurar las copias de seguridad. Entonces, abra su emulador de terminal Linux favorito y sígalo.

¿Dónde se almacena el historial de la terminal de Linux?

El terminal de Linux almacena su historial en un archivo. Este archivo se llama «.bash_history». Cualquiera puede editarlo y se almacena en el directorio de inicio. Dado que el archivo de historial de la terminal para Linux se almacena en un directorio de usuarios, cada usuario del sistema tiene un archivo.

Los permisos especiales no protegen estos archivos de historial, y cualquier usuario del sistema puede ver el historial de otro con un simple comando. Entonces, por ejemplo, si quiero echar un vistazo al historial de terminal / línea de comandos del nombre de usuario «usuario» en mi sistema Linux, haría:

  Cómo mostrar la fecha y la hora en la terminal de Linux (y usarla en scripts Bash)

cat /home/user/.bash_history

Los usuarios también pueden ver el historial del usuario actual en el que están conectados en el shell del terminal de Linux, simplemente ejecutando el comando «history».

history

Lo mejor de todo es que, dado que el «historial» es solo un archivo, se puede buscar como un archivo de texto normal utilizando la función grep. Entonces, por ejemplo, para encontrar instancias de «git clone» en el nombre de usuario con el siguiente comando.

cat /home/user/.bash_history | grep 'git clone'

También funciona como el usuario que ha iniciado sesión con el comando «historial».

history | grep 'search term'

Guarde el historial del terminal en una copia de seguridad

En la sección anterior de esta guía, hablé sobre cómo el «historial» de la terminal de Linux es solo un archivo de texto cuidadosamente oculto que contiene todos los comandos ingresados ​​por el usuario. Bueno, dado que es solo un archivo, eso significa que es muy fácil hacer una copia de seguridad para su custodia.

Para crear una copia de seguridad, utilice el comando cat. ¿Por qué? Con cat, puede ver la totalidad de un archivo de texto directamente en la terminal. Podemos usar este comando en combinación con el símbolo «>» para redirigir la salida de visualización a un archivo de respaldo.

Entonces, por ejemplo, para hacer una copia de seguridad de su historial actual, ejecute el comando cat contra «~ / .bash_history» y guárdelo en un archivo con la etiqueta «history_backup».

cat ~/.bash_history > history_backup

También puede ejecutar el comando history en combinación con “>” y guardarlo de esa manera.

history > history_backup

Por último, es posible hacer una copia de seguridad del historial de la línea de comandos / terminal de otro usuario que no haya iniciado sesión ejecutando el siguiente comando.

  Cómo instalar y usar Rapid Photo Downloader en Linux

Nota: asegúrese de cambiar «nombre de usuario» por el usuario del que desea guardar el historial.

cat /home/username/.bash_history > history_backup

Solo hacer una copia de seguridad de ciertos elementos del historial

Es posible que solo desee realizar una copia de seguridad de comandos específicos en el historial de su terminal de Linux. La forma de hacer esto es ver el archivo de historial y combinarlo con el comando grep, que filtrará palabras clave específicas.

Por ejemplo, para hacer una copia de seguridad solo de los comandos en el historial de su terminal de Linux que contienen los comandos git clone o git, puede ejecutar la siguiente operación.

Nota: en estos ejemplos, usamos «>>» en lugar de «>». El motivo de «>>» es que no sobrescribirá el contenido de la copia de seguridad del archivo histórico y se puede volver a ejecutar varias veces para agregar a la copia de seguridad.

cat ~/.bash_history | grep 'git' >> history_backup

O

cat /home/username/.bash_history | grep 'git' >> history_backup

El filtrado con grep también se puede aplicar al comando history, así.

history | grep 'git' >> history_backup

Para hacer una copia de seguridad de ciertas palabras clave del archivo de historial, reemplace «git» en los ejemplos anteriores con los comandos que desee respaldar. No dude en volver a ejecutar este comando tanto como sea necesario.

  Cómo encontrar archivos duplicados y limpiarlos en Linux con FSlint

Cómo restaurar la copia de seguridad del historial

Restaurar la copia de seguridad del historial es tan simple como eliminar el archivo original y colocar la copia de seguridad en su lugar. Para eliminar el archivo de historial original, use el comando rm en una ventana de terminal para eliminar «.bash_history».

rm ~/.bash_history

Una vez que el archivo de historial original se elimine de la carpeta de inicio del usuario en el que desea restaurar el historial, use el comando mv para cambiar el nombre de «history_backup» a «.bash_history».

mv history_backup ~/.bash_history

Ahora que el nuevo archivo de historial está en su lugar, ejecute el comando history -rw para volver a cargar la función de historial de la terminal.

history -rw

Luego podrá ver el historial de su terminal con:

history

Restaurar copias de seguridad para otros usuarios

¿Necesita restaurar copias de seguridad del historial de otros usuarios en el sistema? Para hacer esto, comience por iniciar sesión en su usuario usando el comando su.

su username

Después de iniciar sesión en el usuario, elimine el archivo de historial actual que reside en el directorio de inicio del usuario (~).

rm ~/.bash_history

A partir de ahí, cambie el nombre del archivo de copia de seguridad del historial como el nuevo archivo «.bash_history» en el directorio del usuario.

mv /path/to/backup/file/history-backup ~/.bash_history

Escribe los cambios con:

history -rw

Cuando termine, ejecute el historial para ver los comandos restaurados en la ventana del terminal.