GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de la función de historial en Bash Shell en el servidor Ubuntu 16.04 LTS

El Bash (Bourne back shell) es un shell popular que se usa en la mayoría de los sistemas similares a UNIX. Bash está escrito por Brian Fox como Proyecto GNU. Incorpora características de Bourne shell, C shell y Korn shell. A los usuarios que pasan su tiempo en la línea de comandos usando bash shell a menudo les gustará repetir los comandos que se ejecutaron en el pasado. La función de historial de shell de Bash ayuda a recordar comandos recientes y reutilizarlos más tarde; ahorrando así tiempo para volver a escribir. ¡Empecemos!

Historial de anuncios

Cuando la historia comando utilizado sin pasar argumentos, mostrará los comandos recientes utilizados con los números de línea correspondientes.

$ history 

El resultado será similar al siguiente:

Lista de los últimos 'n' comandos ejecutados

Mediante el uso de "historial ", los últimos "n" comandos ejecutados se pueden recuperar de la siguiente manera:

$ history 7 

Ejecutar un comando específico del historial

Es posible ejecutar un comando específico del historial. El uso de los signos de exclamación seguidos del número del comando que aparece en el historial hará la magia. Por ejemplo, el siguiente comando vuelve a ejecutar el comando que tiene el número 7 (du –sh) de la siguiente manera:

$ !7 

Ejecutar un comando anterior de nuevo

En muchas situaciones, necesitamos ejecutar un comando una y otra vez. Los siguientes comandos harán ese trabajo ejecutando el comando anterior utilizado.

$ !!
Or
$ !-1  

Buscando los comandos

La salida generada por el historial se puede utilizar de varias maneras. Por ejemplo, la salida del historial se puede pasar a:more, tail, grep para recuperar la salida deseada.

Busque en el historial de comandos “gratis”:$ history | grep gratis Para ver solo los últimos 4 comandos:

$ history | tail -4 

El comando more permite mostrar la salida en la terminal una página a la vez:

$ history | more   

Ejecutar un comando anterior que comience con una palabra específica

¡Usar la exclamación seguida de la palabra específica del comando hará la magia!. Supongamos que el usuario ha ejecutado – ”free –h”. Escribir '!free' volverá a ejecutar el comando 'free –h'.

Borrar historial

Es posible borrar el historial con el siguiente comando: ​ $ history -c Esto borra todos los comandos en la memoria bash shell para la sesión de usuario actual.

Alias ​​útiles

Un alias es un nombre corto dado a un comando largo y complejo. Alias ​​simple de un solo carácter para el comando de historial.

$ alias 'h=history' 

El alias "ht" a continuación muestra los diez comandos más recientes:

$ alias 'ht=history | tail' 

El alias "hg" a continuación permite mostrar todos los comandos que coinciden con la cadena dada:

$ alias 'hg=history | grep' 

Agregue estos alias en el archivo "~/.bashrc" para que sean persistentes cada vez que se inicia el sistema.

Ajustes de configuración del historial

Variable de Bash Shell Descripción
ARCHIVO HIST ​Ubicación del archivo físico donde el historial almacena los comandos. El shell bash por defecto es “~/.bash_history”. Al configurar "/dev/null", se deshabilitará la grabación del historial.
TAMAÑO DEL ARCHIVO DE HIST ​Se refiere a una serie de comandos que se almacenarán en el archivo de historial.
TAMAÑO DEL HISTORIAL ​Se refiere a una serie de comandos que se almacenan en la memoria en una lista de historial. Establecer un valor de 0 (cero) desactivará la grabación del historial.
HISTORIAL ​A veces se requiere no almacenar algún tipo de comando. Esta variable toma una lista de patrones separados por dos puntos. Por ejemplo, la siguiente configuración hace que la función de historial no registre los comandos:ls, top y clear.

HISTIGNORE=”ls*:top:clear” 
FORMATO DE HISTÓRICO ​Esta variable HISTTIMEFORMAT permite mostrar el historial con marca de tiempo.

