Weboldal keresés

10 hasznos láncolási operátor Linuxban példákkal


A Linux parancsok láncolása azt jelenti, hogy több parancsot kombinálunk és végrehajtásra késztetünk a közöttük használt operátor viselkedése alapján.

A parancsok láncolása Linuxban olyasmi, mintha rövid shell-szkripteket írnánk magára a shell-re, és közvetlenül a terminálról futtatnánk őket. A láncolás lehetővé teszi a folyamat automatizálását.

Sőt, egy felügyelet nélküli gép szisztematikusan működhet a lánckezelők segítségével.

Ennek a cikknek a célja, hogy megvilágítsa a gyakran használt parancslánc-operátorokat. Rövid leírásokat és megfelelő példákat tartalmaz, amelyek növelhetik a termelékenységet, és lehetővé teszik, hogy tömör, értelmes kódokat írjon, miközben időnként csökkenti a rendszerterhelést.

1. „és” jel operátor (&) – Futtassa a Linux parancsot a háttérben

A „&” funkciója az, hogy a parancsot a háttérben futtassa. Csak írja be a parancsot, majd egy szóközt és egy „&”-t. Egyszerre több parancsot is végrehajthat a háttérben.

Futtasson egyetlen „ping” nevű Linux-parancsot a háttérben:

ping -­c5 linux-console.net &

Futtasson egyszerre két vagy több apt parancsot a háttérben:

apt update & apt upgrade &

2. Pontospontos operátor (;) – Több parancs futtatása

A pontosvesszőből álló (;) operátor lehetővé teszi több parancs futtatását egyszerre, és a parancs végrehajtása egymás után történik.

apt update ; apt upgrade ; mkdir test

A fenti parancskombináció először az update, majd a upgrade utasítást hajtja végre, végül pedig létrehoz egy „teszt” könyvtárat az aktuális munkakönyvtár alatt.

3. ÉS operátor (&&) – A második parancs futtatása siker esetén

Az ÉS operátor (&&) csak a második parancsot hajtja végre, ha az első parancs végrehajtása SIKERTELEN, azaz a kilépési állapot az első parancs a 0. Ez a parancs nagyon hasznos az utolsó parancs végrehajtási állapotának ellenőrzéséhez.

Például szeretném felkeresni a linux-console.net webhelyet a links paranccsal a terminálban, de előtte ellenőriznem kell, hogy a gazdagép élő vagy >nem.

ping -c3 linux-console.net && links linux-console.net

4. VAGY Kezelő (||) – Feltételes parancsvégrehajtás

Az OR operátor (||) nagyon hasonlít egy „else” utasításra a programozásban. A || operátor csak akkor teszi lehetővé a második parancs végrehajtását, ha az első parancs végrehajtása sikertelen, azaz az első parancs kilépési állapota „1”.

Például szeretném végrehajtani az „apt update” parancsot egy nem root fiókból, és ha az első parancs sikertelen, akkor a második „links linux-console.net” parancs fog végrehajtani.

apt update || links linux-console.net

Mivel a fenti parancsban a felhasználó nem frissítheti a rendszert, ez azt jelenti, hogy az első parancs kilépési állapota '1' > és ezért az utolsó „links linux-console.net” parancs végrehajtásra kerül.

Mi a teendő, ha az első parancs sikeresen végrehajtásra kerül, és a kilépési állapot „0”? Magától értetődően! A második parancs nem hajtódik végre.

mkdir test || links linux-console.net

Itt a felhasználó létrehoz egy „teszt” mappát a saját könyvtárában, amelyhez a felhasználó jogosult. A sikeresen végrehajtott parancs „0” kilépési állapotot ad, ezért a parancs utolsó része nem kerül végrehajtásra.

5. NEM kezelő (!) – Parancsok szelektív végrehajtása

A NOT Operator (!) nagyon hasonlít egy „kivéve” utasításhoz. Ez a parancs az összeset végrehajtja, kivéve a megadott feltételt. Ennek megértéséhez hozzon létre egy „tecmint” könyvtárat a saját könyvtárában, és hozzon létre egy „cd” könyvtárat.

mkdir tecmint 
cd tecmint

Ezután hozzon létre többféle fájltípust a „tecmint” mappában.

touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

