¿Alguna vez has ejecutado un comando en Bash y has obtenido un error debido a una palabra mal escrita? ¿O tal vez olvidaste los últimos tres comandos que ejecutaste? En lugar de volver a escribir o recordar los comandos anteriores, el comando Bash fc
puede ayudarte a hacer ediciones rápidas y volver a ejecutar comandos anteriores.
En este artículo, aprenderás cómo aprovechar fc
para editar y volver a ejecutar comandos de tu historial de comandos. Después de leer esta guía, estarás utilizando fc
como el guerrero de la línea de comandos que deseas ser.
Prerrequisitos
Este artículo será un tutorial. Si planeas seguirlo paso a paso, necesitas una computadora con Linux o una computadora con Windows 10 con Windows Subsystem for Linux (WSL) habilitado. Este tutorial utilizará Ubuntu 20.04 LTS.
Acerca del comando fc
en Bash
fc
no es una aplicación de Linux, sino una utilidad interna de la shell en Bash. Bash está disponible en la mayoría de las principales distribuciones de Linux. Con unos pocos golpes de teclado, el comando fc
en Bash te permite listar, editar o ejecutar comandos anteriores.
El comando
fc
también está disponible en Shell Z (ZSH). Pero el ejemplo en este artículo usaráfc
en Bash.
¿Ejecutaste un comando largo que resultó ser incorrecto? fc
te ahorrará tener que volver a escribir todo el comando. En cambio, fc
te permite editar el comando usando el editor de texto de tu elección. ¡Después de guardar tus ediciones, el comando editado se ejecutará automáticamente!
¿Listo para probar fc
? ¡Vamos a sumergirnos!
Listando Comandos Anteriores
¿Te alejaste de tu computadora, volviste y olvidaste qué comando ejecutaste por última vez? O tal vez no recuerdas si has ejecutado múltiples comandos en la secuencia correcta. ¿Qué haces? Relájate, fc
te ayudará a recordar. Así es cómo.
1. Abre una terminal de Bash en tu computadora.
2. Para que fc
sea útil, debe tener algún tipo de historial de comandos con el que trabajar. Dado que acabas de abrir una nueva ventana de terminal, es posible que aún no haya un historial de comandos. Para construir un historial de comandos para probar, copia cada comando a continuación y ejecútalo en tu terminal. Estos comandos no son intrusivos y no estás poniendo en peligro tu computadora.
3. A continuación, enumera todos los comandos en el historial ejecutando el siguiente comando. La opción -l
instruye a fc
a solo listar todos los comandos anteriores y no ejecutarlos.
Como puedes ver a continuación, el comando fc
mostró los cuatro comandos que emitiste anteriormente. Los números a la izquierda indican el orden en que ejecutaste cada comando.

Edición y Re-ejecución del Último Comando
Imagina una situación donde estás instalando una aplicación, y cometiste un error de ortografía. Como resultado, el comando falla. En lugar de volver a escribir todo el comando, ¿por qué no editarlo y volver a ejecutarlo automáticamente? Para hacerlo, sigue estos pasos.
1. Simula la instalación de una aplicación que no existe ejecutando el siguiente comando en tu terminal. Observa que intencionalmente escribirás mal el nombre de la aplicación caffiene
.
Como resultado, la instalación intentada fallará. Obtendrás un mensaje similar al siguiente.

2. Para corregir el último comando que ejecutaste, ejecuta el siguiente comando en la terminal. Al hacerlo, se abrirá el búfer de historial de comandos en el editor de texto predeterminado. En este ejemplo, el editor de texto predeterminado es nano.
La captura de pantalla a continuación muestra el último comando dentro del editor nano.

Si nano no es tu editor de texto preferido, puedes instruir a
fc
para que utilice un editor diferente, como vi. Para hacerlo, incluye la opción-e
seguida del nombre del editor de texto. Por ejemplo,fc -e vi
abrirá el historial de comandos en el editor de texto vi.
3. Una vez que estés en el editor de texto nano, corrige la ortografía del nombre de la aplicación de caffiene
a caffeine
.
4. Después de corregir el nombre de la aplicación, presiona CTRL+X
para salir de nano.
5. En el próximo aviso que te pida ¿Guardar el búfer modificado?, presiona Y
—> Enter
para guardar los cambios.

