GNU/Linux >> Tutoriels Linux >  >> Linux

Le didacticiel de commande fc avec des exemples pour les débutants

Le fc commande, abréviation de f ix c ommands, est une commande intégrée du shell utilisée pour répertorier, modifier et réexécuter les commandes les plus récemment saisies dans un shell interactif. Vous pouvez modifier les commandes récemment saisies dans votre éditeur préféré et les exécuter sans avoir à retaper l'intégralité des commandes. Cette commande peut être utile pour corriger les fautes d'orthographe dans les commandes saisies précédemment et éviter la répétition de commandes longues et compliquées. Comme il est intégré au shell, il est disponible dans la plupart des shells, y compris Bash, Zsh, Ksh, etc. Dans ce bref didacticiel, nous allons apprendre à utiliser la commande fc sous Linux.

Listez les commandes récemment exécutées avec la commande fc

Si vous exécutez fc -l commande sans arguments, elle affichera les 16 derniers commandes.

$ 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

Pour inverser l'ordre des commandes, utilisez -r drapeau.

$ fc -r

Vous pouvez supprimer les numéros de ligne en utilisant -n drapeau.

$ 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

Maintenant, vous ne verrez plus les numéros de ligne.

Pour lister le résultat à partir d'une commande spécifique, utilisez simplement le numéro de ligne avec -l option. Par exemple, pour afficher les commandes à partir du numéro de ligne 520 jusqu'à présent, nous faisons :

$ 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

Pour répertorier une commande dans une plage spécifique, par exemple 520 à 525 , faites :

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

Au lieu d'utiliser les numéros de ligne, nous pouvons également utiliser des chaînes. Par exemple, listez les commandes à partir de pwd commande jusqu'au renvoi, utilisez simplement la première lettre de cette commande (c'est-à-dire p ) comme ci-dessous.

$ 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

Pour tout voir entre pwd pour more commande, vous pouvez utiliser soit :

$ fc -l p m

Ou, utilisez la combinaison de la première lettre de la commande de démarrage et du numéro de ligne de la commande de fin :

$ fc -l p 528

Ou, juste les numéros de ligne des commandes de début et de fin :

$ fc -l 521 528

Ces trois commandes afficheront le même résultat.

Modifiez et relancez la dernière commande automatiquement

Parfois, vous pouvez mal orthographier une commande précédente. Dans de telles situations, vous pouvez facilement modifier les fautes d'orthographe de la commande à l'aide de votre éditeur par défaut et l'exécuter sans avoir à retaper à nouveau.

Pour modifier la dernière commande et la relancer à nouveau, faites :

$ fc

Cela ouvrira votre dernière commande dans l'éditeur par défaut.

Comme vous le voyez dans la capture d'écran ci-dessus, ma dernière commande était "fc -l" . Vous pouvez maintenant apporter des modifications à la commande et la réexécuter automatiquement une fois que vous avez enregistré et quitté l'éditeur. Cela peut être utile lorsque vous utilisez des commandes ou des arguments longs et compliqués.

Remarque importante : Veuillez garder à l'esprit que cela peut également être destructeur . Par exemple, si la commande précédente était une commande mortelle comme "rm -fr <some-path>" , il s'exécutera automatiquement et vous risquez de perdre vos données importantes. Donc, vous DEVEZ être très prudent lorsque vous utilisez fc commande.

Modifier l'éditeur par défaut pour modifier les commandes

Une autre option notable de fc est "e" qui est utilisé pour choisir un éditeur différent pour éditer les commandes. Par exemple, nous pouvons utiliser "nano" editor pour modifier la dernière commande comme ci-dessous.

$ fc -e nano

Cette commande ouvrira l'éditeur nano (au lieu de l'éditeur par défaut) pour modifier la dernière commande.

L'utilisation de -e peut prendre du temps option pour chaque commande. Pour faire du nouvel éditeur votre éditeur par défaut, définissez simplement la variable d'environnement FCEDIT au nom de l'éditeur que vous voulez fc à utiliser.

Par exemple, pour définir "nano" comme nouvel éditeur par défaut, modifiez votre ~/.profile ou fichier d'environnement :

$ vi ~/.profile

Ajoutez la ligne suivante :

FCEDIT=nano

Vous pouvez également utiliser le chemin complet de l'éditeur comme ci-dessous.

FCEDIT=/usr/local/bin/emacs

Tapez :wq pour enregistrer et fermer le fichier. Pour mettre à jour les modifications, exécutez :

$ source ~/.profile

Maintenant, vous pouvez simplement taper "fc" pour modifier la dernière commande en utilisant "nano" éditeur.

Réexécutez la dernière commande sans la modifier

Nous savions déjà que si nous exécutons "fc" sans aucun argument, il charge l'éditeur avec la commande la plus récente. Parfois, vous ne voudrez peut-être pas éditer, mais simplement exécuter la dernière commande. Pour cela, utilisez le trait d'union (- ) à la fin comme indiqué ci-dessous.

$ echo "Welcome to OSTechNix"
Welcome to OSTechNix

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

Comme vous le voyez, fc n'a pas modifié la dernière commande (c'est-à-dire echo "Welcome to OSTechNix") même si j'ai utilisé -e option.

Veuillez noter que certaines des options sont spécifiques au shell. Ils peuvent ne pas fonctionner dans d'autres shells. Par exemple, les options suivantes peuvent être utilisées dans zsh coquille. Ils ne fonctionneront pas dans les shells Bash ou Ksh.

Afficher quand les commandes ont été exécutées

Pour voir quand les commandes ont été exécutées, utilisez -d comme ci-dessous.

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

Vous voyez maintenant le temps d'exécution des dernières commandes exécutées.

Nous pouvons également afficher l'horodatage complet de chaque commande en utilisant -f option.

 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

Bien sûr, les Européens peuvent utiliser le format de date européen en utilisant -E option.

 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

  • Lorsqu'il s'exécute sans aucun argument, fc charge la commande la plus récente dans l'éditeur de texte par défaut.
  • Lors de l'exécution avec un argument numérique, fc charge l'éditeur avec la commande avec ce numéro spécifié.
  • Lors de l'exécution avec un argument de chaîne, fc charge la commande la plus récente en commençant par cette chaîne spécifiée.
  • Lors de l'exécution avec deux arguments pour fc , les arguments spécifient le début et la fin d'une plage de commandes.

Remarque : Certaines options sont obsolètes dans les versions récentes de BASH.

Pour plus de détails, consultez les pages de manuel.

$ man fc

Lire connexe :

  • Différentes façons de répéter votre dernière commande sous Linux
  • Comment effacer une commande spécifique de l'historique Bash sous Linux
  • Comment effacer l'historique de la ligne de commande sous Linux

Linux
  1. Linux expand Tutoriel de commande pour les débutants (avec exemples)

  2. Tutoriel de commande de facteur Linux pour les débutants (avec exemples)

  3. Linux oui Tutoriel de commande pour les débutants (avec exemples)

  4. Tutoriel de commande Linux nproc pour les débutants (avec exemples)

  5. Le didacticiel de commande Numfmt avec des exemples pour les débutants

Le didacticiel de commande de pliage avec des exemples pour les débutants

Le didacticiel de commande df avec des exemples pour les débutants

Le didacticiel Top Command avec des exemples pour les débutants

Le didacticiel de la commande mktemp avec des exemples pour les débutants

Le didacticiel de la commande Grep avec des exemples pour les débutants

Le didacticiel Uniq Command avec des exemples pour les débutants