Hai mai eseguito un comando in Bash e ricevuto un errore a causa di una parola errata? O forse hai dimenticato gli ultimi tre comandi eseguiti? Invece di riscrivere o ricordare i comandi precedenti, il comando Bash fc
può aiutarti a modificare rapidamente ed eseguire nuovamente i comandi precedenti.
In questo articolo, imparerai come sfruttare fc
per modificare e rieseguire comandi dalla cronologia dei comandi. Dopo aver letto questa guida, sarai un abile guerriero della riga di comando con fc
!
Prerequisiti
Questo articolo sarà un tutorial. Se prevedi di seguire passo dopo passo, hai bisogno di un computer Linux o di un computer con Windows 10 con Windows Subsystem for Linux (WSL) abilitato. Questo tutorial utilizzerà Ubuntu 20.04 LTS.
Informazioni sul comando fc
di Bash
fc
non è un’applicazione Linux ma un’utilità shell integrata in Bash. Bash è disponibile nella maggior parte delle principali distribuzioni Linux. Con pochi tasti, il comando fc
di Bash ti consente di elencare, modificare o eseguire comandi precedenti.
Il comando
fc
è disponibile anche in Z Shell (ZSH). Ma l’esempio in questo articolo useràfc
in Bash.
Hai eseguito un comando lungo che si è rivelato errato? fc
ti salverà dal doverlo ridigitare per intero. Invece, fc
ti consente di modificare il comando utilizzando l’editor di testo di tua scelta. Dopo aver salvato le modifiche, il/i comando/i modificato/i verranno eseguiti automaticamente!
Pronto per provare fc
? Diamo un’occhiata!
Elenco dei comandi precedenti
Ti sei allontanato dal tuo computer, sei tornato e hai dimenticato quale comando hai eseguito per ultimo? O forse non ricordi se hai eseguito più comandi nella sequenza corretta. Cosa fai? Stai tranquillo, fc
ti aiuterà a ricordare. Ecco come.
1. Apri un terminale Bash sul tuo computer.
2. Perché fc
sia utile, deve avere una sorta di cronologia dei comandi con cui lavorare. Poiché hai appena aperto una nuova finestra del terminale, potrebbe non esserci ancora una cronologia dei comandi. Per creare una cronologia dei comandi per i test, copia ogni comando di seguito ed eseguilo nel tuo terminale. Questi comandi non sono invasivi e non mettono il tuo computer in pericolo.
3. Successivamente, elenca tutti i comandi nella cronologia eseguendo il comando qui sotto. L’opzione -l
istruisce fc
a elencare solo tutti i comandi precedenti e non eseguirli.
Come puoi vedere qui sotto, il comando fc
ha visualizzato tutti e quattro i comandi che hai precedentemente emesso. I numeri a sinistra indicano l’ordine in cui hai eseguito ciascun comando.

Modifica e Riesecuzione dell’Ultimo Comando
Immagina una situazione in cui stai installando un’applicazione e hai commesso un errore di ortografia. Di conseguenza, il comando fallisce. Invece di riscrivere l’intero comando, perché non modificare il comando e rieseguirlo automaticamente? Per farlo, segui questi passaggi.
1. Simula l’installazione di un’applicazione inesistente eseguendo il comando qui sotto nel tuo terminale. Nota che intenzionalmente sbaglierai l’ortografia del nome dell’applicazione caffiene
.
Come risultato, l’installazione tentata fallisce. Riceverai un messaggio simile a quello qui sotto.

2. Per correggere l’ultimo comando che hai eseguito, esegui il comando qui sotto nel terminale. In questo modo verrà aperto il buffer della cronologia dei comandi nell’editor di testo predefinito. In questo esempio, l’editor di testo predefinito è nano.
Lo screenshot qui sotto mostra l’ultimo comando all’interno dell’editor nano.