Justo después de salir del editor de texto, fc
ejecuta automáticamente el comando que editaste.

Editar y Volver a Ejecutar un Comando Anterior
Con fc
, no solo puedes editar el último comando que has ejecutado, sino que puedes editar cualquiera de los comandos anteriores que hayas ejecutado. Por ejemplo, para editar el comando echo 'trabajando en la línea de comandos con fc'
, sigue estos pasos.
1. Lista el comando anterior en el terminal ejecutando el siguiente comando.
2. Encuentra el comando que deseas editar en la lista de historial de comandos y toma nota del número a su izquierda. En este ejemplo, el número de comando es 2.

3. Para editar el comando con el número de entrada 2, ejecuta el siguiente comando en el terminal. El comando se abrirá en el editor de texto para su edición.
4. Una vez en el editor de texto, ahora edita el comando según sea necesario.
5. Después de editar el comando, presiona CTRL+X
para salir de nano.
6. En el próximo indicador que te pregunte ¿Guardar el búfer modificado?, presiona Y
—> Enter
para guardar los cambios.

Después de guardar el comando y salir del editor de texto, el comando editado se ejecutará automáticamente en la terminal.
Edición y Reejecución de Múltiples Comandos
Si piensas que fc
solo puede editar y ejecutar un comando anterior a la vez, ¡te llevarás una sorpresa! ¿Por qué? fc
te permite editar varios comandos anteriores también. ¿Cómo es útil editar varios comandos anteriores? Por un lado, puedes cambiar el orden de ejecución de los comandos.
Supongamos que deseas editar los comandos anteriores del número 2 al 7. Para hacerlo, sigue estos pasos.
1. Ejecuta el siguiente comando en tu terminal Bash y presiona Enter. El comando siguiente se lee como fc <space> 2 <space> 7
, lo que significa que fc
abrirá los comandos del 2 al 7 para editar.
2. Luego, edita los comandos según sea necesario. Para este ejemplo:
- Elimina el comando
sudo apt install caffiene -y
. - Intercambia el orden de
uname -a
yps aux
. - Elimina
clear
.

3. Después de editar los comandos, presiona CTRL+X
para salir de nano.
4. En el próximo indicador que te pregunte ¿Guardar el búfer modificado?, presiona Y
—> Enter
para guardar los cambios.
Las órdenes que editaste se ejecutarán automáticamente después de salir del editor de texto.

Volver a Ejecutar un Comando Anterior sin Editar
Supongamos que solo necesitas ejecutar un comando anterior sin editarlo primero. fc
tiene una opción para eso. Sigue los pasos a continuación para ejecutar un comando anterior desde una entrada especificada en el historial.
- Enumera el comando anterior en la terminal ejecutando el comando a continuación.
2. En la lista de historial de comandos, encuentra el comando que deseas ejecutar nuevamente y toma nota del número a su izquierda. En este ejemplo, el número de comando es 2.

3. Para ejecutar el comando anterior específico, ejecuta el siguiente comando en la terminal. La opción -s
instruye a fc
a omitir la edición y continuar ejecutando el comando número 2.
La captura de pantalla a continuación muestra que fc ejecutó el comando número 2 del historial de comandos.

Conclusión
Este artículo tiene como objetivo despertar tu interés en un comando útil pero a menudo pasado por alto y olvidado llamado fc
. Aprendiste cómo usar fc
para evitar volver a escribir comandos previamente ejecutados, lo cual puede ser una pérdida de tiempo.
Con el conocimiento que ahora tienes sobre fc
, ¿es algo que crees que usarías? ¿O seguirás prefiriendo volver a escribir comandos en la terminal? ¡Haz una elección sabia!