Operátory pro řetězení příkazů jsou speciální znaky používané k psaní miniaturních skriptů shellu na příkazovém řádku. Obecně se používají k provádění příkazů v určité posloupnosti, definované umístěním operátorů mezi příkazy. To je neuvěřitelně užitečné při automatizaci úloh.
Pojďme se dozvědět o několika operátorech se společným řetězcem v Linuxu, které vám pomohou dokončit úkoly rychleji a s kratšími uživatelskými intervaly.
1. Operátor Ampersand (&)
Často, když otevřete program nebo spustíte příkaz z shellu, musíte buď počkat, až příkaz skončí, nebo ručně opustit program, než budete moci pokračovat v používání shellu. Zde vstupuje do hry operátor ampersand (&).
Přidáním operátoru ampersand k libovolnému příkazu diktujete shellu spustit tento příkaz Linuxu na pozadí takže můžete pokračovat v používání shellu bez připojení.
gedit &
Obvykle, pokud spustíte gedit z terminálu, nebudete moci terminál používat, dokud nezavřete textový editor. Ale přidáním operátoru ampersand jej můžete spustit na pozadí a okamžitě pokračovat v používání shellu.
2. Středník operátor (;)
Operátor středník je neuvěřitelně užitečný operátor řetězení Linuxu, který můžete použít k provádění příkazů v definovaném sekvenčním pořadí. Uspořádejte příkazy a oddělte je středníky.
pwd; mkdir test; CDtest; dotykový soubor
Výše uvedená syntaxe diktuje shellu provádět každý příkaz jeden po druhém. Všimněte si, že shell nekontroluje, zda každý příkaz skončí úspěšně. Jakmile shell obdrží návratový kód, přejde k provedení dalšího příkazu.
3. Operátor OR (||)
Operátor OR provede následující příkaz pouze v případě, že předchozí příkaz selže, tj. vrátí návratový kód 0. Funguje jako logické hradlo OR, které vrací hodnotu 1, když je vstup 0.
bad_command || ls
V tomto příkladu syntaxe špatný_příkaz je falešný příkaz, který se nepodaří provést, a protože selže, příkaz následuje po operátoru OR, což je příkaz ls, bude úspěšně spuštěn.
4. The Pipe Operator (|)
Operátor kanálu směruje výstup předchozího příkazu jako vstup do následujícího příkazu. Nejčastěji se používá k filtrování dat pomocí příkazu grep.
kočičí test | grep -i "použití"
Tento příkaz odešle výstup kočičí příkaz jako vstup do příkazu grep, který pak filtruje výstup podle zadaného řetězce.
5. Operátor AND (&&)
Tento operátor funguje podobným způsobem jako operátor středník s tím rozdílem, že operátor AND na rozdíl od operátoru středníku provede příkazy pouze v případě, že předchozí příkaz byl úspěšně proveden.
pwd && test mkdir && cd test && špatný_příkaz && ls
V tomto příkladu syntaxe shell úspěšně provede všechny příkazy až do špatný_příkaz. Protože se však bad_command nepodaří spustit, shell vrátí chybu a přeskočí příkaz ls.
6. NEOperátor (!)
Operátor NOT funguje podobným způsobem jako příkaz výjimkou v programování. Pokud například chcete provést operaci s velkým počtem souborů v adresáři, ale chcete vyloučit a několik na základě nějakého parametru, pak můžete použít operátor NOT předáním parametru za znak NOT (!).
rm-r !(*.txt)
Tento ukázkový příkaz rekurzivně odstraní všechny soubory v adresáři kromě souborů, které mají ".txt" rozšíření.
7. Operátor priority ((..))
Příkazy za operátory AND a OR závisí na ukončovacím kódu předchozího příkazu. Tyto operátory jsou binární a vyhodnocují pouze dva příkazy, které jsou před nimi a za nimi.
Při práci s více operátory je tedy důležité nastavit skupiny a prioritu, abyste zajistili, že sekvence provádění splňuje vaše očekávání.
(ls *.txt > txt-files.list && cp *.tx ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || echo "Přednostní test!"
V této ukázkové syntaxi musí obě skupiny příkazů vrátit návratový kód 0, aby bylo zajištěno úspěšné provedení posledního příkazu. Tento příklad vyžaduje, aby oba příkazy v první sadě () skončily s 0 pro spuštění druhé sady ().
8. Kombinovaný operátor ({..})
Jak název napovídá, ke seskupování příkazů se používá kombinační operátor. Jakékoli příkazy, které chcete seskupit, můžete umístit do složených závorek a budou provedeny v závislosti na ukončovacím kódu prvního příkazu.
test -f /etc/passwd && {pwd; datum} && echo $0; echo "Ahoj"
Ukázková syntaxe otestuje, zda soubor /etc/passwd je přítomen, vytiskněte aktuální pracovní adresář, datum, název shellu a echo "Ahoj".
9. Zřetězení nebo únikový operátor (\)
Operátor zřetězení nebo escape má dvě funkce. Můžete jej použít buď ke spojení dvou příkazů, nebo jako znak escape při práci s řetězci v shellu.
mkdir test0 test1 \ test2
echo "Ahoj! z a
druhá strana"
První příkaz vytvoří čtyři adresáře s názvem test0 až test2 a druhý příkaz vypíše řetězec oddělený novým řádkem.
10. Operátoři přesměrování (>, >>,
Operátory přesměrování přesměrovávají výstup nebo vstup do souboru buď přepsáním souboru, nebo připojením k němu. Pokud chcete přepsat soubor, musíte použít syntaxi jednoduché závorky (>). Pokud chcete připojit k souboru, budete muset použít syntaxi dvojitých lomených závorek (>>).
echo "dsd"> test; echo "bssss">> test
V ukázkové syntaxi první příkaz přepíše "testovací" soubor zadaným řetězcem, ale ve druhém příkazu bude zadaný řetězec připojen k testovacímu souboru.
Zrychlete pracovní postup svého terminálu Linux
I když použití speciálních operátorů výrazně zefektivní provádění úloh, existuje mnoho dalších způsobů, jak urychlit pracovní postup.
Jedním snadným a užitečným způsobem, jak stihnout více za kratší dobu, je seznámit se s několika praktickými zkratkami shellu. Zvyknutí si na tyto zkratky bude trvat dlouhou cestu a zjistíte, že se na ně budete spoléhat, dokud budete Linux používat.