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.

instagram viewer

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.