Já executou alguma vez um comando no Bash e obteve um erro devido a uma palavra mal escrita? Ou talvez tenha esquecido os últimos três comandos que 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, aprenderá como aproveitar o fc
para editar e reexecutar comandos do histórico de comandos. Após ler este guia, estará manejando o fc
como o guerreiro da linha de comando que deseja ser!
Pré-requisitos
Este artigo será um tutorial. Se planeja seguir passo a passo, precisa de um computador Linux ou um computador com Windows 10 com Windows Subsystem for Linux (WSL) ativado. Este tutorial utilizará o Ubuntu 20.04 LTS.
Sobre o Comando fc
do Bash
fc
não é uma aplicação Linux, mas uma utilidade interna na shell do Bash. O Bash está disponível na maioria das principais distribuições Linux. Com alguns toques no teclado, o comando fc
do Bash permite listar, editar ou executar 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
vai te poupar de ter que digitar o comando inteiro novamente. Em vez disso, o fc
permite que você edite o comando usando o editor de texto de sua escolha. Depois de salvar suas edições, o(s) comando(s) editado(s) serão executados automaticamente!
Pronto para experimentar o fc
? Vamos lá!
Listando Comandos Anteriores
Você se afastou do seu computador, voltou e esqueceu qual comando você executou por último? Ou talvez não lembre se executou vários comandos na sequência certa. O que fazer? Relaxa, o fc
vai te ajudar 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 construir um histórico de comandos para teste, copie cada comando abaixo e execute no seu terminal. Esses comandos não são intrusivos, e você não está colocando 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 apenas listar todos os comandos anteriores e não executá-los.
Como você pode ver abaixo, o comando fc
exibiu todos 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 digitar novamente o comando inteiro, por que não editar o comando 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ê vai intencionalmente errar o nome do aplicativo caffiene
.
Como resultado, a tentativa de instalação falha. Você receberá uma mensagem semelhante à abaixo.

2. Para corrigir o último comando que você executou, execute o comando abaixo no terminal. Isso abrirá o buffer do 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. Uma vez no editor de texto nano, corrija a ortografia do nome da aplicação de caffiene
para caffeine
.
4. Depois de corrigir o nome da aplicação, pressione CTRL+X
para sair do nano.
5. Na próxima solicitação perguntando se você deseja 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 apenas 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. 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 pedindo para Salvar buffer modificado?, pressione Y
—> Enter
para salvar as alterações.

Após salvar o comando e sair do editor de texto, o comando editado é executado automaticamente no shell.
Edição e Reexecução de Múltiplos Comandos
Se você acha que o fc
só pode editar e executar um comando anterior de cada vez, então está prestes a se surpreender. Por quê? O fc
também permite editar vários comandos anteriores! Como a edição de vários comandos anteriores é útil? Para começar, 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 as instruções 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
clear
.

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

Reexecutando um Comando Anterior sem Editar
Suponha que você só 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 especificada 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 tome nota do 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 no histórico de comandos.

Conclusão
Este artigo teve como objetivo despertar seu interesse por um comando útil, mas muitas vezes ignorado e 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 reescrever comandos no shell? Faça uma escolha sábia!