GNU/Linux >> Znalost Linux >  >> Linux

Jak opravit chyby a překlepy v předchozích příkazech konzoly v Linuxu

Už jste někdy nevědomky provedli příkaz s překlepem? No, můžete jednoduše stisknout šipku NAHORU/DOLŮ, abyste vyvolali historii příkazů, našli nesprávně napsaný příkaz a upravili překlep a nakonec jej znovu spustili. To je to, co většina z nás obvykle dělá! Existují však i jiné způsoby, jak opravit překlepy v dříve zadaných příkazech. V tomto tutoriálu uvidíme všechny možné způsoby, jak opravit chyby v předchozích příkazech konzoly v Linuxu a Unixu.

Odmítnutí odpovědnosti:

Tento článek obsahuje NSFW (Not Safe For Work) a neobvyklé slovo na nějakých místech. I když jsem to slovo trochu zamaskoval, nemohl jsem se mu úplně vyhnout. Protože neexistuje způsob, jak toto slovo vyloučit, přijměte prosím předem moji omluvu, pokud vám tento příspěvek byl nepříjemný a pokud jsem vás jakýmkoli způsobem urazil.

1. Opravte chyby v předchozích příkazech konzoly pomocí aplikace 'thef*ck'

Nástroj Thef*ck se používá k opravě chyb a překlepů v dříve provedených příkazech v Linuxu.

Spustili jste ve spěchu příkaz s překlepem? Zapomněli jste přidat sudo v příkazu? Žádný problém! Tato aplikace automaticky zobrazí opravené příkazy pro dříve provedený příkaz!!

Můžete vybrat správný příkaz a stisknutím klávesy ENTER jej spustit. Není třeba procházet historií příkazů, abyste ručně opravili překlep v příkazu!

Vývojář této aplikace se inspiroval z tweetu a vytvořil tuto skvělou aplikaci. Je napsán v jazyce Python. Je to opensource aplikace a její kód je veřejně dostupný na GitHubu.

1.1. Instalace

Můžeme jej nainstalovat buď pomocí PiP správce balíčků nebo výchozí správce balíčků distribuce.

Ujistěte se, že máte nainstalovaný obraz v obraze .

Po instalaci PiP spusťte následující příkaz a nainstalujte jej, jak je uvedeno níže:

$ pip3 install --user thefuck

Tím se nainstaluje nejnovější dostupná verze.

Je také zabalen pro mnoho distribucí Linuxu a Unixu, takže jej můžete nainstalovat pomocí výchozího správce balíčků vaší distribuce. Podívejte se na stránku projektu GitHub (uvedenou na konci), abyste věděli, jak jej nainstalovat pomocí správce balíčků OS.

1.2. Konfigurace

Doporučuje se přidat následující řádek do vašeho .bash_profile , .bashrc , .zshrc nebo jiný spouštěcí skript.

$ nano ~/.bashrc

Přidejte následující řádek:

eval $(thefuck --alias fixthis)

Zde jsem jako alias použil 'fixthis'. Jako alias můžete použít, co chcete.

Stiskněte Ctrl+o a ENTER pro uložení souboru a Ctrl+x zavřít.

Spusťte následující příkaz k aktualizaci změn:

$ source ~/.bashrc

1.3. Použití

'fixthis' funguje na základě sady vestavěných pravidel. Kompletní seznam povolených pravidel naleznete zde. Můžete si také vytvořit vlastní pravidla.

Při spuštění chybně zadaného příkazu se pokusí porovnat předchozí příkaz s pravidlem. Je-li nalezena shoda, vytvoří se nový příkaz pomocí shodného pravidla a provede se.

Podívejme se na několik příkladů.

Chystám se aktualizovat svůj systém Manjaro pomocí následujícího příkazu jako normální uživatel:

$ pacman -Syu

Ukázkový výstup:

error: you cannot perform this operation unless you are root.

Jak vidíte, výše uvedený příkaz zobrazuje chybu oprávnění. Protože jsem nepřidal sudo před příkazem.

