GNU/Linux >> Linux Esercitazione >  >> Linux

Il tutorial del comando fc con esempi per principianti

Il FC comando, abbreviazione di f ix c ommands, è un comando integrato nella shell utilizzato per elencare, modificare e rieseguire i comandi inseriti più di recente in una shell interattiva. Puoi modificare i comandi inseriti di recente nel tuo editor preferito ed eseguirli senza dover riscrivere tutti i comandi. Questo comando può essere utile per correggere gli errori di ortografia nei comandi inseriti in precedenza ed evita la ripetizione di comandi lunghi e complicati. Poiché è integrato nella shell, è disponibile nella maggior parte delle shell, incluse Bash, Zsh, Ksh ecc. In questo breve tutorial impareremo a usare il comando fc in Linux.

Elenca i comandi eseguiti di recente con il comando fc

Se esegui fc -l comando senza argomenti, visualizzerà gli ultimi 16 comandi.

$ fc -l
507 fish
508 fc -l
509 sudo netctl restart wlp9s0sktab
510 ls -l
511 pwd
512 uname -r
513 uname -ms
514 touch ostechnix.txt
515 vi ostechnix.txt
516 echo "Welcome to OSTechNix"
517 sudo apcman -Syu
518 sudo pacman -Syu
519 more ostechnix.txt 
520 wc -l ostechnix.txt 
521 cat ostechnix.txt 
522 clear

Per invertire l'ordine dei comandi, usa -r bandiera.

$ fc -r

Puoi sopprimere i numeri di riga usando -n bandiera.

$ fc -ln
 nano ~/.profile
 source ~/.profile
 source ~/.profile
 fc -ln
 fc -l
 sudo netctl restart wlp9s0sktab
 ls -l
 pwd
 uname -r
 uname -ms
 echo "Welcome to OSTechNix"
 sudo apcman -Syu
 cat ostechnix.txt 
 wc -l ostechnix.txt 
 more ostechnix.txt 
 clear

Ora non vedrai i numeri di riga.

Per elencare il risultato partendo da un comando specifico, usa semplicemente il numero di riga insieme a -l opzione. Ad esempio, per visualizzare i comandi a partire dalla riga numero 520 fino ad oggi, facciamo:

$ fc -l 520
520 ls -l
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu
526 cat ostechnix.txt 
527 wc -l ostechnix.txt 
528 more ostechnix.txt 
529 clear
530 fc -ln
531 fc -l

Per elencare un comando all'interno di un intervallo specifico, ad esempio 520 a 525 , fai:

$ fc -l 520 525
520 ls -l
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu

Invece di usare i numeri di riga, possiamo anche usare le stringhe. Ad esempio, elenca i comandi a partire da pwd comando fino al risentimento, usa semplicemente la lettera iniziale di quel comando (cioè p ) come di seguito.

$ fc -l p
521 pwd
522 uname -r
523 uname -ms
524 echo "Welcome to OSTechNix"
525 sudo apcman -Syu
526 cat ostechnix.txt 
527 wc -l ostechnix.txt 
528 more ostechnix.txt 
529 clear
530 fc -ln
531 fc -l
532 fc -l 520
533 fc -l 520 525
534 fc -l 520
535 fc -l 522
536 fc -l l

Per vedere tutto tra pwd per more comando, puoi usare uno dei due:

$ fc -l p m

Oppure, usa la combinazione della prima lettera del comando iniziale e del numero di riga del comando finale:

$ fc -l p 528

Oppure, solo i numeri di riga dei comandi di inizio e fine:

$ fc -l 521 528

Tutti questi tre comandi visualizzeranno lo stesso risultato.

Modifica ed esegui nuovamente l'ultimo comando automaticamente

A volte, potresti aver sbagliato a scrivere un comando precedente. In tali situazioni, puoi facilmente modificare gli errori di ortografia del comando utilizzando il tuo editor predefinito ed eseguirlo senza doverlo riscrivere.

Per modificare l'ultimo comando ed eseguirlo di nuovo, fai:

$ fc

Questo aprirà il tuo ultimo comando nell'editor predefinito.

Come puoi vedere nello screenshot qui sopra, il mio ultimo comando è stato "fc -l" . Ora puoi apportare qualsiasi modifica al comando ed eseguirlo nuovamente automaticamente una volta salvato e chiuso l'editor. Questo può essere utile quando usi comandi o argomenti lunghi e complicati.

Nota importante: Tieni presente che anche questo può essere un distruttivo . Ad esempio, se il comando precedente era un comando mortale come "rm -fr <some-path>" , verrà eseguito automaticamente e potresti perdere i tuoi dati importanti. Quindi, DEVI stare molto attento mentre usi fc comando.

Cambia l'editor predefinito per modificare i comandi

Un'altra opzione notevole di fc è "e" che viene utilizzato per scegliere un editor diverso per modificare i comandi. Ad esempio, possiamo usare "nano" editor per modificare l'ultimo comando come di seguito.

$ fc -e nano

