Você já executou um comando no Bash e obteve um erro por causa de uma palavra mal escrita? Ou talvez tenha esquecido os últimos três comandos que você executou? Em vez de reescrever ou lembrar comandos anteriores, o comando Bash fc
pode ajudar a fazer edições rápidas e reexecutar comandos anteriores.
Neste artigo, você aprenderá como aproveitar o fc
para editar e reexecutar comandos do seu histórico de comandos. Depois de ler este guia, você estará dominando o fc
como o guerreiro da linha de comando que deseja ser!
Pré-requisitos
Este artigo será um tutorial. Se você planeja seguir passo a passo, você precisa de um computador Linux ou um computador com Windows 10 com Windows Subsystem for Linux (WSL) ativado. Este tutorial usará Ubuntu 20.04 LTS.
Sobre o comando Bash fc
fc
não é um aplicativo Linux, mas um utilitário de shell integrado no Bash. O Bash está disponível na maioria das principais distribuições Linux. Com alguns toques de tecla, o comando Bash fc
permite que você liste, edite ou execute comandos anteriores.
O comando
fc
também está disponível no Z Shell (ZSH).
Você executou um comando longo que acabou sendo incorreto? O fc
irá poupar você de digitar o comando inteiro novamente. Em vez disso, o fc
permite que você edite o comando usando o editor de texto de sua escolha. Após salvar as edições, o(s) comando(s) editado(s) serão executados automaticamente!
Pronto para testar o fc
? Vamos lá!
Listando Comandos Anteriores
Já se afastou do seu computador, voltou e esqueceu qual comando você executou por último? Ou talvez não se lembre se executou vários comandos na sequência correta. O que fazer? Relaxe, o fc
irá ajudar você a lembrar. Veja como.
1. Abra um terminal Bash no seu computador.
2. Para que o fc
seja útil, ele deve ter algum tipo de histórico de comandos para trabalhar. Como você acabou de abrir uma nova janela de terminal, pode ser que ainda não haja um histórico de comandos. Para criar um histórico de comandos para teste, copie cada comando abaixo e execute no seu terminal. Esses comandos não são intrusivos e não colocam seu computador em perigo.
3. Em seguida, liste todos os comandos no histórico executando o comando abaixo. A opção -l
instrui o fc
a listar apenas todos os comandos anteriores sem executá-los.
Como você pode ver abaixo, o comando fc
exibiu os quatro comandos que você emitiu anteriormente. Os números à esquerda indicam a ordem em que você executou cada comando.

Edição e Reexecução do Último Comando
Imagine uma situação em que você está instalando um aplicativo e cometeu um erro de digitação. Como resultado, o comando falha. Em vez de reescrever o comando inteiro, por que não editá-lo e reexecutá-lo automaticamente? Para fazer isso, siga estas etapas.
1. Simule a instalação de um aplicativo inexistente executando o comando abaixo no seu terminal. Observe que você irá intencionalmente errar o nome do aplicativo caffiene
.
Como resultado, a instalação tentada falhará. Você receberá uma mensagem semelhante à mostrada abaixo.

2. Para corrigir o último comando que você executou, execute o comando abaixo no terminal. Isso abrirá o buffer de histórico de comandos no editor de texto padrão. Neste exemplo, o editor de texto padrão é nano.
A captura de tela abaixo mostra o último comando dentro do editor nano.

Se o nano não é o seu editor de texto preferido, você pode instruir o
fc
a usar um editor diferente, como o vi. Para fazer isso, inclua a opção-e
seguida pelo nome do editor de texto. Por exemplo,fc -e vi
abrirá o histórico de comandos no editor de texto vi.
3. Depois de entrar no editor de texto nano, corrija a grafia do nome da aplicação de caffiene
para caffeine
.
4. Após corrigir o nome da aplicação, pressione CTRL+X
para sair do nano.
5. Na próxima solicitação que pedir para Salvar buffer modificado?, pressione Y
—> Enter
para salvar as alterações.

Imediatamente após sair do editor de texto, o fc
executa automaticamente o comando que você editou.

Editando e Reexecutando um Comando Anterior
Com o fc
, não só você pode editar o último comando que executou, mas também pode editar qualquer um dos comandos anteriores que executou. Por exemplo, para editar o comando echo 'trabalhando na linha de comando com fc'
, siga estas etapas.
1. Liste o comando anterior no terminal executando o comando abaixo.
2. Encontre o comando que deseja editar na lista de histórico de comandos e anote o número à esquerda dele. Neste exemplo, o número do comando é 2.

3. Para editar o comando com o número de entrada 2, execute o comando abaixo no terminal. O comando será aberto no editor de texto para edição.
4. Uma vez no editor de texto, agora edite o comando conforme necessário.
5. Após editar o comando, pressione CTRL+X
para sair do nano.
6. Na próxima solicitação que pedir para você Salvar buffer modificado?, pressione Y
—> Enter
para salvar as alterações.

Após salvar o comando e sair do editor de texto, o comando que você editou será executado automaticamente no shell.
Edição e Reexecução de Múltiplos Comandos
Se você pensa que o fc
só pode editar e executar um comando anterior por vez, então está prestes a ter uma surpresa. Por quê? O fc
permite que você edite vários comandos anteriores também! Como é útil editar vários comandos anteriores? Por um lado, você pode alterar a ordem de execução dos comandos.
Suponha que você queira editar os comandos anteriores de 2 a 7. Para fazer isso, siga os passos abaixo.
1. Execute o comando abaixo no seu terminal Bash e pressione Enter. O comando abaixo é lido como fc <espaço> 2 <espaço> 7
, o que significa que o fc
abrirá os comandos de 2 a 7 para edição.
2. Em seguida, edite os comandos conforme necessário. Para este exemplo:
- Exclua o comando
sudo apt install caffiene -y
. - Inverta a ordem de
uname -a
eps aux
. - Exclua o
clear
.

3. Após editar os comandos, pressione CTRL+X
para sair do nano.
4. Na próxima solicitação que perguntar se deseja Salvar buffer modificado?, pressione Y
—> Enter
para salvar as alterações.
As instruções que você editou serão executadas automaticamente após sair do editor de texto.

Reexecutando um Comando Anterior Sem Edição
Suponha que você precise executar um comando anterior sem editar primeiro. fc
tem uma opção para isso. Siga as etapas abaixo para executar um comando anterior a partir de uma entrada específica no histórico.
- Liste o comando anterior no terminal executando o comando abaixo.
2. Na lista de histórico de comandos, encontre o comando que deseja executar novamente e anote o número à sua esquerda. Neste exemplo, o número do comando é 2.

3. Para executar o comando anterior específico, execute o comando abaixo no shell. A opção -s
instrui o fc
a pular a edição e continuar a executar o comando número 2.
A captura de tela abaixo mostra o fc
executando o comando número 2 a partir do histórico de comandos.

Conclusão
Este artigo buscou despertar seu interesse por um comando útil, mas muitas vezes esquecido, chamado fc
. Você aprendeu como usar o fc
para evitar reescrever comandos previamente executados, o que pode ser uma perda de tempo.
Com o conhecimento que você agora possui sobre o fc
, é algo que você acha que usaria? Ou ainda prefere digitar os comandos no shell? Faça uma escolha sábia!