Két vagy több terminálparancs futtatása a Linuxon egyszer
Ha Linuxot használ, tudja, milyen hasznos lehet a parancssor a fájlok kezelésével, a szoftver telepítésével és a programok indításával. De még hatékonyabb is lehet, ha egyszerre több parancsot is futtat.
Két vagy több parancs kombinálása a parancssorban „parancsláncolás” néven is ismert. Különböző módon megmutatjuk a parancssorban lévő parancsok kombinálását.
Első lehetőség: A Semicolon (;) operátor
A pontosvessző (;) operátor lehetővé teszi, hogy több parancsot hajtson végre egymástól függetlenül attól, hogy minden korábbi parancs sikeres-e. Nyissa meg például a terminálablakot (Ctrl + Alt + T az Ubuntu és a Linux Mint). Ezután írja be a következő három parancsot egy sorba, pontosvesszővel elválasztva, majd nyomja meg az Enter billentyűt. Ez megadja az aktuális könyvtár listáját ( ls
), megtudja, melyik könyvtárban van jelenleg pwd
), és megjelenítse a bejelentkezési nevét ( Ki vagyok én
) egyszerre.
ls; pwd; Ki vagyok én
Nem kell teret sem tenni a pontosvesszők és a parancsok között. A három parancsot megadhatja ls; PWD; whoami
. Azonban a terek könnyebben olvashatóvá teszik a kombinált parancsot, ami különösen akkor hasznos, ha kombinált parancsot helyez be egy shell parancsfájlba.
Második lehetőség: a logikai és üzemeltető (& &)
Ha azt szeretné, hogy a második parancs csak akkor induljon el, ha az első parancs sikeres, szétválaszthatja a parancsokat a logikai AND operátorral, ami két sáv ( &&
). Például a MyFolder nevű könyvtárat szeretnénk létrehozni, majd azt a könyvtárba változtatni, feltéve, hogy sikeresen létrehozták. Tehát a parancssorba írjuk be a következőket, és nyomjuk meg az Enter billentyűt.
mkdir MyFolder & & cd MyFolder
A mappa sikeresen létrejött, így a CD
parancsot hajtott végre, és most az új mappában vagyunk.
A legtöbb esetben a pontosvessző operátor helyett a logikai AND operátort használjuk (;
). Ez biztosítja, hogy ne csináljon semmit katasztrofális. Például, ha egy parancsot futtat egy könyvtárba való áthelyezéshez, majd kényszerítené mindent a könyvtárban rekurzívan ( cd / some_directory; rm -Rf *
), akkor a rendszer megsérülhet, ha a könyvtár megváltozása nem történt meg. Nem azt javasoljuk, hogy egy parancsot futtasson, hogy feltétlenül törölje az összes fájlt egy könyvtárban.
3. lehetőség: a logikai vagy operátor (||)
Néha csak egy második parancsot kell végrehajtani, ha az első parancs végrehajtja nem sikerül. Ehhez használjuk a logikai VAGY operátort, vagy két függőleges sávot ( ||
). Például szeretnénk ellenőrizni, hogy létezik-e a MyFolder könyvtár ( [-d ~ / MyFolder]
) és hozza létre, ha nem ( mkdir ~ / MyFolder
). Tehát az alábbi parancsot írjuk be a parancssorba, és nyomjuk meg az Entert.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Győződjön meg róla, hogy az első zárójel után egy szóköz van, és a második konzolt vagy az első parancsot, amely ellenőrzi, hogy létezik-e a könyvtár, nem fog működni.
Példánkban nem létezik a MyFolder könyvtár, így a második parancs létrehozza a könyvtárat.
Több operátor kombinálása
A parancssorban több operátor is kombinálható. Például először azt szeretnénk ellenőrizni, hogy létezik-e fájl ( [-f ~ / sample.txt]
). Ha igen, akkor egy üzenetet nyomtatunk a képernyőre, mondván: echo „Fájl létezik”.
). Ha nem, akkor létrehozzuk a fájlt ( érintse meg a ~ / sample.txt parancsot
). Tehát a következő parancsot írjuk be a parancssorba, és nyomjuk meg az Enter billentyűt.
[-f ~ / sample.txt] && echo „A fájl létezik.” || érintse meg a ~ / sample.txt parancsot
Példánkban a fájl nem létezett, így létrejött.
Íme egy hasznos összefoglaló a parancsok egyesítéséhez használt operátorokról:
-
A; B
- Futtassa az A-t, majd a B-t, függetlenül attól, hogy sikerült-e vagy sem -
A && B
- A B futtatás csak akkor érhető el, ha az A sikerült -
A || B
- B futtatás csak akkor, ha az A nem sikerült
A parancsok egyesítésének összes módja használható a shell-szkriptekben is Linux és Windows 10 rendszerben.
Automatikusan korrigálhatja a helyesírást és a helyesírást a „cd” használatakor a Linux parancssori sorában, hogy elkerülje a komoly következményeket a parancsok kombinálásakor.