Nézze meg, hogy létrehoztuk az összes új fájlt a „tecmint” mappában.

ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

Most törölje az összes fájlt, kivéve a „html” fájlt, egyszerre, intelligens módon az rm paranccsal.

rm -r !(*.html)

Csak az ellenőrzés végett, utolsó végrehajtás. Listázza ki az összes elérhető fájlt az ls paranccsal.

ls 

a.html  b.html

6. ÉS – VAGY operátor (&& – ||) – Parancsok feltételes végrehajtása

A fenti operátor az „AND” és az „OR” operátor kombinációja. Ez nagyon hasonlít egy „if-else” kijelentéshez.

Például hajtsunk végre egy pinget a linux-console.net webhelyre, ha a siker a „Verified” kifejezést visszhangozza, máskülönben a „Host Down” szöveget visszhangozza.

ping -c3 linux-console.net && echo "Verified" || echo "Host Down"

Mintakimenet:

PING linux-console.net (212.71.234.61) 56(84) bytes of data. 
64 bytes from linux-console.net (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- linux-console.net ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

Most szakítsa meg az internetkapcsolatot, és próbálja meg újra ugyanazt a parancsot.

ping -c3 linux-console.net && echo "verified" || echo "Host Down"

Mintakimenet:

ping: unknown host linux-console.net 
Host Down

7. PIPE Operator (|) – Áramvonalas kimeneti feldolgozás

Ez a PIPE operátor nagyon hasznos, ha az első parancs kimenete a második parancs bemeneteként működik. Például állítsa az „ls -l” kimenetét „less”-re, és tekintse meg a parancs kimenetét.

ls -l | less

drwx------  tecmint tecmint  4.0 KB Thu Nov 16 12:03:02 2023 AnyDesk
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:35 2023 bin
drwxr-xr-x  root    root     4.0 KB Wed Nov 24 22:05:09 2021 DEBIAN
drwxrwxr-x  tecmint tecmint  4.0 KB Sat Nov 18 12:32:49 2023 Desktop
drwx--x---+ tecmint tecmint  100 KB Fri Dec  8 12:00:49 2023 Downloads
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 10:25:07 2023 llpp
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:26:46 2023 MyImages
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 14:55:42 2023 Obsidian Vault
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:32 2023 opt
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:46:54 2023 php
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 15:54:33 2023 tar_examples
.rw-rw-r--  tecmint tecmint   73 KB Mon Sep 18 11:46:02 2023 Apache-Web-Server-Security.png
.rw-rw-r--  tecmint tecmint  2.2 KB Sun Oct 29 00:17:15 2023 ChatGPT-SEO-Prompts
.rw-rw-r--  tecmint tecmint   41 KB Thu Nov 23 11:34:33 2023 Create-Users-in-Linux.png
...

8. Parancskombinációs operátor {}

Kombináljon két vagy több parancsot, a második parancs az első parancs végrehajtásától függ.

Például ellenőrizze, hogy a „bin” könyvtár elérhető-e vagy sem, és adja ki a megfelelő kimenetet.

[ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. Elsőbbségi operátor() – Parancsvégrehajtási parancs kezelése

A () operátor lehetővé teszi a parancsok elsőbbségi sorrendben történő végrehajtását.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

A fenti pszeudo parancsban mi van, ha a Command_x1 sikertelen? A Command_x2, Command_x3, Command_x4 egyike sem hajtódik végre, ehhez a Precedence Operatort használjuk, mint:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

A fenti pszeudo parancsban, ha a Command_x1 sikertelen, a Command_x2 is sikertelen, de a Command_x3 és Command_x4 továbbra is végrehajtódik a Command_x3 kilépési állapota.

10. Összefűzési operátor (\) – Többsoros parancs összefűzése

Az Összefűzési operátor (\), ahogy a név is jelzi, nagy parancsok összefűzésére szolgál több soron keresztül a shellben. Például az alábbi parancs megnyit egy test(1).txt szövegfájlt.

nano test\(1\).txt

Ez minden most. Hamarosan újabb érdekes cikkel jelentkezem. Addig is Maradjon velünk, egészséges, és csatlakozzon a Tecminthez. Ne felejtse el értékes visszajelzést adni a megjegyzés rovatunkban.