Dominar la historia de Bash - Facilita la tecnología

Dominar la historia de Bash – Facilita la tecnología

Bourne Again Shell, más conocido como bash, es el predeterminado para la mayoría de las distribuciones de Linux. Es extremadamente poderoso en lo que respecta a los shells de comando, y contiene todo tipo de ingeniosos trucos para aquellos que estén dispuestos a aprender. Una de las mejores características es, en mi opinión, el sistema de historial de comandos.

Hay muchas opciones para usar con el historial de bash, algunas de ellas las uso casi cada vez que abro un shell de comandos. Hoy cubriré algunos de los aspectos más útiles de la historia, pero ciertamente no podré cubrirlos todos.

Flechas arriba/abajo

Muchos de ustedes probablemente conocen este, pero para cualquiera que no lo sepa, le hará la vida mucho más fácil. Cada vez que esté en el shell de comandos, simplemente use las flechas hacia arriba y hacia abajo en su teclado para moverse a través de la lista de comandos ingresados ​​previamente. La próxima vez que ingrese un comando largo que resulte tener un error tipográfico, no tiene que volver a escribir todo, solo presione la flecha hacia arriba y realice las modificaciones necesarias.

!!

Una característica similar a la mencionada anteriormente es el doble golpe (!!). Esos caracteres ingresados ​​en el shell representan el último comando escrito. Digamos que está tratando de ejecutar un comando solo para descubrir que necesita privilegios de root para hacerlo. En lugar de volver a escribir todo el comando, simplemente puede ingresar

Bash sustituirá el !! para el comando anterior, como en el siguiente ejemplo.

bash-historia-bangbang

Esto también funciona más atrás, puedes hacer algo como

para recuperar el comando 5 entradas en el historial.

!(palabra)

Quizás hace unos días escribiste un comando largo y complejo en tu shell, por ejemplo, una serie de opciones para «wterm». Puede buscar y volver a ingresar ese comando utilizando la búsqueda integrada del historial. Simplemente agregue las primeras letras del comando después de ! y bash lo encontrará.

Ejemplo de !(palabra)

Ten cuidado con éste. Puede terminar ejecutando algo diferente de lo que esperaba. No use esto para comandos potencialmente peligrosos como «rm» o «fdisk».

!?(palabra)

Esto es similar a la última función en el sentido de que busca en el historial la palabra ingresada, pero a diferencia de !(palabra), encontrará la palabra en cualquier parte del comando, no solo al principio.

bash-history-bangquestion

Ten cuidado con éste. Puede terminar ejecutando algo diferente de lo que esperaba. No use esto para comandos potencialmente peligrosos como «rm» o «fdisk».

Ctrl-R

Esta puede ser mi herramienta de historia personal favorita. Es un poco como el !? elemento anterior, pero interactivo. En su shell de comandos, presione Ctrl-R y comenzará una búsqueda. A medida que escribe, bash buscará en el historial y le mostrará los resultados a medida que escribe. Cuando muestre el comando que desea, simplemente presione enter y ejecutará ese comando. Esto puede ser más seguro que cosas como !? porque puede ver cuál será el comando antes de ejecutarlo, por lo que no tiene que adivinar ni depender de la memoria.

Ejemplo de Ctrl-R en el shell

Búsqueda manual

Tal vez no le guste la forma en que funciona Ctrl-R, o quiera ver TODOS los comandos que escribió, o solo los que contienen una palabra en particular. El comando de historial le mostrará su historial de comandos completo, junto con el número de historial de cada comando (mantenga ese pensamiento, cubriremos esos números en un momento).

También puede especificar la cantidad de elementos que mostrará el comando de historial. Para ver las últimas 10 entradas en el historial, puede escribir

Para ver todas las entradas del historial que contienen una palabra en particular, puede usar grep para filtrar los resultados, como se muestra a continuación.

Ejemplo de uso de grep para filtrar la lista de historial

!(número)

Cuando utilice el comando de historial para ver su lista de historial de comandos, notará que cada elemento de la lista tiene un número asociado. Puede usarlo para recordar ese comando en particular. Por ejemplo, el elemento 87 podría ejecutarse nuevamente ingresando

en tu caparazón.

Reemplazo de palabras

Este es bastante bueno. ¿Cuántas veces has escrito un comando grande y largo solo para darte cuenta de que pusiste, digamos, hdd cuando querías hdc? Bueno bash te tiene cubierto. Puede reemplazar una palabra en el comando anterior con otra usando «^», como en el ejemplo a continuación

Ejemplo de sustitución de palabras con "^"

Administrar su historial

De forma predeterminada, el historial se guarda en ~/.bash_history. Puede manejar este archivo como mejor le parezca, pero hay algunas cosas útiles que podría intentar administrar automáticamente. Es decir, establecer las variables de entorno TAMAÑO HISTORICO y TAMAÑOARCHIVOHIST. Para establecer la cantidad de entradas que se pueden guardar en el archivo de historial en 1000, ingrese

en tu caparazón. Esto limitará el archivo a 1000 entradas. Si desea que este cambio sea permanente, coloque ese comando de exportación en su archivo .bashrc o .bash_profile.

Experto Geek - Tu Guía en Tendencias Tecnológicas