27Jun

Príručka pre začiatočníkov pre skriptovanie Shell 3: Viac základných príkazov &reťaze

Naučili ste sa vytvárať skripty, používať argumenty a vytvárať pre slučky. Teraz sa pozrime na niektoré ďalšie základné príkazy, manipuláciu s textovými súbormi a presmerovanie vstupov a výstupov na súbory a iné príkazy.

Niektoré základné užitočné príkazy

Už sme vám poskytli základné rozdelenie shell skriptov a príkladov na základe obrysu pre slučky, ale nezabudnite si tieto články skontrolovať, ak ste doposiaľ zmeškali našu sprievodcu skriptmi pre shell.

Príkazový riadok je skvelý z mnohých dôvodov a presmerovanie je jedným z najvýznamnejších. Ak ste museli vziať na vedomie a reprodukovať výstup každého príkazu, aby ste podnikli ďalšie kroky alebo použili to pre niečo iné, potom by sme sa už dávno zbláznili. Presmerovanie nám umožňuje použiť tento výstup a uložiť ho, alebo ho okamžite použiť ako vstup pre iný príkaz. Môžeme tiež použiť súbory ako vstupy pre iné príkazy.

Skôr ako budeme pokračovať, poďme sa zaoberať niektorými základnými príkazmi, ktoré môžu byť použiteľné na mnohých rôznych miestach.

echo - Tento príkaz jednoducho vytlačí( zobrazuje) celý argument na príkazovom riadku ako výstup

echo argument s medzerami

Ako vidíte, špeciálne znaky musia byť "uniknuté", aby boli normálne spracované.To sa deje pomocou spätného lomka( \) pred znakom. Je to lepší nápad použiť cenové ponuky. Príkaz echo funguje aj s premennými.

Ako vidíte, jednotlivé a dvojité citácie sa správajú inak. Ak chcete získať viac informácií, pozrite sa, aký je rozdiel medzi jednorazovými a dvojitými cenami v Bash Shell?

mačka - Tento príkaz zobrazuje obsah textových súborov ako výstup.

cat file_to_be_read

Povedzme, že vytvoríme tento textový súbor v nano:

Keď použijeme príkaz cat na súbor, môžeme vidieť jeho výstup.

grep - Toto je jeden z najsilnejších a najužitočnejších príkazov, ktoré máte k dispozícii v systéme Linux. Ide o globálny / regulárny výraz. Vyzerá cez súbor a vytlačí ľubovoľný riadok, ktorý zodpovedá určitému vzoru. Pretože tento vzor je založený na "regulárnom vyjadrení", stručná línia môže priniesť množstvo vzorov, ktoré sa majú zhodovať.Nie, ale môžete zadať ternu na vyhľadávanie.

grep vzor súboru

Uisťujem vás, grep môže robiť viac, ale teraz sa držme jednoduchšie veci.

Presmerovanie výstupov

Ak chcete presmerovať výstup príkazu do súboru, používame špeciálny znak, väčší ako symbol( & gt;).

Zmeňme náš zoznam hore, či nie? Zadajte nasledujúci príkaz:

echo pepperoni & gt;zoznam

Môžete vidieť, že ozvena už nezobrazuje riadok a keď sa pozrieme na obsah súboru "zoznam", vidíme, čo sme tam odzneli.

Taktiež berte na vedomie, že predchádzajúci obsah "zoznamu" bol odstránený.Vyskúšajte to znova:

Toto môže byť užitočné, ak chcete súbor opätovne použiť, ale často sa chceme pridať k existujúcemu súboru. Na tento účel používame dva po sebe idúce symboly:

echo yellow pappers & gt;zoznam

Ľahko! Použite tento príkaz na vytvorenie väčšieho zoznamu, či nie?

Tam ideme. Myslím, že môžete pochopiť, prečo toľko geekov používa príkazový riadok na zoznamy úloh a podobne, ale ešte lepšie.

Vychutnajte si výstup príkazu a vložte ho do súboru:

ls -al / & gt;~ / rootlist