Není třeba přidávat sudo a znovu spusťte příkaz. Jediné, co musíte udělat, je spustit příkaz 'fixthis' jako níže:

$ fixthis

Nyní zobrazí platný návrh příkazu pro dříve provedený příkaz.

Pokud je to ten, který chcete spustit, jednoduše jej spusťte stisknutím klávesy ENTER. Pokud tomu tak není, stiskněte šipky NAHORU/DOLŮ pro zobrazení dalších navrhovaných příkazů.

V mém případě jdu s prvním, což je správný příkaz, jak je znázorněno na výstupu níže.

sudo pacman -Syu [enter/↑/↓/ctrl+c]

Vidět? Pokud předchozí příkaz selže kvůli chybě oprávnění, aplikace 'fixthis' před příkaz přidá sudo a spusťte to znovu. V pohodě, že? Chcete-li zrušit spuštění příkazu, stiskněte ctrl+c .

Podobně, pokud jste provedli nesprávně napsaný příkaz, opraví pravopisnou chybu a spustí příkaz znovu.

$ pithon

Ukázkový výstup:

bash: pithon: command not found
$ fixthis
python3 [enter/↑/↓/ctrl+c]

Pokud chcete opravovat příkazy rekurzivně, dokud neuspějí, můžete použít -r možnost:

$ fixthis -r

Další příklady najdete na níže uvedeném oficiálním screencastu vytvořeném jeho vývojářem.

Přestože je tato aplikace velmi užitečná pro rychlou opravu překlepů a chyb v příkazech systému Linux, má tato aplikace citlivý a nevhodný název, takže ji v některých situacích možná nebudete chtít používat.

Pokud se při spouštění tohoto příkazu v takových situacích necítíte dobře, můžete jednoduše vytvořit alias (např. opravte to), jak je znázorněno v části „Konfigurace“ výše.

2. Opravte chyby v příkazech pomocí Fix

Oprava je další skvělý nástroj, který nám pomáhá rychle opravit chyby nebo překlepy v příkazu. I když oprava dělá totéž jako thef*ck, mírně se liší.

Thef*ck je silný v syntaxi, zatímco Fix je lepší, když je důležitý sémantický aspekt. Thef*ck vám nemůže říct, jaký balíček nainstalovat, když spuštění skriptu nefunguje.

Nástroj Fix je určen k použití, když nevíte, jak to opravit sami. Navrhuje několik řešení pro překlepy nebo chybně napsané příkazy.

Využívá Codex AI OpenAI navrhnout všechna možná řešení pro opravu chyb v příkazech. Vše, co musíte udělat, je přidat před příkaz 'fix' a AI navrhne optimální řešení.

2.1. Nainstalujte opravu v systému Linux

Instalace opravy je snadná!

1. Nejprve musíte získat přístup k Codex API OpenAI .

2. A git klonujte úložiště:

$ git clone https://github.com/tom-doerr/fix.git

Bude klonovat obsah úložiště github projektu do místní složky s názvem 'fix '.

3. cd do adresáře 'fix':

$ cd fix

4. Přidejte main.py k vaší $PATH:

$ cp $PWD/main.py ~/.local/bin/fix

2.2. Použití

Chcete-li opravit chybně zadaný příkaz, jednoduše přidejte před příkaz 'fix', jak je uvedeno níže:

$ fix mkdir abc/def

Chcete-li opravit poslední příkaz, jednoduše proveďte:

$ fix !!

Umělá inteligence generuje většinou chybná řešení, ale dostatek generovaných řešení ve skutečnosti funguje na to, aby byla užitečná.

Zde je vizuální ukázka aplikace Fix.

Doporučené čtení:

  • Různé způsoby opakování posledního příkazu v systému Linux

3. Opravte chybně napsané příkazy Bash pomocí symbolu stříšky

Tento trik bude fungovat pouze na BASH.

Tento trik je velmi jednoduchý. Jednoduše nahradíme chybně napsané slovo se správným slovem pomocí Caret (^ ) symbol.

Řekněme, že chcete vytvořit adresář s 'mkdir 'příkaz. Ale vynechali jste 'i ' v příkazu a zadali 'mkdr ' místo jako níže.

