GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Das fc Command Tutorial mit Beispielen für Anfänger

Der fc Befehl, kurz für f ix c Befehle, ist ein Shell-integrierter Befehl, der verwendet wird, um die zuletzt eingegebenen Befehle in einer interaktiven Shell aufzulisten, zu bearbeiten und erneut auszuführen. Sie können die kürzlich eingegebenen Befehle in Ihrem bevorzugten Editor bearbeiten und ausführen, ohne die gesamten Befehle erneut eingeben zu müssen. Dieser Befehl kann hilfreich sein, um die Rechtschreibfehler in den zuvor eingegebenen Befehlen zu korrigieren, und vermeidet die Wiederholung langer und komplizierter Befehle. Da es in die Shell integriert ist, ist es in den meisten Shells verfügbar, einschließlich Bash, Zsh, Ksh usw. In diesem kurzen Tutorial werden wir lernen, den Befehl fc unter Linux zu verwenden.

Listen Sie die zuletzt ausgeführten Befehle mit dem fc-Befehl auf

Wenn Sie fc -l ausführen Befehl ohne Argumente, werden die letzten 16 angezeigt Befehle.

$ 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

Um die Reihenfolge der Befehle umzukehren, verwenden Sie -r Flagge.

$ fc -r

Mit -n können Sie die Zeilennummern unterdrücken Flagge.

$ 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

Jetzt sehen Sie die Zeilennummern nicht mehr.

Um das Ergebnis ab einem bestimmten Befehl aufzulisten, verwenden Sie einfach die Zeilennummer zusammen mit -l Möglichkeit. Zum Beispiel, um die Befehle ab Zeilennummer 520 anzuzeigen bis heute tun wir:

$ 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

Um einen Befehl innerhalb eines bestimmten Bereichs aufzulisten, zum Beispiel 520 bis 525 , tun:

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

Anstelle der Zeilennummern können wir auch Strings verwenden. Listen Sie beispielsweise die Befehle auf, die mit pwd beginnen Befehl bis zum erneuten Senden verwenden Sie einfach den Anfangsbuchstaben dieses Befehls (z. B. p ) wie unten.

$ 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

Um alles zwischen pwd zu sehen zu more Befehl können Sie entweder verwenden:

$ fc -l p m

Oder verwenden Sie die Kombination aus Anfangsbuchstabe des Startbefehls command und Zeilennummer des Endbefehls:

$ fc -l p 528

Oder nur Zeilennummern von Start- und Endbefehlen:

$ fc -l 521 528

Alle diese drei Befehle zeigen das gleiche Ergebnis an.

Den letzten Befehl automatisch bearbeiten und erneut ausführen

Manchmal könnten Sie einen vorherigen Befehl falsch geschrieben haben. In solchen Situationen können Sie die Rechtschreibfehler des Befehls einfach mit Ihrem Standardeditor korrigieren und ihn ausführen, ohne ihn erneut eingeben zu müssen.

Um den letzten Befehl zu bearbeiten und erneut auszuführen, tun Sie Folgendes:

$ fc

Dadurch wird Ihr letzter Befehl im Standardeditor geöffnet.

Wie Sie im obigen Screenshot sehen, war mein letzter Befehl "fc -l" . Jetzt können Sie Änderungen am Befehl vornehmen und ihn automatisch erneut ausführen, sobald Sie den Editor speichern und beenden. Dies kann nützlich sein, wenn Sie lange und komplizierte Befehle oder Argumente verwenden.

Wichtiger Hinweis: Bitte beachten Sie, dass dies auch zerstörerisch sein kann . Zum Beispiel, wenn der vorherige Befehl ein tödlicher Befehl wie "rm -fr <some-path>" war , wird es automatisch ausgeführt und Sie können Ihre wichtigen Daten verlieren. Sie MÜSSEN also sehr vorsichtig sein, wenn Sie fc verwenden Befehl.

Ändern Sie den Standardeditor, um Befehle zu bearbeiten

Eine weitere bemerkenswerte Option von fc ist "e" die verwendet wird, um einen anderen Editor zum Bearbeiten der Befehle auszuwählen. Zum Beispiel können wir "nano" verwenden Editor, um den letzten Befehl wie unten zu bearbeiten.