Tener HISTTIMEFORMAT establecido en '%F %T  ' produce los siguientes resultados.​ Este es un comando muy útil para los administradores de sistemas.
CONTROL DE HIST ​HISTCONTROL ayuda a ignorar los duplicados. HISTCONTROL se puede configurar con valores:borrados, ignorar espacio, ignorados o ignorar ambos. (separados por dos puntos) Los siguientes son algunos ejemplos: HISTCONTROL=ignoredups:erasedups
HISTCONTROL=ignoreboth Suponga que las entradas del historial contienen duplicados de la siguiente manera ("top" y "ls –latr" se repiten consecutivamente) Si HISTCONTROL se configuró en "ignoredups ” entonces el historial se habría mostrado como a continuación:

Ajustes de configuración avanzados

Bash mantiene la lista de comandos internamente en la memoria y se escriben en el archivo configurado (el valor predeterminado es .bash_history) al salir. Cuando el usuario sale del shell, las últimas líneas de $HISTSIZE se copian de la lista de historial al archivo establecido en $HISTFILE. Si un usuario inicia sesión con muchas sesiones de bash, solo la última en salir tendrá su historial guardado. En caso de que el historial de comandos se escriba inmediatamente a medida que se ejecuta un comando en una sesión de usuario, la siguiente configuración se puede establecer en el archivo ".bashrc".

$ shopt -s histappend $ PROMPT_COMMAND=”historial -a; historia -c; history -r” “shopt –s histappend” habilite agregar en lugar de sobrescribir el historial.
“history -a” se usa para agregar los comandos de historial en la memoria a ~/.bash_history
“history -c” se usa para borrar los comandos del historial en la memoria
“history -r” se usa para leer los comandos del historial desde ~/.bash_history a la memoria
Un archivo típico “~/.bashrc” con ajustes de configuración relacionados con el historial aparecen como a continuación:# controlan el tamaño de los comandos que se grabarán en la memoria
HISTSIZE=2000# controlan el tamaño de los comandos que se almacenarán en el archivo
HISTFILESIZE=10000

# ubicación del archivo físico donde se escriben los comandos
HISTFILE=/var/users/rjujare/.bash_history

#Formato para fines de grabación y visualización:inclusión de marca de tiempo
HISTTIMEFORMAT=’%F %T ‘

# ignorar comandos comunes como ls
HISTIGNORE=”ls:id:uname:clear:top”

# ignorar los comandos duplicados y los comandos que comienzan con espacio
HISTCONTROL=ignorar ambos
# agregar, no sobrescribir el historial
shopt -s histappend
PROMPT_COMMAND=”history -a; historia -c; historia -r”

¿Cómo guardar la configuración?

Abra el archivo ~/.bashrc con su editor favorito para cambiar la configuración. Cuando finalicen los cambios, guarde el archivo y salga. Para obtener el efecto de cambio, obtenga el archivo usando el comando 'fuente' de la siguiente manera:

$ source ~/.bashrc   

Conclusión

El proyectil Bash viene con muchas características útiles y una de ellas es la historia. Estas funciones mejoran en gran medida la productividad de los administradores y también de los usuarios habituales. ¡No olvides compartir tus propias experiencias con la historia!


Linux
  1. Cómo borrar el historial de Bash en Linux

  2. ¿Cómo aplicar la escritura anticipada a la búsqueda del historial de Bash (ctrl-r)?

  3. Usando el comando de suspensión de Linux en Bash Scripts

  4. Cómo deshabilitar la edición de mi historial en bash

  5. ¿Cómo ejecutar un comando varias veces, usando bash shell?

Cómo actualizar Ubuntu 16.04 LTS a 20.04 LTS usando la terminal de comandos

Comando para instalar Fish Shell en Ubuntu 20.04 LTS

Actualice Ubuntu 20.04 a 22.04 LTS Jammy usando Command o GUI

Cómo instalar TeamViewer en Ubuntu 20.04 LTS

Cómo instalar Wine en Ubuntu 22.04 LTS

Instalación de Fish Shell en Ubuntu en Windows 10