Se nano non è il tuo editor di testo preferito, puoi istruire
fc
a utilizzare un altro editor, come vi. Per farlo, includi l’opzione-e
seguita dal nome dell’editor di testo. Ad esempio,fc -e vi
aprirà la cronologia dei comandi nell’editor di testo vi.
3. Una volta dentro l’editor di testo nano, correggi l’ortografia del nome dell’applicazione da caffiene
a caffeine
.
4. Dopo aver corretto il nome dell’applicazione, premi CTRL+X
per uscire da nano.
5. Alla successiva richiesta di salvare il buffer modificato, premi Y
—> Invio
per salvare le modifiche.

Immediatamente dopo aver chiuso l’editor di testo, fc
esegue automaticamente il comando che hai modificato.

Modifica e Riesecuzione di un Comando Precedente
Con fc
, non solo puoi modificare l’ultimo comando eseguito, ma puoi modificare anche qualunque dei comandi precedenti eseguiti. Ad esempio, per modificare il comando echo 'working on the command line with fc'
, segui questi passaggi.
1. Elenca il comando precedente nel terminale eseguendo il comando seguente.
2. Trova il comando che desideri modificare dall’elenco della cronologia dei comandi e prendi nota del numero alla sua sinistra. In questo esempio, il numero del comando è 2.

3. Per modificare il comando con il numero di ingresso 2, esegui il comando seguente nel terminale. Il comando si aprirà nell’editor di testo per la modifica.
4. Una volta nel editor di testo, modifica il comando come necessario.
5. Dopo aver modificato il comando, premi CTRL+X
per uscire da nano.
6. Alla successiva richiesta di salvataggio del buffer modificato, premi Y
—> Invio
per salvare le modifiche.

Dopo aver salvato il comando ed essere uscito dall’editor di testo, il comando modificato viene eseguito automaticamente nella shell.
Modifica e Ri-Esecuzione di Più Comandi
Se pensi che fc
possa modificare ed eseguire solo un comando precedente alla volta, allora ti aspetta una sorpresa. Perché? fc
ti consente di modificare anche più comandi precedenti! In che modo è utile modificare più comandi precedenti? Per esempio, puoi cambiare l’ordine di esecuzione dei comandi.
Supponiamo che tu voglia modificare i comandi precedenti dal numero 2 al 7. Per farlo, procedi come segue.
1. Esegui il comando seguente nel tuo terminale Bash e premi Invio. Il comando seguente si legge come fc <spazio> 2 <spazio> 7
, il che significa che fc
aprirà i comandi dal 2 al 7 per la modifica.
2. Successivamente, modifica i comandi come necessario. Per questo esempio:
- Elimina il comando
sudo apt install caffiene -y
. - Scambia l’ordine di
uname -a
eps aux
. - Elimina
clear
.

3. Dopo aver modificato i comandi, premi CTRL+X
per uscire da nano.
4. Alla successiva richiesta di salvataggio del buffer modificato, premi Y
—> Invio
per salvare le modifiche.
I comandi che hai modificato verranno eseguiti automaticamente dopo aver uscito dall’editor di testo.

Riesecuzione di un Comando Precedente Senza Modifiche
Supponiamo che tu debba eseguire solo un comando precedente senza modificarlo prima. fc
ha un’opzione per questo. Segui i passaggi seguenti per eseguire un comando precedente da una voce specifica nella cronologia.
- Elenca il comando precedente nel terminale eseguendo il comando qui sotto.
2. Dalla lista della cronologia dei comandi, trova il comando che desideri eseguire nuovamente e prendi nota del numero alla sua sinistra. In questo esempio, il numero del comando è 2.

3. Per eseguire il comando precedente specifico, esegui il comando qui sotto nella shell. L’opzione -s
istruisce fc
di saltare la modifica e continuare ad eseguire il comando numero 2.
La schermata sottostante mostra fc che ha eseguito il comando numero 2 dalla cronologia dei comandi.

Conclusione
Questo articolo ha lo scopo di suscitare il tuo interesse per un comando utile ma spesso trascurato e dimenticato chiamato fc
. Hai imparato come utilizzare fc
per evitare di ridigitare comandi precedentemente eseguiti, il che può essere uno spreco di tempo.
Con la conoscenza che hai ora su fc
, pensi che lo useresti? O preferirai ancora ridigitare i comandi nella shell? Fai una scelta saggia!