Shell-skriptimise algaja juhend 3: põhilised käsud ja ahelad

Sisukord:

Shell-skriptimise algaja juhend 3: põhilised käsud ja ahelad
Shell-skriptimise algaja juhend 3: põhilised käsud ja ahelad
Anonim
Olete õppinud, kuidas luua skripte, kasutada argumente ja ehitada silmuseid. Nüüd vaatame mõningaid lihtsamaid käske, tekstifailide manipuleerimist ja failide ja muude käskude sisend-väljundi suunamist.
Olete õppinud, kuidas luua skripte, kasutada argumente ja ehitada silmuseid. Nüüd vaatame mõningaid lihtsamaid käske, tekstifailide manipuleerimist ja failide ja muude käskude sisend-väljundi suunamist.

Mõned põhilised kasulikud käsklused

Oleme juba andnud sulle shellipõhiste skriptide ja näidetel põhinevate skriptide ülevaate, kuid kindlasti vaadake neid artikleid, kui olete siiani kasutanud oma shelli skriptijuhist.

Käsurea on suurepärane mitmel põhjusel ja ümbersuunamine on üks silmapaistvamaid. Kui teil oleks pidanud iga käsu väljundit märkama ja paljundama, et võtta täiendavaid meetmeid või kasutada seda midagi muud, siis oleksime kõik juba varem hulluks läinud. Redirection võimaldab meil seda väljundit kasutada ja salvestada või kohe kasutada seda teise käsu sisendina. Samuti võime kasutada faile sisenditeks muude käskude jaoks.

Enne kui me läheme edasi, vaatame mõningaid põhilisi käske, mis võivad olla kasulikud paljudes erinevates kohtades.

kaja - See käsk lihtsalt printimib (kuvab) kogu oma argumendi käsureale väljundina

echo argument with spaces

Nagu näete, peavad erimärgid olema "põgenenud", nii et neid koheldakse normaalselt. Seda tehakse tähemärgi ees asuva tagasitäigu () abil. See on parem mõte kasutada hinnapakkumisi. Echo käsk toimib ka muutujatega.
Nagu näete, peavad erimärgid olema "põgenenud", nii et neid koheldakse normaalselt. Seda tehakse tähemärgi ees asuva tagasitäigu () abil. See on parem mõte kasutada hinnapakkumisi. Echo käsk toimib ka muutujatega.
Nagu näete, käivad üksik- ja topeltjutumendid erinevalt. Lisateabe saamiseks vaadake, milline on Bashi korpusest ühe ja kahekordse tsitaadi erinevus?
Nagu näete, käivad üksik- ja topeltjutumendid erinevalt. Lisateabe saamiseks vaadake, milline on Bashi korpusest ühe ja kahekordse tsitaadi erinevus?

kass - See käsk kuvab tekstifailide sisu väljundina.

cat file_to_be_read

Oletame, et me loome selle tekstifaili nano-s:

Kui kasutame faili käsku kass, näeme selle väljundit.
Kui kasutame faili käsku kass, näeme selle väljundit.
grep - See on üks kõige võimsamaid ja kasulikke käske, mis on teile Linuxis saadaval. See tähistab Global / Regular Expression Print. See vaatab läbi faili ja prindib kõik jooned, mis sobivad konkreetse mustriga. Kuna see muster põhineb "regulaaravaldisel", võib lühike joon tuua kaasa hulgaliselt mustreid. Sest mitte, aga võite sisestada otsinguterminali.
grep - See on üks kõige võimsamaid ja kasulikke käske, mis on teile Linuxis saadaval. See tähistab Global / Regular Expression Print. See vaatab läbi faili ja prindib kõik jooned, mis sobivad konkreetse mustriga. Kuna see muster põhineb "regulaaravaldisel", võib lühike joon tuua kaasa hulgaliselt mustreid. Sest mitte, aga võite sisestada otsinguterminali.

grep pattern file

Kinnitan teile, et grep saab rohkem teha, kuid nüüd jääme kergemate asjade juurde.
Kinnitan teile, et grep saab rohkem teha, kuid nüüd jääme kergemate asjade juurde.

Väljundite ümbersuunamine

Käsu väljundi ümbersuunamiseks failile kasutab me erimärki, suurem kui sümbol (>).

Muutame oma nimekirja üles, kas me? Sisestage järgmine käsk:

echo pepperoni > list

Näete, et kaja ei näita enam liini, ja kui vaatame faili "loendi" sisu, näeme, mida me siin kajastasime.
Näete, et kaja ei näita enam liini, ja kui vaatame faili "loendi" sisu, näeme, mida me siin kajastasime.

Samuti võta arvesse, et eelmise nimekirja sisu on eemaldatud. Proovige uuesti:

See võib olla kasulik, kui soovite faili uuesti kasutada, kuid tihti soovime lihtsalt olemasolevale failile lisada. Selleks kasutame kahte järjestikust rohkem kui sümboleid:
See võib olla kasulik, kui soovite faili uuesti kasutada, kuid tihti soovime lihtsalt olemasolevale failile lisada. Selleks kasutame kahte järjestikust rohkem kui sümboleid:

echo yellow peppers >> list

Lihtne! Kasutame seda käsku suurema loendi loomiseks, kas me peame?
Lihtne! Kasutame seda käsku suurema loendi loomiseks, kas me peame?
Seal läheme. Ma arvan, et näete, miks nii paljud geeksid kasutavad käsku, et teha ülesannete nimekirju ja muid sarnaseid, kuid see muutub veelgi paremaks.
Seal läheme. Ma arvan, et näete, miks nii paljud geeksid kasutavad käsku, et teha ülesannete nimekirju ja muid sarnaseid, kuid see muutub veelgi paremaks.

