Ricerca nel sito web

Comando Bash fc: maneggia facilmente la shell Bash come un professionista


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 che hai eseguito? Invece di riscrivere o ricordare i comandi precedenti, il comando Bash fc può aiutare a apportare modifiche rapide e rieseguire i comandi precedenti.

In questo articolo imparerai come sfruttare fc per modificare e rieseguire i comandi dalla cronologia dei comandi. Dopo aver letto questa guida, utilizzerai fc come il guerriero della riga di comando che vuoi essere!

Prerequisiti

Questo articolo sarà un tutorial. Se intendi seguire passo dopo passo, è necessario un computer Linux o un computer Windows 10 con il sottosistema Windows per Linux (WSL) abilitato. Questo tutorial utilizzerà Ubuntu 20.04 LTS.

Informazioni sul comando fc di Bash

fc non è un'applicazione Linux ma un'utilità di shell incorporata in Bash. Bash è disponibile nella maggior parte delle principali distribuzioni Linux. Con pochi tasti, il comando Bash fc ti consente di elencare, modificare o eseguire comandi precedenti.

Il comando fc è disponibile anche in Z Shell (ZSH). Ma l'esempio in questo articolo utilizzerà fc in Bash.

Hai eseguito un comando lungo che si è rivelato sbagliato? fc ti eviterà di dover riscrivere l'intero comando. Invece, fc ti consente di modificare il comando utilizzando l'editor di testo di tua scelta. Dopo aver salvato le modifiche, i comandi modificati verranno eseguiti automaticamente!

Pronti a fare un giro con fc? Immergiamoci!

Elenco dei comandi precedenti

Ti sei allontanato dal computer, sei tornato e hai dimenticato quale comando hai eseguito per ultimo? O forse non ricordi se hai eseguito più comandi nella giusta sequenza. Cosa fai? Rilassati, fc ti aiuterà a ricordare. Ecco come.

1. Apri un terminale Bash sul tuo computer.

2. Affinché fc sia utile, deve avere una sorta di cronologia dei comandi con cui lavorare. Dato che hai appena aperto una nuova finestra di terminale, potrebbe non esserci ancora una cronologia dei comandi. Per creare una cronologia dei comandi a scopo di test, copia ciascun comando di seguito ed eseguilo nel tuo terminale. Questi comandi non sono invasivi e non mettono in pericolo il tuo computer.

# Clear the screen
 clear
 
# print a string to the terminal session
 echo 'working on the command line with fc'
 
# show some system information
 uname -a
 
# use PS command to get process information
 ps aux

3. Successivamente, elenca tutti i comandi nella cronologia eseguendo il comando seguente. L'opzione -l indica a fc di elencare solo tutti i comandi precedenti e di non eseguirli.

fc -l

Come puoi vedere di seguito, il comando fc mostra tutti e quattro i comandi che hai eseguito in precedenza. 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 fare ciò, segui questi passaggi.

1. Simulare l'installazione di un'applicazione inesistente eseguendo il comando seguente nel terminale. Tieni presente che scriverai intenzionalmente in modo errato il nome dell'applicazione caffiene.

sudo apt install caffiene -y

Di conseguenza, il tentativo di installazione fallisce. Riceverai un messaggio simile a quello qui sotto.

2. Per correggere l'ultimo comando eseguito, esegui il comando seguente nel terminale. In questo modo si aprirà il buffer della cronologia dei comandi nell'editor di testo predefinito. In questo esempio, l'editor di testo predefinito è nano.

fc

Lo screenshot seguente mostra l'ultimo comando all'interno dell'editor nano.

Se nano non è il tuo editor di testo preferito, puoi indicare a fc di utilizzare un editor diverso, come vi. Per fare ciò, 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 entrato nell'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 richiesta successiva che ti chiede Salvare buffer modificato?, premi Y —> Invio per salvare le modifiche.

Immediatamente dopo essere uscito dall'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 che hai eseguito, ma puoi modificare qualsiasi comando eseguito in precedenza. Ad esempio, per modificare il comando echo 'lavorare sulla riga di comando con fc', segui questi passaggi.

1. Elenca il comando precedente nel terminale eseguendo il comando seguente.

fc -l

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 voce 2, eseguire il comando seguente nel terminale. Il comando si aprirà nell'editor di testo per la modifica.

fc 2

4. Una volta nell'editor di testo, ora modifica il comando secondo necessità.

5. Dopo aver modificato il comando, premi CTRL+X per uscire da nano.

6. Alla richiesta successiva che ti chiede Salvare buffer modificato?, premi Y —> Invio per salvare le modifiche.

Dopo aver salvato il comando ed essere usciti dall'editor di testo, il comando che hai modificato viene eseguito automaticamente nella shell.

Modifica e riesecuzione di più comandi

Se pensi che fc possa modificare ed eseguire solo un comando precedente alla volta, allora sei pronto per una sorpresa. Perché? fc ti consente anche di modificare più comandi precedenti! In che modo è utile modificare più comandi precedenti? Per prima cosa, puoi modificare l'ordine di esecuzione dei comandi.

Supponiamo di voler modificare i numeri di comando precedenti da 2 a 7. Per fare ciò, procedere come segue.

1. Esegui il comando seguente nel terminale Bash e premi Invio. Il comando seguente si legge come fc 2 7, il che significa che fc aprirà i comandi da 2 a 7 per la modifica.

fc 2 7

2. Successivamente, modifica i comandi secondo necessità. Per questo esempio:

  • Elimina il comando sudo apt install caffiene -y.
  • Scambia l'ordine di uname -a e ps aux.
  • Elimina cancella.

3. Dopo aver modificato i comandi, premi CTRL+X per uscire da nano.

4. Alla richiesta successiva che ti chiede Salvare buffer modificato?, premi Y —> Invio per salvare le modifiche.

I comandi che hai modificato verranno eseguiti automaticamente dopo essere usciti dall'editor di testo.

Rieseguire un comando precedente senza modificarlo

Supponiamo che tu debba solo eseguire un comando precedente senza prima modificarlo. fc ha un'opzione per questo. Seguire i passaggi seguenti per eseguire un comando precedente da una voce specificata nella cronologia.

  1. Elenca il comando precedente nel terminale eseguendo il comando seguente.
fc -l

2. Dall'elenco della cronologia dei comandi, trova il comando che desideri eseguire di nuovo 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 seguente nella shell. L'opzione -s indica a fc di saltare la modifica e continuare a eseguire il comando numero 2.

fc -s 2

Lo screenshot seguente mostra il comando numero 2 eseguito da fc dalla cronologia dei comandi.

Conclusione

Questo articolo si propone di stuzzicare il tuo interesse per un comando utile ma spesso mancato e dimenticato chiamato fc. Hai imparato come usare fc per evitare di riscrivere comandi eseguiti in precedenza, il che può essere una perdita di tempo.

Con la conoscenza che hai ora di fc, pensi che utilizzeresti qualcosa? Oppure preferiresti comunque riscrivere i comandi nella shell? Fai una scelta saggia!

Articoli correlati