Questo comando aprirà il nano editor (invece dell'editor predefinito) per modificare l'ultimo comando.

L'utilizzo di -e potrebbe richiedere molto tempo opzione per ogni comando. Per impostare il nuovo editor come predefinito, imposta la variabile di ambiente FCEDIT al nome dell'editor che vuoi fc da usare.

Ad esempio, per impostare "nano" come nuovo editor predefinito, modifica il tuo ~/.profile o file di ambiente:

$ vi ~/.profile

Aggiungi la seguente riga:

FCEDIT=nano

Puoi anche utilizzare il percorso completo dell'editor come di seguito.

FCEDIT=/usr/local/bin/emacs

Digita :wq per salvare e chiudere il file. Per aggiornare le modifiche, esegui:

$ source ~/.profile

Ora puoi semplicemente digitare "fc" per modificare l'ultimo comando usando "nano" editore.

Esegui nuovamente l'ultimo comando senza modificarlo

Sapevamo già che se eseguiamo "fc" senza argomenti, carica l'editor con il comando più recente. A volte, potresti non voler modificare, ma semplicemente eseguire l'ultimo comando. Per farlo, usa il trattino (- ) alla fine come mostrato di seguito.

$ echo "Welcome to OSTechNix"
Welcome to OSTechNix

$ fc -e -
echo "Welcome to OSTechNix"
Welcome to OSTechNix

Come puoi vedere, fc non ha modificato l'ultimo comando (ovvero echo "Welcome to OSTechNix") anche se ho usato -e opzione.

Si noti che alcune delle opzioni sono specifiche della shell. Potrebbero non funzionare in altre shell. Ad esempio, le seguenti opzioni possono essere utilizzate in zsh guscio. Non funzioneranno nelle shell Bash o Ksh.

Visualizza quando i comandi sono stati eseguiti

Per vedere quando sono stati eseguiti i comandi, usa -d come di seguito.

fc -ld
1 18:41 exit
2 18:41 clear
3 18:42 fc -l
4 18:42 sudo netctl restart wlp9s0sktab
5 18:42 ls -l
6 18:42 pwd
7 18:42 uname -r
8 18:43 uname -ms
9 18:43 cat ostechnix.txt
10 18:43 echo "Welcome to OSTechNix"
11 18:43 more ostechnix.txt
12 18:43 wc -l ostechnix.txt
13 18:43 cat ostechnix.txt
14 18:43 clear
15 18:43 fc -l

Ora vedi il tempo di esecuzione degli ultimi comandi eseguiti.

Possiamo anche visualizzare il timestamp completo di ogni comando usando -f opzione.

 fc -lf
 1 4/5/2018 18:41 exit
 2 4/5/2018 18:41 clear
 3 4/5/2018 18:42 fc -l
 4 4/5/2018 18:42 sudo netctl restart wlp9s0sktab
 5 4/5/2018 18:42 ls -l
 6 4/5/2018 18:42 pwd
 7 4/5/2018 18:42 uname -r
 8 4/5/2018 18:43 uname -ms
 9 4/5/2018 18:43 cat ostechnix.txt
 10 4/5/2018 18:43 echo "Welcome to OSTechNix"
 11 4/5/2018 18:43 more ostechnix.txt
 12 4/5/2018 18:43 wc -l ostechnix.txt
 13 4/5/2018 18:43 cat ostechnix.txt
 14 4/5/2018 18:43 clear
 15 4/5/2018 18:43 fc -l
 16 4/5/2018 18:43 fc -ld

Naturalmente, la gente europea può usare il formato della data europea usando -E opzione.

 fc -lE
 2 5.4.2018 18:41 clear
 3 5.4.2018 18:42 fc -l
 4 5.4.2018 18:42 sudo netctl restart wlp9s0sktab
 5 5.4.2018 18:42 ls -l
 6 5.4.2018 18:42 pwd
 7 5.4.2018 18:42 uname -r
 8 5.4.2018 18:43 uname -ms
 9 5.4.2018 18:43 cat ostechnix.txt
 10 5.4.2018 18:43 echo "Welcome to OSTechNix"
 11 5.4.2018 18:43 more ostechnix.txt
 12 5.4.2018 18:43 wc -l ostechnix.txt
 13 5.4.2018 18:43 cat ostechnix.txt
 14 5.4.2018 18:43 clear
 15 5.4.2018 18:43 fc -l
 16 5.4.2018 18:43 fc -ld
 17 5.4.2018 18:49 fc -lf

TL;DR

  • Quando viene eseguito senza argomenti, fc caricherà il comando più recente nell'editor di testo predefinito.
  • Quando si esegue con un argomento numerico, fc carica l'editor con il comando con quel numero specificato.
  • Quando viene eseguito con un argomento stringa, fc carica il comando più recente che inizia con la stringa specificata.
  • Quando si esegue con due argomenti in fc , gli argomenti specificano l'inizio e la fine di un intervallo di comandi.

Nota: Alcune opzioni sono obsolete nelle versioni BASH recenti.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man fc

Lettura correlata:

  • Diversi modi per ripetere l'ultimo comando in Linux
  • Come cancellare un comando specifico dalla cronologia di Bash in Linux
  • Come cancellare la cronologia della riga di comando in Linux

Linux
  1. Linux expand Command Tutorial per principianti (con esempi)

  2. Tutorial sui comandi di Linux factor per principianti (con esempi)

  3. Linux yes Command Tutorial per principianti (con esempi)

  4. Linux tac Command Tutorial per principianti (con esempi)

  5. Il tutorial del comando Numfmt con esempi per principianti

Il tutorial sul comando piega con esempi per principianti

Il tutorial sul comando df con esempi per principianti

Il tutorial sui comandi principali con esempi per principianti

Il tutorial del comando mktemp con esempi per principianti

Il tutorial sul comando Grep con esempi per principianti

Il tutorial sui comandi Uniq con esempi per principianti