Vytváranie zoznamov súborov, ich úpravy a následné spustenie príkazov na tých, ktoré chcete, nebolo nikdy jednoduchšie. A práve vtedy, keď robíme tieto základné funkcie v príkazovom riadku, fungujú to aj v skriptoch.

potrubia alebo reťazovanie

potrubia je takto pomenované, pretože používa potrubie,( |, zdieľané s \ key na väčšine klávesníc).V podstate trvá výstup jedného príkazu a priamo ho posiela do iného. Môžete vytvoriť dlhé reťazce príkazov, aby ste získali veľmi špecifický požadovaný výstup týmto spôsobom a je to veľmi výhodné pre príkazy ako grep.

Pôsobí ako "& gt;" s výnimkou toho, že môže byť viazaný niekoľkokrát a jeho účinok je všeobecnejší v tom, že nepotrebuje prejsť textový súbor.

Ako vidíte, grep sa rozlišuje veľké a malé písmená.Príznak "-i" môžete použiť, aby ste ignorovali prípad.

Presmerovanie vstupov

Môžete tiež prijímať vstupy zo súborov pre príkazy pomocou symbolu menej ako( & lt;).

cat

"To nie je iné ako použitie argumentu!", Môžete povedať.No, v tomto prípade by ste boli správne. Kde presmerovanie vstupu naozaj príde vhod, je to v príkaze spojenia.

Povedzme, že chceme filtrovať každé slovo, ktoré má "pep" v našom aktuálnom "zozname", do nového súboru s názvom "revisions".

grep pep

Opakujme tento príkaz a pridáme nejaké triedenie.

grep pep

Použije sa ako vyhľadávací výraz zo zoznamu vstupného súboru, usporiada ho v abecednom poradí( všetky veľké písmená budú nasledovať všetky malé výrazy) a potom sa do súboru "revisions".

Ak chcete zobraziť príkaz triedenia, pozrite sa na nasledujúci príklad:

Ako vidíte, pridanie príznaku "-f" príkazu sort umožňuje ignorovať prípad. To nám uľahčuje alfabetizovať riadky v textových súboroch a ignorovať veľké písmená, keď to nezáleží.

Jednoduchý skript

Vytvorme si skript, ktorý má nasledujúcu podobu:

skript searchterm listfile

Bude trvať na termíne a použijete grep na vyhľadávanie v zozname súborov, triedenie výsledkov a ich výstup do iného súboru.

Tu je adresár, ktorý budeme testovať skript v:

A môžeme vytvoriť zoznam toho, čo tu a potom spustiť skript.

Tu idete!Čím viac sa naučíte pravidlá regulárnych výrazov, tým lepšie môžete spojiť príkaz na vyhľadávanie. A všetko, čo je platné v úvodzovkách, môže nahradiť váš prvý argument!

Čo sa týka triedenia, môžete robiť viac ako len triediť abecedne. Pozrite sa na manuálovú stránku pre niektoré z nasledujúcich príkazov:

  • tsort - pokročilejšia funkcia topologického triedenia
  • tr - umožňuje mapovať špecifické znaky na iné znaky a prepisovať medzi nimi.
  • uniq - odstráni akékoľvek neštandardné( čítanie: duplicitné)
  • awk - skutočne pokročilý jazyk / funkcia spracovania textu, ktorá sa môže použiť na oddelenie polí v názvoch súborov
  • cut, paste / join - príkazy užitočné pre izoláciu polí z textových súborov a pridanienové dáta do stĺpcov
  • vzhľad - vyhľadávanie ako grep, ale používa slovníkový súbor( ktorý môže byť určený užívateľom) pre vyhľadávanie
  • wc - umožňuje získať počet slov, počet riadkov, počet znakov a ďalšie

na niektorých ďalších základoch dnes, ktoré môžu byť rovnako užitočné na príkazovom riadku ako v skriptoch. Textové údaje sú často jadrom vecí, ktoré používame denne, takže s nimi môžeme pracovať, vyhľadávať ich a manipulovať s nimi.

Aké sú vaše obľúbené skripty? Máte skripty na špeciálne použitie pre textové súbory? Zdieľajte to, čo poznáte v komentároch!