Vaatame käsu väljundi ja pane see failiks:

ls –al / > ~/rootlist

Failide loendite koostamine, nende redigeerimine ja soovitud käskude käitamine pole kunagi olnud lihtsam. Ja kui me teeme neid põhifunktsioone käsureal, siis toimivad need ka skriptidena hästi.
Failide loendite koostamine, nende redigeerimine ja soovitud käskude käitamine pole kunagi olnud lihtsam. Ja kui me teeme neid põhifunktsioone käsureal, siis toimivad need ka skriptidena hästi.

Torustik või sidumine

Torustik on nimeks antud, kuna see kasutab toru (|; jagatud võtmega enamuses klaviatuuril). Sisuliselt võtab see ühe käsu väljund ja annab selle otse teisele. Saate luua pikkade käskude ahelaid, et sellisel viisil väga spetsiifilist soovitud väljundit saada, ja see on väga kasulik selliste käskude jaoks nagu grep.

See toimib palju nagu ">", välja arvatud juhul, kui seda saab siduda mitmel korral ja selle mõju on üldisem, kuna see ei pea läbima tekstifaili.
See toimib palju nagu ">", välja arvatud juhul, kui seda saab siduda mitmel korral ja selle mõju on üldisem, kuna see ei pea läbima tekstifaili.

Nagu näete, on grep tõstutundlik. Võite kasutada "-i" lippu, et ignoreerida seda.

Image
Image

Sisendite ümbersuunamine

Võite sisestada ka failidest käsud, kasutades vähem kui sümbolit (<).

cat < list

"See ei erine argumendi kasutamisest!" Võite öelda. Noh, see oleks korrektne. Kui sisendi ümbersuunamine tõepoolest on kasulik, on see aheldamise käsud koos.
"See ei erine argumendi kasutamisest!" Võite öelda. Noh, see oleks korrektne. Kui sisendi ümbersuunamine tõepoolest on kasulik, on see aheldamise käsud koos.

Oletame, et tahame filtreerida kõik meie praeguse "loendi" faili peal olevad sõnad "pep" uude faili nimega "versioonid".

grep pep < list > revisions

Vaatame selle käsu uuesti ja lisame sorteerimise.
Vaatame selle käsu uuesti ja lisame sorteerimise.

grep pep < list | sort > revisions

Selles kasutatakse sisendfaili "loendina" otsingutermina "pep", sorteerige see tähestikulises järjekorras (kõik suurtähtede terminid, millele järgneb kõik väikseimad terminid), seejärel edastage see faili "muudatused".
Selles kasutatakse sisendfaili "loendina" otsingutermina "pep", sorteerige see tähestikulises järjekorras (kõik suurtähtede terminid, millele järgneb kõik väikseimad terminid), seejärel edastage see faili "muudatused".

Sortimisjuhise illustreerimiseks vaatame järgmist näidet:

Nagu näete, sorteerimise käskluse "-f" lisamine võimaldab ignoreerida juhtumit. See muudab tekstifailide ridade tähestikku lihtsaks ja ignoreerib suurtähtede kasutamist, kui see ei ole oluline.
Nagu näete, sorteerimise käskluse "-f" lisamine võimaldab ignoreerida juhtumit. See muudab tekstifailide ridade tähestikku lihtsaks ja ignoreerib suurtähtede kasutamist, kui see ei ole oluline.

Lihtne skript

Loome skripti, millel on järgmine vorm:

script searchterm listfile

See võtab sõna ja kasutab grep, et otsida loendifaile, sortida tulemusi ja seejärel väljastada need teisele failile.

Siin on kataloog, mille me skripti katsetame:
Siin on kataloog, mille me skripti katsetame:
Ja me saame luua nimekirja siit, seejärel käivitage skript.
Ja me saame luua nimekirja siit, seejärel käivitage skript.
Palun! Mida rohkem tunnete regulaaravaldiste reegleid, seda täpsemalt saate otsingukäsu kokku panna. Ja kõik, mis kehtib jutumärkides, saab asendada teie esimese argumendi!
Palun! Mida rohkem tunnete regulaaravaldiste reegleid, seda täpsemalt saate otsingukäsu kokku panna. Ja kõik, mis kehtib jutumärkides, saab asendada teie esimese argumendi!

Sorteerimise osas saate teha rohkem kui lihtsalt sorteerida tähestikulises järjekorras. Vaadake mõnda järgmistest käskudest menüülehte:

  • tsort - täpsem topoloogiline sorteerimisfunktsioon
  • tr - saate kaardistada kindlaid märke teistele tähemärkidele ja neid transkribeerida.
  • uniq - eemaldab kõik mitte-ainulaadsed (loe: duplikaat)
  • awk - tõesti täiustatud tekstitöötluse keel / funktsioon, mida saab kasutada väljades failinimede eraldamiseks
  • lõigata, kleepida / liituda - käsud, mis on kasulikud väljade eraldamiseks tekstifailidest ja uute andmete lisamiseks veergudesse
  • look - otsingud nagu grep, kuid otsingu abil kasutatakse sõnastikufaili (mida saab täpsustada kasutaja poolt)
  • wc - võimaldab teil saada sõnaarvu, joonide arvu, märkide arvu ja palju muud

Vaadeldes veelgi põhitõdesid, mis võivad olla nii käsitsi kui skriptidelt kasulikud. Tekstipõhised andmed on tihti kesksel kohal asjades, mida me igapäevaselt kasutame, et saaksime sellega koostööd teha, seda otsida ja manipuleerida see on võti.

Mis on teie lemmik skriptid? Kas teil on tekstipõhiste failide jaoks eriotstarbelised skriptid? Jagage kommentaare, mida te teate!

Soovitan: