Operátory na reťazenie príkazov sú špeciálne znaky používané na písanie miniatúrnych skriptov shellu v príkazovom riadku. Vo všeobecnosti sa používajú na vykonávanie príkazov v určitom poradí definovanom umiestnením operátorov medzi príkazmi. To je neuveriteľne užitočné pri automatizácii úloh.
Dozvieme sa o niekoľkých operátoroch so spoločným reťazcom v systéme Linux, ktoré vám môžu pomôcť dokončiť úlohy rýchlejšie a s kratšími používateľskými intervalmi.
1. Operátor Ampersand (&)
Často, keď otvoríte program alebo vykonáte príkaz z shellu, musíte buď počkať, kým sa príkaz neskončí, alebo manuálne ukončiť program, kým budete môcť pokračovať v používaní shellu. Tu vstupuje do hry operátor ampersand (&).
Pripojením operátora ampersand k akémukoľvek príkazu diktujete shellu spustiť tento príkaz Linux na pozadí aby ste mohli pokračovať v používaní bez pripútania.
gedit &
Zvyčajne, ak spustíte gedit z terminálu, nebudete môcť terminál používať, pokiaľ nezatvoríte textový editor. Ale pridaním operátora ampersand ho môžete spustiť na pozadí a okamžite pokračovať v používaní shellu.
2. Operátor bodkočiarka (;)
Operátor bodkočiarky je neuveriteľne užitočný operátor reťazenia Linuxu, ktorý môžete použiť na vykonávanie príkazov v definovanom poradí. Objednajte si príkazy a oddeľte ich bodkočiarkami.
pwd; mkdir test; cdtest; dotykový súbor
Vyššie uvedená syntax diktuje shellu vykonať každý príkaz jeden po druhom. Všimnite si, že shell nekontroluje, či sa každý príkaz úspešne ukončí. Hneď ako shell dostane návratový kód, prejde na vykonanie ďalšieho príkazu.
3. Operátor OR (||)
Operátor OR vykoná nasledujúci príkaz iba v prípade, že predchádzajúci príkaz zlyhá, t. j. vráti návratový kód 0. Funguje ako logické OR hradlo, ktoré vracia hodnotu 1, keď je vstup 0.
bad_command || ls
V tomto príklade syntaxe zlý_príkaz je falošný príkaz, ktorý sa nepodarí vykonať, a keďže zlyhá, príkaz nasleduje po operátorovi OR, čo je príkaz ls, sa úspešne vykoná.
4. The Pipe Operator (|)
Operátor potrubia nasmeruje výstup predchádzajúceho príkazu ako vstup do nasledujúceho príkazu. Najčastejšie sa používa na filtrovanie údajov pomocou príkazu grep.
mačací test | grep -i "použiť"
Tento príkaz odošle výstup z príkaz mačky ako vstup do príkazu grep, ktorý potom filtruje výstup podľa zadaného reťazca.
5. Operátor AND (&&)
Tento operátor funguje podobným spôsobom ako operátor bodkočiarka s tým rozdielom, že na rozdiel od operátora bodkočiarka operátor AND vykoná príkazy iba vtedy, ak bol predchádzajúci príkaz úspešne vykonaný.
pwd && test mkdir && cd test && zlý_príkaz && ls
V tomto príklade syntaxe shell úspešne vykoná všetky príkazy až do zlý_príkaz. Keďže sa však bad_command nepodarí spustiť, shell vráti chybu a preskočí príkaz ls.
6. Operátor NOT (!)
Operátor NOT funguje podobným spôsobom ako príkaz okrem v programovaní. Napríklad, ak chcete vykonať operáciu s veľkým počtom súborov v adresári, ale chcete vylúčiť a niekoľko na základe nejakého parametra, potom môžete použiť operátor NOT zadaním parametra za znak NOT (!).
rm-r !(*.TXT)
Tento vzorový príkaz rekurzívne odstráni všetky súbory v adresári okrem súborov, ktoré majú ".TXT" rozšírenie.
7. Operátor priority ((..))
Príkazy nasledujúce po operátoroch AND a OR závisia od ukončovacieho kódu predchádzajúceho príkazu. Tieto operátory sú binárne a vyhodnocujú iba dva príkazy, ktoré prichádzajú pred nimi a za nimi.
Takže pri práci s viacerými operátormi je dôležité nastaviť skupiny a prioritu, aby sa zabezpečilo, že postupnosť vykonávania spĺňa vaše očakávania.
(ls *.txt > txt-files.list && cp *.txt ~) && (ls *.deb > deb-packages.list && cp *.deb ~) || ozvena "Prednostný test!"
V tejto vzorovej syntaxi musia obe skupiny príkazov vrátiť kód ukončenia 0, aby sa zabezpečilo úspešné vykonanie posledného príkazu. Tento príklad vyžaduje, aby oba príkazy v prvej sade () skončili s 0, aby sa spustila druhá sada ().
8. Operátor kombinácie ({..})
Ako už názov napovedá, kombinačný operátor sa používa na zoskupovanie príkazov. Akékoľvek príkazy, ktoré chcete zoskupiť, môžete umiestniť do zložených zátvoriek a vykonajú sa v závislosti od ukončovacieho kódu prvého príkazu.
test -f /etc/passwd && {pwd; dátum} && echo $0; ozvena "Ahoj"
Vzorová syntax otestuje, či súbor /etc/passwd je prítomný, vytlačte aktuálny pracovný adresár, dátum, názov shellu a odozvu "Ahoj".
9. Spojenie alebo operátor úniku (\)
Operátor zreťazenia alebo escape má dve funkcie. Môžete ho použiť buď na spojenie dvoch príkazov, alebo ako únikový znak pri práci s reťazcami v shelli.
mkdir test0 test1 \ test2
echo „Ahoj! od na
druhá strana"
Prvý príkaz vytvorí štyri adresáre s názvom test0 až test2 a druhý príkaz vypíše reťazec oddelený novým riadkom.
10. Operátori presmerovania (>, >>,
Operátory presmerovania presmerujú výstup alebo vstup do súboru buď prepísaním súboru, alebo pripojením k nemu. Ak chcete prepísať súbor, musíte použiť syntax s jednou lomenou zátvorkou (>). Ak chcete pripojiť k súboru, budete musieť použiť syntax dvojitých uhlových zátvoriek (>>).
ozvena "dsd"> test; ozvena "bssss">> test
Vo vzorovej syntaxi prvý príkaz prepíše „testovací“ súbor zadaným reťazcom, ale v druhom príkaze sa zadaný reťazec pripojí k testovaciemu súboru.
Zrýchlite pracovný tok terminálu Linux
Zatiaľ čo používanie špeciálnych operátorov výrazne zefektívni vykonávanie úloh, existuje niekoľko ďalších spôsobov, ako urýchliť váš pracovný tok.
Jedným z jednoduchých a užitočných spôsobov, ako urobiť viac za kratší čas, je zoznámiť sa s niekoľkými praktickými skratkami. Zvyknúť si na tieto skratky bude trvať dlho a zistíte, že sa na ne spoliehate tak dlho, ako budete používať Linux.