A Shell Scripting kezdő útmutatója 3: További alapparancsok és láncok

Tartalomjegyzék:

A Shell Scripting kezdő útmutatója 3: További alapparancsok és láncok
A Shell Scripting kezdő útmutatója 3: További alapparancsok és láncok

Videó: A Shell Scripting kezdő útmutatója 3: További alapparancsok és láncok

Videó: A Shell Scripting kezdő útmutatója 3: További alapparancsok és láncok
Videó: Shortcut Key to Shut Down Windows 8 & 8.1 PC or Laptop 2024, Április
Anonim
Megtanulta, hogyan hozhat létre parancsfájlokat, argumentumokat használhat fel, és létrehozhat hurkokhoz. 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.
Megtanulta, hogyan hozhat létre parancsfájlokat, argumentumokat használhat fel, és létrehozhat hurkokhoz. 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 a ciklusok példaszerű körvonalát, de mindenképpen nézzük meg azokat a cikkeket, ha eddig nem találtuk meg a shell-parancsfájlokat.

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, amely sok helyen használható.

visszhang - Ez a parancs egyszerűen kinyomtatja (megjeleníti) az argumentum teljes tartalmát a parancssorban kimenetként

echo argument with spaces

Amint látja, a különleges karaktereket "el kell menekíteni", 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.
Amint látja, a különleges karaktereket "el kell menekíteni", 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.
Amint látja, az egyszeri és kettős idézetek viselkednek másképp. 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?
Amint látja, az egyszeri és kettős idézetek viselkednek másképp. 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 létrehozzuk ezt a szöveges fájlt a nano-ban:

Image
Image

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

grep - Ez az egyik legerőteljesebb és leginkább hasznos 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 - Ez az egyik legerőteljesebb és leginkább hasznos 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 pattern file

Biztosíthatom, hogy a grep többet tehet, de most már ragaszkodjunk a könnyebb dolgokhoz.
Biztosíthatom, 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ásához egy fájlba speciális karaktert használunk, a nagyobb szimbólumot (>).

Nézzük fel a listát, ugye? Adja meg a következő parancsot:

echo pepperoni > list

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

Vegye figyelembe, hogy a "lista" előző tartalmát eltávolították. Próbáld újra:

Ez hasznos lehet egy fájl újrafelhasználásához, de gyakran csak meglévő fájlhoz szeretnénk hozzáadni. Ehhez két egymást követő nagyobb méretű szimbólumot használunk:
Ez hasznos lehet egy fájl újrafelhasználásához, de gyakran csak meglévő fájlhoz szeretnénk hozzáadni. Ehhez két egymást követő nagyobb méretű szimbólumot használunk:

echo yellow peppers >> list

Könnyen! Használjuk ezt a parancsot egy nagyobb lista létrehozásához, mi?
Könnyen! Használjuk ezt a parancsot egy nagyobb lista létrehozásához, mi?
Itt 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.
Itt 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 / > ~/rootlist

A fájlok listázá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.
A fájlok listázá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 nevezik el, hogy használja a csövet (| | osztva a billentyűvel a legtöbb billentyűzeten). 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.

Sokat mûködik, mint a ">", kivéve, hogy többször is láncolva lehet, és hatása általánosabb, mivel nem kell egy szövegfájlon átmenni.
Sokat mûködik, mint a ">", kivéve, hogy többször is láncolva lehet, és hatása általánosabb, mivel nem kell egy szövegfájlon átmenni.

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

Image
Image

Bemenetek átirányítása

A parancsfájlokból származó bemeneteket is használhatja a kevésbé szimbólummal (<).

cat < list

"Ez nem különbözik az érvelés használatától", mondja. Nos, ebben az esetben helyes lenne. Ahol a bemenetek átirányítása valóban hasznos, a láncolási parancsok együttesek.
"Ez nem különbözik az érvelés használatától", mondja. Nos, ebben az esetben helyes lenne. Ahol a bemenetek átirányítása valóban hasznos, a láncolási parancsok együttesek.

Tegyük fel, hogy minden olyan szót szűrni akarunk, amellyel a "listánk" fájljából "pep" van benne egy új, "javítások" nevű fájlba.

grep pep < list > revisions

Ismételjük ezt a parancsot, és adjunk hozzá sort.
Ismételjük ezt a parancsot, és adjunk hozzá sort.

grep pep < list | sort > revisions

Image
Image

Ez a "pep" kifejezést a "list" bemeneti fájlt kereső kifejezésként fogja használni, abc sorrendben rendezi (minden nagybetűs kifejezéseket, amelyeket kisbetűs kifejezések követnek), majd kiadja a "revision" fájlba.

A rendezési parancs ábrázolásához nézzük a következő példát:

Amint látja, a "-f" jelző hozzáadása a rendezési parancshoz 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.
Amint látja, a "-f" jelző hozzáadása a rendezési parancshoz 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

Létre kell hoznunk egy parancsfájlt, amelynek a következő formája van:

script searchterm listfile

Ez a fogalmat veszi igénybe, és a grep-ot keresheti egy listafájl segítségével, rendezi az eredményeket, majd kiadja őket egy másik fájlba.

Itt van a könyvtár, amelyben teszteljük a szkriptet:
Itt van a könyvtár, amelyben teszteljük a szkriptet:
És létrehozhatunk egy listát, ami itt van, majd futtassa a szkriptet.
És létrehozhatunk egy listát, ami itt van, majd futtassa a szkriptet.
Nesze! 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!
Nesze! 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 tehetsz, mint egyszerűen alfabetikus sorrendben. Vessen egy pillantást a man oldalra az alábbi parancsok közül:

  • tsort - fejlettebb topológiai rendezési funkció
  • tr - lehetővé teszi a karakterek más karakterekhez való hozzárendelését és átírását.
  • uniq - eltávolítja a nem egyedi (olvasható: duplikált)
  • awk - egy igazán fejlett szövegfeldolgozó nyelv / függvény, amelyet a fájlnevek mezőinek elkülönítésére használhatunk
  • vágás, beillesztés / csatlakozás - parancsok, amelyek a mezők elkülönítésére szolgálnak a szövegfájlokból és új adatokat oszlopokká
  • look - olyan keresések, mint a grep does, de használ egy szótárat (amely felhasználó-specifikus) a kereséshez
  • wc - lehetővé teszi számok számát, vonalszámlálót, karakter számlálást stb

Vettünk egy pillantást néhány alapra ma, amely 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.

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

Ajánlott: