27Jun

Aloittelijan opas Shell Scripting 3: Lisää peruskomentoja &kahleet

Olet oppinut luomaan komentosarjoja, käyttämään argumentteja ja rakentamaan silmukoita varten. Katsotaan nyt muutamia peruskomentoja, tekstitiedostojen manipulointia ja ohjataan syöttöä ja tulostusta tiedostoihin ja muihin komentoihin.

Jotkut hyödylliset peruskäsitteet

Olemme jo antaneet sinulle komentosarjoja ja esimerkkipohjaista ääriviivaa silmukoille, mutta muista tarkistaa nämä artikkelit, jos olet äskettäin jättänyt komentorivisuunnitteluohjeemme.

Komentorivi on ihanaa monista syistä, ja uudelleenohjaus on yksi merkittävimmistä.Jos joudutte merkitsemään ja toistamaan jokaisen komennon tuotosta, jotta voisimme ryhtyä jatkotoimiin tai käyttää sitä jotain muuta, olisimme kaikki hulluttaneet kauan sitten. Uudelleenohjaus antaa meille mahdollisuuden käyttää tätä tuottoa ja tallentaa sen tai käyttää sitä välittömästi syötteenä toiselle komennolle. Voimme käyttää myös tiedostoja syötteinä muille komennoille.

Ennen kuin jatkamme, katetaan joitain peruskomentoja, jotka voivat olla käyttökelpoisia monissa eri paikoissa.

echo - Tämä komento yksinkertaisesti tulostaa( näyttää) koko argumenttinsa komentorivillä lähtö

echo-argumentti välilyönteillä

Kuten näet, erikoismerkit on "pakattava", jotta ne käsiteltäisiin normaalisti. Tämä tehdään käyttämällä merkkijonoa eteenpäin( \).On parempi ajatus käyttää lainauksia. Echo-komento toimii myös muuttujien kanssa.

Kuten näet, yksittäiset ja kaksinkertaiset lainausmerkit toimivat eri tavoin. Lisätietoja, tarkista, mikä on yksittäisten ja kaksoisotosten välinen ero Bash Shellissä?

kissa - Tämä komento näyttää tekstitiedostojen sisällön lähdönä.

cat file_to_be_read

Sanotaan luomme tämän tekstitiedoston nano:

Kun käytämme kissa komentoa tiedostossa, voimme nähdä sen tuotoksen.

grep - Tämä on yksi tehokkaimmista ja hyödyllisimmistä komennoista, jotka ovat käytettävissä Linuxissa. Se tarkoittaa Global / Regular Expression Print. Se näyttää läpi tiedoston ja tulostaa jonkin tietyn kuvion mukaisen rivin. Koska tämä malli perustuu "säännölliseen ilmaisuun", lyhyt linja voi tuottaa monenlaisia ​​sovittavia kuvioita. Ei, mutta voit syöttää haun hakemaan.

grep kuvion tiedosto

Vakuutan teille, grep voi tehdä enemmän, mutta nyt pidämme kiinni helpommasta tavaraa.

Lähtöjen uudelleenohjaus

Komentosignaalin lähdön ohjaamiseksi tiedostoon käytämme erikoismerkkiä, suurempaa kuin symboli( & gt;).

Vaihdo listaamme ylös, vai mitä?Syötä seuraava komento:

echo pepperoni & gt;lista

Näet, että kaiku ei enää näytä linjaa ja kun tarkastelemme "listan" sisällön sisältöä, näemme, mitä me kaikuimme siinä.

Huomaa myös, että edellisen "luettelon" sisältö poistettiin. Kokeile uudelleen:

Tämä voi olla hyödyllinen, kun haluat käyttää tiedostoa uudelleen, mutta usein haluamme lisätä olemassa olevaan tiedostoon. Tätä varten käytämme kahta peräkkäistä suurinta symbolia:

echo yellow peppers & gt; & gt;lista

Helppo! Käytämme tätä komentoa luodaksesi suuremman luettelon, eikö me?

Siellä me menemme. Uskon, että näet, miksi niin monet geeksit käyttävät komentorivin tehdä tehtäväluetteloita ja vastaavia, mutta se saa jopa paremman.

Otetaan komennon tuotos ja laita se tiedostoon:

ls -al / & gt;~ / rootlist

Luettelojen tekeminen tiedostoista, muokkaaminen alas ja sen jälkeen käynnissä olevat komennot haluamallasi tavalla eivät ole koskaan olleet yksinkertaisempia. Ja vaikka teemme näitä perustoimintoja komentorivillä, ne toimivat myös skripteissä.

Putkisto tai ketjuttaminen

Putkisto on niin nimetty, koska se käyttää putkea,( |, jaettuna useimmilla näppäimillä \ -näppäimellä).Pohjimmiltaan se vie yhden komennon tuoton ja syöttää sen suoraan toiselle. Voit luoda pitkän ketjun komentoja saada hyvin tarkka haluttu tuotos tällä tavalla, ja se on erittäin kätevä komentoja kuten grep.

Se toimii paljon kuin "& gt;", paitsi että sitä voi ketjuttaa useita kertoja ja sen vaikutus on yleisempi, koska sen ei tarvitse mennä tekstitiedoston läpi.

Kuten huomaat, grep on isokokoinen. Voit käyttää "-i" -lippua jättääksesi sen huomiotta.

Tulojen uudelleenohjaus

Voit myös ottaa komentoja käsitteleviä tiedostoja käyttäen vähemmän kuin symbolia( & lt;).

-kissa & lt;luettelo

"Se ei ole mitään eroa argumentin käyttämisestä!", Voit sanoa. No, olisit oikeassa tässä tapauksessa. Jos syötteen uudelleenohjaus todella tulee kätevästi ketjuttamalla komentoja yhteen.

Sanotaan, että haluamme suodattaa sanaa, jolla on "pep" siinä nykyisestä "list" -tiedostosta uudeksi tiedostoksi, jota kutsutaan "tarkistuksiksi".

grep pep & lt;luettelo & gt;tarkistukset

Toista tämä komento ja lisää lajittelu.

grep pep & lt;luettelo |lajitella & gt;muutokset

Tämä käyttää "pep" hakutermina syötetiedostosta "list", lajittele se aakkosjärjestyksessä( kaikki ylempiin termeihin, joita seuraa kaikki pienet tapaukset), sitten tuottaa se "revisions" -tiedostoon.

Järjestyskomennon havainnollistamiseksi tarkastelemme seuraavaa esimerkkiä:

Kuten näet, lisäämällä "-f" -valikon järjestyskomentoon voit ohittaa tapauksen. Tämä tekee meille helpommin aakkosjärjestyksen tekstitiedostojen riveihin ja sivuuttaa pääoman, kun sillä ei ole väliä.

Yksinkertainen komentosarja

Luomme komentosarjan, jolla on seuraava muoto:

-käsikirjoitus searchterm listfile

Se käyttää termiä ja käyttää grep-tiedostoa etsimällä luettelotiedostoa, lajittelemalla tulokset ja sitten tuottamalla ne toiseen tiedostoon.

Tässä on hakemisto, jossa testaamme komentosarjan:

Ja voimme luoda luettelon siitä, mitä täällä on, ja suorita komentosarja.

Sieltä mennään! Mitä enemmän opit säännöllisten lausekkeiden sääntöihin, sitä tarkemmin voit koota hakukomennon. Ja mikä tahansa, joka on voimassa lainausmerkinnöissä, voi korvata ensimmäisen argumenttisi!

Lajittelun osalta voit tehdä enemmän kuin vain lajitella aakkosjärjestykseen. Tutki man-sivua joitain seuraavista komennoista:

  • tsort - kehittyneempi topologinen lajittelutoiminto
  • tr - voit kartoittaa tiettyjä merkkejä muihin merkkeihin ja kirjoittaa niiden välillä.
  • uniq - poistaa kaikki ei-ainutlaatuiset
  • awk - todella edistyksellinen tekstinkäsittelykieli / -toiminto, jota voidaan käyttää erottamaan kentät tiedostonimiin
  • leikata, liitä / liity - komentoja, jotka hyödyttävät kenttien eristämistä tekstitiedostoista ja lisäämälläuudet tiedot sarakkeisiin
  • näyttää - hakuja, kuten grep does, mutta käyttää sanakirjatiedostoa( joka voidaan määritellä käyttäjäksi) lookup
  • wc - voit saada sananlaskenta, rivinlaskenta, merkkien määrä ja lisää

Näytimmejoissakin perusasiat tänään, jotka voivat olla niin käyttökelpoisia komentorivillä kuin komentosarjoissa. Tekstiin perustuvat tiedot ovat usein asioita, joita käytämme päivittäin, joten kykenemme toimimaan sen kanssa, etsimään sitä ja manipuloimaan sitä.

Mitkä ovat suosikkikirjoituksesi? Onko mitään erikoiskäyttöisiä komentosarjoja tekstipohjaisille tiedostoille? Jaa kommentteja, joita tiedät!