$ fc -e nano

Dieser Befehl öffnet den Nano-Editor (anstelle des Standard-Editors), um den letzten Befehl zu bearbeiten.

Es kann zeitaufwändig sein, -e zu verwenden Option für jeden Befehl. Um den neuen Editor zu Ihrem Standard zu machen, setzen Sie einfach die Umgebungsvariable FCEDIT an den Namen des gewünschten Editors fc zu verwenden.

Um beispielsweise „nano“ als neuen Standardeditor festzulegen, bearbeiten Sie Ihr ~/.profile oder Umgebungsdatei:

$ vi ~/.profile

Fügen Sie die folgende Zeile hinzu:

FCEDIT=nano

Sie können auch den vollständigen Pfad des Editors wie unten verwenden.

FCEDIT=/usr/local/bin/emacs

Geben Sie :wq ein um die Datei zu speichern und zu schließen. Um die Änderungen zu aktualisieren, führen Sie Folgendes aus:

$ source ~/.profile

Jetzt können Sie einfach "fc" eingeben, um den letzten Befehl mit "nano" zu bearbeiten Herausgeber.

Führen Sie den letzten Befehl erneut aus, ohne ihn zu bearbeiten

Wir wussten bereits, wenn wir "fc" ohne Argumente ausführen, lädt es den Editor mit dem neuesten Befehl. Manchmal möchten Sie vielleicht nicht bearbeiten, sondern einfach den letzten Befehl ausführen. Verwenden Sie dazu den Bindestrich (- )-Symbol am Ende, wie unten gezeigt.

$ echo "Welcome to OSTechNix"
Welcome to OSTechNix

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

Wie Sie sehen, hat fc den letzten Befehl (d. h. echo "Welcome to OSTechNix") nicht bearbeitet, selbst wenn ich -e verwendet habe Option.

Bitte beachten Sie, dass einige der Optionen Shell-spezifisch sind. Sie funktionieren möglicherweise nicht in anderen Shells. Beispielsweise können die folgenden Optionen in zsh verwendet werden Hülse. Sie funktionieren nicht in Bash- oder Ksh-Shells.

Anzeige wann die Befehle ausgeführt wurden

Verwenden Sie -d, um anzuzeigen, wann die Befehle ausgeführt wurden wie unten.

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

Jetzt sehen Sie die Ausführungszeit der zuletzt ausgeführten Befehle.

Wir können auch den vollständigen Zeitstempel jedes Befehls mit -f anzeigen 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

Natürlich können die Europäer das europäische Datumsformat mit -E verwenden 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

  • Wenn es ohne Argumente ausgeführt wird, lädt fc den neuesten Befehl in den Standard-Texteditor.
  • Bei Ausführung mit einem numerischen Argument lädt fc den Editor mit dem Befehl mit dieser angegebenen Nummer.
  • Bei Ausführung mit einem String-Argument lädt fc den neuesten Befehl beginnend mit diesem angegebenen String.
  • Wenn fc mit zwei Argumenten ausgeführt wird, geben die Argumente den Anfang und das Ende einer Reihe von Befehlen an.

Hinweis: Einige Optionen sind in neueren BASH-Versionen veraltet.

Weitere Einzelheiten finden Sie in den Manpages.

$ man fc

Verwandte Lektüre:

  • Verschiedene Möglichkeiten, Ihren letzten Befehl unter Linux zu wiederholen
  • So löschen Sie einen bestimmten Befehl aus dem Bash-Verlauf in Linux
  • So löschen Sie den Befehlszeilenverlauf in Linux

Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  3. Linux nproc Command Tutorial für Anfänger (mit Beispielen)

  4. Linux tac Command Tutorial für Anfänger (mit Beispielen)

  5. Das Numfmt-Befehls-Tutorial mit Beispielen für Anfänger

Das Faltbefehls-Tutorial mit Beispielen für Anfänger

Das df-Befehls-Tutorial mit Beispielen für Anfänger

Das Top Command Tutorial mit Beispielen für Anfänger

Das mktemp-Befehls-Tutorial mit Beispielen für Anfänger

Das Grep-Befehls-Tutorial mit Beispielen für Anfänger

Das Uniq Command Tutorial mit Beispielen für Anfänger