Dominando la historia de Bash

El Bourne Again Shell , mejor conocido como bash , es el valor por defecto para la mayoría de las distribuciones de Linux. Es extremadamente poderoso en lo que respecta a los shells de comandos, y contiene todo tipo de trucos ingeniosos para aquellos que quieran 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 bash, algunas de ellas las uso casi cada vez que abro un shell de comandos. Hoy estaré cubriendo algunos de los aspectos más útiles de la historia, pero ciertamente no podré cubrirlos todos.

Flechas arriba/abajo

Muchos de ustedes probablemente conozcan esta, pero para cualquiera que no la conozca, hará su vida mucho más fácil. Cada vez que se encuentre en el intérprete de comandos, simplemente utilice las flechas arriba y abajo del teclado para desplazarse por la lista de comandos introducidos anteriormente. La próxima vez que introduzcas un comando largo que resulte tener un error tipográfico, no tienes que volver a escribirlo todo, simplemente presiona la flecha hacia arriba y haz las modificaciones que sean necesarias.

!!

Una característica similar a la anterior es el doble bang (!!!). Los caracteres introducidos en el shell representan el último comando escrito. Supongamos que está intentando ejecutar un comando sólo para descubrir que necesita privilegios de root para hacerlo. En lugar de volver a escribir todo el comando, puede simplemente introducir

sudo! <

Bash sustituirá el!! por el comando anterior, como en el ejemplo de abajo.

Dominando la historia de Bash

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

!-5

>!

para recuperar las 5 entradas del comando en el historial.

!(palabra)

Quizás hace unos días usted escribió un comando largo y complejo en su shell, por ejemplo una serie de opciones para «wterm». Usted puede encontrar y volver a entrar en el comando usando el historial de búsqueda construido. Simplemente añada las primeras letras del comando después del! y bash lo encontrará.

Dominando la historia de Bash

Ten cuidado con este. Es posible que termine ejecutando algo distinto de lo que esperaba. No use esto para comandos potencialmente peligrosos como «rm» o «fdisk».

(palabra)

Esto es similar a la última característica en que busca en el historial la palabra introducida, pero a diferencia de !(word), ésta encontrará la palabra en cualquier parte del comando, no sólo en el principio.

Dominando la historia de Bash

Ten cuidado con este. Es posible que termine ejecutando algo distinto de lo que esperaba. No use esto para comandos potencialmente peligrosos como «rm» o «fdisk».

Ctrl-R

Esta puede ser mi herramienta favorita de historia. Es un poco como el !? , pero interactivo. En el shell de su comando, presione Ctrl-R , y comenzará una búsqueda. A medida que escribes, bash buscará en el historial y te mostrará los resultados a medida que escribes. Cuando muestre el comando que usted 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 o confiar en la memoria.

Dominando la historia de Bash

Búsqueda manual

Tal vez no te guste la forma en que funciona Ctrl-R, o quieres ver TODOS los comandos que has escrito, o sólo los que contienen una palabra en particular. El comando history 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 el número de elementos que mostrará el comando history . Para ver las últimas 10 entradas en el historial, puede escribir

historia 10

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.

Dominando la historia de Bash

!(número)

Cuando utilice el comando history para ver su lista de historial de comandos, notará que cada elemento de la lista tiene un número asociado. Puedes usar eso para recordar ese comando en particular. Por ejemplo, el ítem 87 podría ejecutarse de nuevo introduciendo

!87

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>»»»>>>>>>>>>>>>»»>>>>>>>>>>»»>>>>>>»»>>>>>>»»>>>»>.

en tu caparazón.

Reemplazo de palabras

Este es bastante bueno. ¿Cuántas veces has escrito un gran comando largo sólo para darte cuenta de que pusiste, digamos, hdd cuando quisiste hdc ? Bueno, la golpiza te tiene cubierto. Puede reemplazar una palabra del comando anterior por otra usando «^», como en el ejemplo siguiente

Dominando la historia de Bash

Administración de su historial

Por defecto, el historial se guarda en ~/.bash_history. Puede tratar este archivo de la forma que considere adecuada, pero hay algunas cosas útiles que puede intentar gestionar de forma automática. Es decir, establecer las variables de entorno HISTSIZE y HISTFILESIZE . Para establecer el número de entradas que se pueden guardar en el archivo histórico en 1000, introduzca

export HISTFILESIZE=1000

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *