27Jun

A Shell Scripting Kezdők Útmutatója 3: További alapparancsok &láncok

Megtanultuk, hogyan készítsünk szkripteket, használhatunk argumentumokat és építhetünk hurkokat. Vessünk egy pillantást néhány alapvető parancsra, szövegfájl-manipulációra, valamint a fájlok és egyéb parancsok bemeneti és kimeneti átirányítására.

Néhány alapvető hasznos parancs

Már megadtuk a shell parancsfájlok alapvető részletezését és egy példakénti vázlatot a hurkok számára, de mindenképpen nézzük meg ezeket a cikkeket, ha eddig hiányzott a shell parancsfájl-útmutató.

A parancssor sok okból csodálatos, és az átirányítás az egyik legjelentősebb. Ha meg kellett volna jegyezned és reprodukálnod kell minden parancs kimenetét, hogy további lépéseket tegyünk, vagy használjunk valami mást, akkor régen mindannyian őrültünk. Az átirányítás segítségével ezt a kimenetet használhatjuk és menthetjük el, vagy azonnal felhasználhatjuk más parancs bemeneteként. A fájlokat más parancsok bemeneteként is használhatjuk.

Mielőtt folytatnánk, fedezzünk néhány alapvető parancsot, amelyek számos helyen használhatók.

echo - Ez a parancs egyszerűen kinyomtatja( megjeleníti) az argumentum egészét a parancssorban kimenetként

echo argumentumban

szóközökkel Ahogy láthatja, a speciális karaktereket "meg kell szüntetni", hogy normálisan kezeljék őket. Ezt a karakter előtti visszalövés( \) segítségével kell végrehajtani. Jobb ötlet az árajánlatok használatára. Az echo parancs változókkal is működik.

Ahogy láthatja, az egyszeri és kettős idézetek eltérő módon viselkednek. További információkért nézd meg, mi a különbség az egyszemélyes és kettős idézetek között a Bash Shell-ben?

macska - Ez a parancs megjeleníti a szöveges fájlok tartalmát kimenetként.

cat file_to_be_read

Tegyük fel, hogy ezt a szöveges fájlt nano-ban hoztuk létre:

Amikor a cat parancsot használjuk a fájlon, láthatjuk kimenetét.

grep - Ez az egyik leghatékonyabb és legalkalmasabb parancs a Linux alatt. Globális / Regular Expression Print. Egy fájlon keresztül néz ki, és kinyomtat minden olyan sort, amely megfelel egy adott mintának. Mivel ez a minta a "szabályos kifejezés" -re épül, egy tömör vonal sokféle mintát hozhat létre, hogy illeszkedjen. Azonban, ha nem, akkor meg tudsz adni egy trénert a kereséshez.

grep mintafájl

Biztosítom, hogy a grep többet tehet, de most már ragaszkodjunk a könnyebb dolgokhoz.

Kimenetek átirányítása

Egy parancs kimenetének átirányítása egy fájlhoz speciális karaktert használunk, a nagyobb szimbólumot( & gt;).

Változtassuk meg a listánkat, ugye? Adja meg a következő parancsot:

echo pepperoni & gt;lista

Láthatja, hogy az echo többé nem jeleníti meg a vonalat, és ha megnézzük a "list" fájl tartalmát, látjuk, hogy mi visszhangzott ott.

Szintén vegye figyelembe, hogy a "lista" előző tartalmát eltávolították. Próbálja újra:

Ez hasznos lehet, ha újra szeretné használni a fájlt, de gyakran csak hozzá akarunk adni egy meglévő fájlt. Ehhez két egymást követő nagyobb szimbólumot használunk:

echo sárga paprika & gt; & gt;lista

Könnyű!Használjuk ezt a parancsot egy nagyobb lista létrehozásához, mi?

Ott megyünk. Azt hiszem, láthatja, hogy miért olyan sok geek használják a parancssort, hogy tennivalókat és hasonlókat tegyenek, de még jobb lesz.

Vegyük a parancs kimenetét és fájlba helyezzük:

ls -al / & gt;~ / gyökérlista

A fájlok felsorolása, szerkesztése, majd a kívánt parancsok futtatása soha nem volt egyszerűbb.És miközben ezeket a parancssori alapfunkciókat csináljuk, ezek jól működnek a szkriptekben is.

