27Jun

"Shell" scenarijų 3 pradedantiesiems vadovas: daugiau pagrindinių komandų irGrandinės

Sužinojote, kaip kurti scenarijus, naudoti argumentus ir kurti kilpas. Dabar pažvelkime į keletą pagrindinių komandų, manipuliavimą teksto failais ir peradresavimą įvesdami ir išvesdami į failus ir kitas komandas.

Kai kurie pagrindiniai naudingi komandai

Mes jau pateikėme pagrindinį shell scenarijų suskirstymą ir koncepcijas, skirtas kilpoms, tačiau būtinai patikrinkite tuos straipsnius, jei iki šiol nepatekoite mūsų skydo apibūdinimo vadovo.

Komandų eilutė yra nuostabi dėl daugelio priežasčių, o peradresavimas yra vienas iš labiausiai žinomų.Jei jums reikėjo atkreipti dėmesį ir atkurti kiekvienos komandos išvestį, kad galėtumėte imtis tolesnių veiksmų arba naudoti tai ko nors kitai, mes visi jau seniai nusivylėme. Persiuntimas leidžia mums naudoti tą išvestį ir išsaugoti jį arba iš karto jį naudoti kaip kitos komandos komandą.Mes taip pat galime naudoti failus kaip įvestis kitoms komandoms.

Prieš pradėdami einame, apžvelkime keletą pagrindinių komandų, kurios gali būti naudojamos daugelyje skirtingų vietų.

echo - ši komanda tiesiog atspaudžia visą savo argumentą komandinėje eilutėje kaip išvesties

echo argumentą su tarpeliais

. Kaip matote, specialieji simboliai turi būti "pabėgę", kad jie būtų traktuojami kaip normalus. Tai daroma naudojant priešingą simbolį grieštinį brūkšnį( \).Tai geriau idėja naudoti kabutes. Echo komanda taip pat veikia su kintamaisiais.

Kaip matote, vienos ir dvigubos kabutės elgiasi skirtingai. Norėdami gauti daugiau informacijos, patikrinkite, koks skirtumas tarp vieno ir dvigubo citavimo "Bash" korpuse?

katė - Ši komanda parodo tekstinių failų turinį kaip išvestį.

cat file_to_be_read

Tarkime, kad mes sukuriame šį tekstinį failą nano:

Kai mes naudojame failo kačių komandą, matome, kad tai yra išvestis.

grep - tai viena iš galingiausių ir naudingesnių komandų, kurias galite naudoti "Linux".Tai reiškia "Global / Regular Expression Print".Jis žiūri per failą ir spausdina bet kurią liniją, atitinkančią konkretų modelį.Kadangi šis modelis pagrįstas "reguliaraus išraiškos", trumpas eilutė gali suteikti daugybę modelių, kurie turi būti suderinti. Ne, tačiau jūs galite įvesti iešmo ieškojimą.

grep modelio failas

Aš tau įsitikinau, kad grep gali padaryti daugiau, bet dabar pasilikime prie lengvesnių dalykų.

peradresavimo išvestys

Norėdami peradresuoti komandų išvestį į failą, mes naudojame specialųjį simbolį, didesnį nei simbolį( & gt;).

Pakeiskime savo sąrašą, ar mes?Įveskite šią komandą:

echo pepperoni & gt;sąrašas

Jūs galite pamatyti, kad echo linija nebėra rodoma, o kai mes žiūrime į "sąrašo" failo turinį, mes matome, ką mes ten pakartojome.

Taip pat atkreipkite dėmesį, kad ankstesnis "sąrašo" turinys buvo pašalintas. Išbandykite dar kartą:

Tai gali būti naudinga, kai norite pakartotinai naudoti failą, bet dažnai mes tiesiog norime pridėti prie esamo failo. Tam mes naudojame du iš eilės daugiau nei simbolius:

echo geltonieji pipirai & gt; & gt;sąrašas

Lengvas! Leiskite naudoti šią komandą, norėdami sukurti didesnį sąrašą, ar mes?

ten mes einame. Manau, kad jūs galite pamatyti, kodėl tiek daug "geeks" naudoja komandinę eilutę, kad sudarytų darbų sąrašus ir pan., Bet tai dar geriau.

Paimkime komandos išvestį ir įtraukiame į failą:

ls -al />~ / rootlist

Sukurti failų sąrašus, juos redaguoti ir tuomet paleisti komandas, kurias norite, niekada nebuvo paprasčiau. Ir, nors mes atliekame šias pagrindines funkcijas komandinėje eilutėje, tai taip pat veikia scenarijus.