$ mkdr ostechnix
bash: mkdr: command not found

Chcete-li opravit překlep ve výše uvedeném příkazu, můžeme jednoduše nahradit 'dr ' s 'dir ' se symbolem stříšky jako níže:

$ ^dr^dir^

Nyní to Bash bude interpretovat jako 'mkdir ' a spusťte jej a zobrazte výstup, jak je uvedeno níže.

mkdir ostechnix

4. Opravte překlepy při použití příkazu cd

Často jsem se snažil psát rychle do konzole a skončil jsem s překlepy, když cd do adresáře.

$ cd Pctures
bash: cd: Pctures: No such file or directory

Při psaní názvu adresáře mi bude chybět slovo nebo dvě. Pokud jste něco jako já, zde je návod, jak automaticky opravit překlepy při použití cd příkaz.

Chcete-li tuto nepříjemnost opravit, upravte ~/.bashrc soubor:

$ nano ~/.bashrc

Na konec přidejte následující řádek:

shopt -s cdspell

Stiskněte Ctrl+o a ENTER pro uložení souboru a Ctrl+x zavřít.

Spusťte následující příkaz k aktualizaci změn:

$ source ~/.bashrc

Od této chvíle váš shell automaticky rozpozná správnou cestu k adresáři, i když uděláte překlep.

Tento trik má určité nevýhody. Důležitý je případ a pořadí.

Pokud například používáte 'pctures' místo 'Pctures' , nerozpozná cestu. Zde jsem použil malá písmena 'p' pro adresář 'Pictures' .

$ cd pctures
bash: cd: pctures: No such file or directory

Také pokud používáte 'Pctrues' místo 'Pctures' , stále nerozpozná cestu k adresáři, i když použijete správná velká a malá písmena a stěžuje si, že takový soubor nebo adresář neexistuje.

$ cd Pctrues
bash: cd: Pctrues: No such file or directory

Zde jsem změnil pořadí písmen v adresáři 'Pictures'.

Pokud v cestě k adresáři chybí více než jedno písmeno, nebude to také fungovat.

Upozorňujeme, že tento tip je pouze pro 'cd 'příkaz. Tento tip je také pouze pro Bashe. V Fish a Zsh je tato funkce vestavěná.

Bonus – Návrh instalace balíčku při spuštění chybějícího příkazu

Měli jste si všimnout, že když spustíte nedostupný příkaz, zobrazí se chybová zpráva jako níže:

bash: ....: command not found

Pokud víte, který balíček obsahuje chybějící příkaz, můžete tento balíček jednoduše nainstalovat a znovu spustit příkaz. Pokud to však nevíte, možná budete potřebovat malou pomoc.

Ke zmírnění tohoto problému existuje balíček s názvem 'command-not-found '. Tím se navrhne seznam balíčků k instalaci pro použití příkazu unavailable.

Při zadání neznámého nebo nedostupného příkazu automaticky prohledá oficiální úložiště. Podrobnosti naleznete na následujícím odkazu.

  • Navrhnout instalaci balíčků při spuštění nedostupného příkazu

Závěr

Tady máš! Toto je několik způsobů, jak se vypořádat s překlepy a chybami v příkazovém řádku v systémech Linux a Unix. Můžete si vybrat ten, který vám vyhovuje, nebo použít kombinaci dvou nebo více. Například čas od času používám jak 'Fix', tak 'thef*ck' k opravě chyb a překlepů v příkazech konzole.


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Jak uložit příkazy Linuxu a používat je na vyžádání

  3. Jak omezit uživatelské příkazy v Linuxu

  1. 10 úžasných a záhadných použití (!) symbolu nebo operátoru v příkazech Linuxu

  2. Jak zakázat příkazy vypnutí a restartu v Linuxu

  3. linux:jak spustit příkaz v daném adresáři

  1. Jak spouštět příkazy ze standardního vstupu pomocí Tee a Xargs v Linuxu

  2. Linuxové příkazy – přehled a příklady

  3. Linuxové příkazy:jobs, bg a fg