Csővezeték, vagy láncolás

A csővezetéket úgy nevezték el, mert a csövet használja( | | a legtöbb billentyűzeten a \ billentyűvel osztva).Lényegében egy parancs kimenetét veszi, és közvetlenül továbbítja a másiknak. Létrehozhat parancsok hosszú láncolatát, hogy ilyen módon kiválassza a kívánt specifikált kimenetet, és nagyon kényelmes a parancsokhoz hasonlóan.

Nagyon hasonlít a "& gt;" kifejezésre, kivéve, ha többször is láncolhat, és ennek hatása általánosabb, mivel nem kell átírnia egy szöveges fájlt.

Ahogy láthatja, a grep kis-és nagybetűkre érzékeny. Használhatja a "-i" jelzőt, hogy figyelmen kívül hagyja az esetet.

Átirányító bemenetek

A parancsfájlokról a bemeneteket a kevésbé szimbólummal( & lt;) is használhatja.

cat & lt;lista

"Ez nem más, mint egy argumentum használata!" Mondhatnád. Nos, ebben az esetben helyes lenne. Ahol a bemenetek átirányítása valóban hasznos, a parancsok együttes láncolásában van.

Tegyük fel, hogy minden olyan szót szűrni akarunk, amely a "jelenlegi" listáján lévő "pep" -et egy új, "revízió" nevű fájlba szűrte.

grep pep

Vessük át ezt a parancsot, és adjunk hozzá valamilyen sort.

grep pep

Ez a "pep" kifejezést használja a "listában" lévő bemeneti fájl keresési kifejezésévé, sorba rendezi betűrendben( minden nagybetűs kifejezés, amelyet kisbetűs kifejezések követnek), majd adja ki a "revision" fájlba.

A rendezési parancs illusztrálására nézzük meg a következő példát:

Amint láthatja, a "-f" jelző hozzáadásával a rendezési parancs lehetővé teszi, hogy figyelmen kívül hagyja az esetet. Ez megkönnyíti számunkra a szövegfájlok sorrendjét, és figyelmen kívül hagyja a nagybetűket, ha nem számít.

Egy egyszerű szkript

Hozzon létre egy parancsfájlt, amely a következő formában van:

parancsfájl searchterm listfile

A kifejezést fogják használni, és a grep-ot keresni egy listafájlon, rendezni az eredményeket, majd kiadni őket egy másik fájlba.

Itt van a könyvtár, amelyben teszteljük a szkriptet:

És létrehozhatunk egy listát, hogy mi itt, majd futtassuk a szkriptet.

Ott van! Minél többet megtanulsz a szabályos kifejezések szabályairól, annál pontosabban össze tudsz állítani egy keresési parancsot.És mindaz, ami érvényes idézetekben helyettesítheti az első érvet!

Ami a válogatást illeti, többet tehet, mint egyszerűen sorrendben rendezni. Tekintse meg a man oldalon a következő parancsok valamelyikét:

  • tsort - fejlettebb topológiai rendezési funkció
  • tr - lehetővé teszi, hogy meghatározott karaktereket más karakterekhez rendezzen át, és átírja közöttük.
  • uniq - eltávolít minden nem egyedi( olvasott: duplikált)
  • awk-t - egy igazán fejlett szövegfeldolgozó nyelv / funkció, amely a mezők elkülönítésére használható fájlnevekben
  • vágás, beillesztés / csatlakozás - parancsok,új adatok az
  • oszlopba
  • look - olyan keresések, mint a grep does, de használ egy szótárnevet( amelyre a felhasználó megadhatja) a keresésre
  • wc - lehetővé teszi számok számát, vonalszámlálót, karakterszámlálást és több

néhány olyan alapon ma, ami hasznos lehet a parancssorban, mint a szkriptekben. A szövegalapú adatok gyakran a mindennapi dolgok középpontjában állnak, így képesek vagyunk vele együttműködni, keresni és manipulálni.

Melyek a kedvenc szkriptjeid? Van olyan speciálisan használható szkript a szövegalapú fájlokhoz? Ossza meg, amit tud a megjegyzésekben!