fc příkaz, zkratka pro f ix c ommands je vestavěný příkaz shellu, který se používá k výpisu, úpravě a opětovnému spouštění naposledy zadaných příkazů v interaktivním shellu. Nedávno zadané příkazy můžete upravit ve svém oblíbeném editoru a spustit je, aniž byste museli znovu zadávat celé příkazy. Tento příkaz může pomoci opravit pravopisné chyby v dříve zadaných příkazech a vyhnout se opakování dlouhých a složitých příkazů. Vzhledem k tomu, že je vytvořen v shellu, je dostupný ve většině shellů, včetně Bash, Zsh, Ksh atd. V tomto krátkém tutoriálu se naučíme používat příkaz fc v Linuxu.
Seznam naposledy provedených příkazů pomocí příkazu fc
Pokud spustíte fc -l
příkaz bez argumentů zobrazí posledních 16 příkazy.
$ fc -l 507 fish508 fc -l509 sudo netctl restart wlp9s0sktab510 ls -l511 pwd512 uname -r513 uname -ms514 touch ostechnix.txt515 vi ostechnix.txt516 echo "Welcome to 1x0sktab510 ls -l511 OSTech516 sudy516 -Welcome to 1x0sktab51 -Tech sudix51 -Tech OSpac51x8 -Tech sud516 ostechnix.txt 521 kočka ostechnix.txt 522 clear
Chcete-li obrátit pořadí příkazů, použijte -r
vlajka.
$ fc -r
Čísla řádků můžete potlačit pomocí -n
vlajka.
$ fc -ln nano ~/.zdroj profilu ~/.zdroj profilu ~/.profile fc -ln fc -l sudo netctl restart wlp9s0sktab ls -l pwd uname -r uname -ms echo "Vítejte v OSTechNix" sudo apcman -Syu cat ostechnix.txt wc -l ostechnix.txt více ostechnix.txt vymazat
Nyní neuvidíte čísla řádků.
Chcete-li zobrazit výsledek počínaje konkrétním příkazem, jednoduše použijte číslo řádku spolu s -l
volba. Chcete-li například zobrazit příkazy začínající od řádku číslo 520 do současnosti děláme:
$ fc -l 520 520 ls -l521 pwd522 uname -r523 uname -ms524 echo "Vítejte v OSTechNix"525 sudo apcman -Syu526 cat ostechnix.txt 527 wc -l ostechnix.txt f 528 více ostechnix.Chcete-li zobrazit seznam příkazů v určitém rozsahu, například 520 na 525 , udělejte:
$ fc -l 520 525 520 ls -l521 pwd522 uname -r523 uname -ms524 echo "Vítejte v OSTechNix"525 sudo apcman -SyuMísto čísel řádků můžeme použít i řetězce. Například vypište seznam příkazů počínaje
pwd
příkaz až po resen, stačí použít počáteční písmeno tohoto příkazu (tj. p ) jako níže.$ fc -l p 521 pwd522 uname -r523 uname -ms524 echo "Vítejte v OSTechNix"525 sudo apcman -Syu526 cat ostechnix.txt 527 wc -l ostechnix.txt 528 další ostechnix.txt f35c21503n -53l 520 525534 fc -l 520535 fc -l 522536 fc -l lChcete-li zobrazit vše mezi
pwd
namore
můžete použít buď:$ fc -l p mNebo použijte kombinaci prvního písmene počátečního příkazu a čísla řádku koncového příkazu:
$ fc -l p 528Nebo jen čísla řádků počátečních a koncových příkazů:
$ fc -l 521 528Všechny tyto tři příkazy zobrazí stejný výsledek.
Upravte a znovu spusťte poslední příkaz automaticky
Občas se může stát, že předchozí příkaz zadáte chybně. V takových situacích můžete snadno upravit pravopisné chyby příkazu pomocí výchozího editoru a spustit jej, aniž byste museli znovu psát.
Chcete-li upravit poslední příkaz a znovu jej spustit, postupujte takto:
$ fcTím se otevře váš poslední příkaz ve výchozím editoru.
Jak vidíte na výše uvedeném snímku obrazovky, můj poslední příkaz byl
"fc -l"
. Nyní můžete v příkazu provést jakékoli změny a po uložení a ukončení editoru jej znovu automaticky spustit. To může být užitečné, když používáte dlouhé a složité příkazy nebo argumenty.Důležitá poznámka: Mějte prosím na paměti, že to může být také destruktivní . Pokud byl například předchozí příkaz smrtící příkaz jako
"rm -fr <some-path>"
, automaticky se spustí a vy můžete přijít o důležitá data. Při používánífc
MUSÍTE být velmi opatrní příkaz.Změňte výchozí editor pro úpravy příkazů
Další pozoruhodnou možností fc je
"e"
který se používá k výběru jiného editoru pro úpravu příkazů. Můžeme například použít"nano"
editor pro úpravu posledního příkazu, jak je uvedeno níže.$ fc -e nanoTento příkaz otevře nano editor (místo výchozího editoru) pro úpravu posledního příkazu.
Používání
-e
může být časově náročné možnost pro každý příkaz. Chcete-li nastavit nový editor jako výchozí, stačí nastavit proměnnou prostředíFCEDIT
na jméno požadovaného editoru fc použít.Chcete-li například nastavit „nano“ jako nový výchozí editor, upravte svůj
~/.profile
nebo soubor prostředí:$ vi ~/.profilePřidejte následující řádek:
FCEDIT=nanoMůžete také použít úplnou cestu editoru, jak je uvedeno níže.
FCEDIT=/usr/local/bin/emacsZadejte
:wq
pro uložení a zavření souboru. Chcete-li aktualizovat změny, spusťte:zdroj $ ~/.profileNyní stačí napsat do "fc" a upravit poslední příkaz pomocí
"nano"
editor.Spusťte znovu poslední příkaz bez jeho úprav
Už jsme věděli, že pokud spustíme "fc" bez jakýchkoli argumentů, načte se editor s nejnovějším příkazem. Občas se vám může stát, že nebudete chtít upravovat, ale jednoduše provedete poslední příkaz. Chcete-li to provést, použijte pomlčku (
-
) symbol na konci, jak je znázorněno níže.$ echo "Vítejte v OSTechNix" Vítejte v OSTechNix$ fc -e - echo "Vítejte v OSTechNix"Vítejte v OSTechNixJak vidíte, fc neupravil poslední příkaz (tj. echo "Vítejte v OSTechNix"), i když jsem použil
-e
možnost.Upozorňujeme, že některé možnosti jsou specifické pro shell. V jiných shellech nemusí fungovat. V zsh lze například použít následující možnosti skořápka. Nebudou fungovat v Bash nebo Ksh shellech.
Zobrazí, kdy byly příkazy provedeny
Chcete-li zobrazit, kdy byly příkazy spuštěny, použijte -d jako níže.
fc -ld 1 18:41 exit2 18:41 clear3 18:42 fc -l4 18:42 sudo netctl restart wlp9s0sktab5 18:42 ls -l6 18:42 pwd7 18:42 uname -r8 18:43 uname 18 -ms3x9 kat. txt10 18:43 echo "Vítejte v OSTechNix"11 18:43 více ostechnix.txt12 18:43 wc -l ostechnix.txt13 18:43 kočka ostechnix.txt14 18:43 clear15 18:43 fc -lNyní vidíte dobu provádění naposledy provedených příkazů.
Můžeme také zobrazit úplné časové razítko každého příkazu pomocí
-f
možnost.fc -lf 1 5. 4. 2018 18:41 exit 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 "Vítejte v OSTechNix" 11 5. 4. 2018 18:43 více ostechnix.txt 12 5. 4. 2018 18:43 wc -l ostechnix.txt 1 5/2018 18:43 cat ostechnix.txt 14 5. 4. 2018 18:43 jasno 15 5. 4. 2018 18:43 fc -l 16 5. 4. 2018 18:43 fc -ldSamozřejmě, že Evropané mohou používat evropský formát data pomocí
-E
možnost.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.4 2wd 18:55 2018 18:42 uname -r 8 5.4.2018 18:43 uname -ms 9 5.4.2018 18:43 kat ostechnix.txt 10 5.4.2018 18:43 echo "Vítejte v OSTechnixNix. více" 1118:20 .txt 12 5.4.2018 18:43 wc -l ostechnix.txt 13 5.4.2018 18:43 kat ostechnix.txt 14 5.4.2018 18:43 clear 15 5.4.2018 18:1818 0.00. 43 fc -ld 17 5.4.2018 18:49 fc -lfTL;DR
- Při spuštění bez jakýchkoli argumentů načte fc nejnovější příkaz ve výchozím textovém editoru.
- Při spuštění s číselným argumentem fc načte editor s příkazem se zadaným číslem.
- Při spuštění s argumentem řetězce načte fc nejnovější příkaz počínaje tímto zadaným řetězcem.
- Při spuštění se dvěma argumenty pro fc určují argumenty začátek a konec řady příkazů.
Poznámka: Některé možnosti jsou v posledních verzích BASH zastaralé.
Další podrobnosti naleznete na manuálových stránkách.
$ man fc
Související čtení:
- Různé způsoby opakování posledního příkazu v systému Linux
- Jak vymazat konkrétní příkaz z historie Bash v Linuxu
- Jak vymazat historii příkazového řádku v systému Linux