vamzdynas arba grandininis

vamzdynas yra taip pavadintas, nes jis naudoja vamzdį( |; dalijamasi su \ mygtuku daugumoje klaviatūrų).Iš esmės, ji užima vieną komandą ir iš karto perduoda ją kitai. Galite sukurti ilgas komandų grandines, kad gautumėte labai konkrečią norimą produkciją tokiu būdu, ir tai labai patogu tokiems komandams kaip grep.

Jis veikia taip, kaip "& gt;", išskyrus tai, kad jis gali būti daugialypiai grandinamas ir jo poveikis yra bendresnis, nes nereikia pereiti per teksto failą.

Kaip matote, grep yra didžiosios ir mažosios raidės. Galite naudoti žymą "-i", kad ignoruotumėte bylą.

peradresavimo įėjimai

Jūs taip pat galite įvesti komandų failų įvestis naudodami mažiau nei simbolį( & lt;).

cat & lt;sąrašas

"Tai nieko nesiskiria nuo argumento panaudojimo", galite pasakyti. Na, šiuo atveju turėtumėte teisingai. Kai įvedimo peradresavimas iš tikrųjų yra naudingas, tai yra sujungimo komandos.

Tarkime, kad mes norime filtruoti bet kokį žodį, kuris "pep" jame iš mūsų dabartinio "list" failo į naują failą, vadinamą "revisions".

grep pep & lt;sąrašas & gt;pataisymai

Leiskite pakartoti šią komandą ir pridėti šiek tiek rūšiavimo.

grep pep & lt;sąrašas |rūšiuoti & gt;pataisymai

Tai naudos "pep" kaip paieškos terminą iš įvesties failo "sąrašo", rūšiuoti jį abėcėlės tvarka( visi didžiosios raidės terminai, po kurių seka visi mažosios raidės terminai), tada išveskite jį į "redagavimo" failą.

Norėdami parodyti rūšiavimo komandą, pažvelkime į šį pavyzdį:

Kaip matote, priskiriant "-f" vėliavą į rūšiavimo komandą, galite ignoruoti bylą.Tai leidžia mums lengvai užrašyti teksto rinkmenų eilutes ir ignoruoti didžiųjų raidžių reikšmę, kai tai nesvarbi.

Paprastas scenarijus

Sukurkime scenarijų, kurio forma yra tokia:

scenarijų paieškos parametrų sąrašo failas

Tai užtruks terminą ir naudos grep, norėdami ieškoti sąrašo failo, rūšiuoti rezultatus ir tada išvesti juos į kitą failą.

Čia yra aplankas, kuriame mes išbandysime scenarijų:

Ir mes galime sukurti sąrašą, kas čia, tada paleiskite scenarijų.

ten eini! Kuo daugiau sužinosite reguliariųjų išraiškų taisykles, tuo tiksliau galite susikurti paieškos komandą.Ir viskas, kas galioja citatuose, gali būti jūsų pirmojo argumento pakeitimas!

Kalbant apie rūšiavimą, galite padaryti daugiau nei rūšiuoti pagal abėcėlę.Pažiūrėkite į meniu puslapį kai kurioms iš šių komandų:

  • tsort - išplėstinė topologinio rūšiavimo funkcija
  • tr - leidžia nurodyti konkrečius simbolius kitiems simboliams ir perrašyti tarp jų.
  • uniq - pašalina bet kokį ne unikalų( skaityti: dublikatą)
  • awk - labai išplėstinę teksto apdorojimo kalbą / funkciją, kurią galima naudoti atskiriant laukus failų pavadinimuose.
  • iškirpti, įklijuoti / prisijungti - komandos, naudingos laukams atskirti nuo tekstinių failų ir pridėtinauji duomenys į stulpelius
  • išvaizdą - ieškos kaip grep do, bet naudoja paieškos žodyną( kurį galima nurodyti vartotojo vardu)
  • wc paieškai - galite gauti žodžių skaičių, eilučių skaičių, ženklų skaičių ir dar daugiau

Mes pažiūrėjomešiek tiek daugiau pagrindų šiandien, kurie gali būti tokie naudingi kaip ir scenarijai komandinėje eilutėje. Tekstiniai duomenys dažniausiai yra dalykų, kuriuos mes naudojame kasdien, esmę, kad galėtume dirbti, ieškoti ir manipuliuoti, yra raktas.

Kokie yra jūsų mėgstamiausi scenarijai? Turite kokius nors specialius teksto failų scenarijus? Pasidalykite tuo, ko žinote, į komentarus!