Reutilización de comandos en bash con history y fc.
history
Bash mantiene un registro de todos los comandos que ejecutas en una terminal y los guarda al final de cada sesión en tu fichero personal .bash_history
Con toda seguridad ya has usado este registro al recuperar comandos anteriormente tipeados al apretar la flecha de cursor hacia arriba. Pero hay mucho más.
Para ver estos comandos usa el comando history:
1 | history |
en tu fichero .bashrc puedes configurar como funciona history
1 2 3 4 5 6 7 8 9 10 11 12 | # guardar últimos 3000 comandos export HISTFILESIZE=3000 # no guardar comandos duplicados en todos los terminales abiertos export HISTCONTROL=ignoreboth # alias para listar comandos ingresando parte de este # ej: hist ssh lista todos las sesiones ssh que has hecho alias hist='history | grep $1' # no guardar ciertos comandos declare -x HISTIGNORE='ls:ll:ps -A' |
fc
fc es la abreviación de “fix command”. Viene de la antigüedad y la idea es que te permite modificar en un editor alguno de los útimos comandos que hayas usado. Usa help para saber más de él aunque yo pienso que su única utilidad en la actualidad es que es más corto que escribir history y sólo lista los últimos. Para ello úsalo con el modificador -l.
1 2 3 4 5 6 7 8 | # ayuda sobre fc help fc # listar últimos comandos fc -l # editar comando n fc n (con n siendo el número del comando listado) |
Este comando tiene una particularidad que puede ser muy peligrosa (por lo inesperado) o emocionante (si eso es posible) y es que el comando editado se ejecutará automáticamente al salir del editor. En verdad esto puede ser resultar emocionante si logras usarlo en un script.
Finalmente de que valdría sólo poder ver los comandos que has usado pero de lejos, sin poder tocarlos.
1 2 3 4 5 | # ejecuta el comando n !n # ejecuta el úlitmo comando que empiece con com... !com... |
Ejemplo de uso del comando “!”
Algunos atajos!
Adquirir estas habilidades harán mucho más agradables tus sesiones obligadas con el terminal, como por ejemplo al usar SSH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # ir al primer comando en history [ALT] + < # cancelar cambios a la actual linea [ALT] + r # (reverse-i-search) [CTRL] + r + (tipea un comando anteriormente ingresado) # estos son fantasticos: # moverse por el último argumento de comandos anteriores [ALT] + . [ALT] + _ # por ejemplo aqui escribimos un argumento bastante largo mkdir /var/www/html/wordpress/wp-content/plugins/nuevo-directorio # si hacemos cd [ALT] + . # completará a: cd /var/www/html/wordpress/wp-content/plugins/nuevo-directorio |
Puedes encontrar más atajos como estos usa el manual online de bash
1 2 3 | man bash # para ubicar info relativa a history # tipea /history [ENTER] |
2 comentarios
RSS feed para comentarios en este post
TrackBack URL






Copeopefe:
Thank you!
Surfeando con
Unknown sobre
Unknown
NomikOS:
You are welcome…
Surfeando con
Unknown sobre
Unknown