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
$ 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!