Pradedančiųjų vadovas „Shell Scripting“ 3 daugiau pagrindinių komandų ir grandinių
Sužinojote, kaip kurti scenarijus, naudoti argumentus ir kurti kilpas. Dabar pažvelkime į keletą pagrindinių komandų, teksto failų manipuliavimo ir įvedimo bei išvesties nukreipimo į failus ir kitas komandas.
Kai kurios pagrindinės naudingos komandos
Mes jau suteikėme pagrindinį „Shell“ scenarijų suskirstymą ir pavyzdinį kontūrų kontūrą, tačiau būtinai patikrinkite šiuos straipsnius, jei iki šiol praleidote mūsų apvalkalo scenarijų vadovą.
Komandinė eilutė yra nuostabi dėl daugelio priežasčių, o peradresavimas yra vienas ryškiausių. Jei turėtumėte prisiminti ir atkurti kiekvienos komandos produkciją, kad galėtumėte imtis tolesnių veiksmų ar naudoti tai kitam, mes visi seniai buvome beprotiški. Peradresavimas leidžia mums naudoti tą išvestį ir išsaugoti jį arba nedelsiant jį naudoti kaip įvestį kitai komandai. Taip pat galime naudoti failus kaip įėjimus kitoms komandoms.
Prieš eidami, apimsime kai kurias pagrindines komandas, kurios gali būti naudingos įvairiose vietose.
aidas - Ši komanda tiesiog spausdina (rodo) visą jos argumentą komandinėje eilutėje kaip išėjimą
echo argumentas su tarpais
Kaip matote, specialius simbolius reikia „pabėgti“, kad jie būtų elgiamasi įprastai. Tai daroma naudojant grįžtamąjį brūkšnį (\ t Tai geresnė idėja naudoti kabutes. Echo komanda taip pat veikia su kintamaisiais.
Kaip matote, vienkartinės ir dvigubos kabutės elgiasi skirtingai. Norėdami gauti daugiau informacijos, patikrinkite, kas yra skirtumas tarp „Single“ ir „Double Quotes“ „Bash Shell“?
katė - Ši komanda rodo tekstinių failų turinį kaip išvestį.
katė file_to_be_read
Tarkime, mes sukuriame šį tekstinį failą nano:
Kai mes naudojame katės komandą faile, galime matyti, kaip jis yra.
grep - tai viena iš galingiausių ir naudingiausių komandų, kurios jums prieinamos Linux sistemoje. Jis reiškia „Global / Regular Expression Print“. Jis peržiūri failą ir spausdina bet kurią eilutę, atitinkančią tam tikrą modelį. Kadangi šis modelis pagrįstas „reguliariu reiškiniu“, glausta linija gali suteikti daugybę modelių, kuriuos reikia suderinti. Ne, tačiau, jūs galite įvesti smegenis ieškoti.
grep modelio failas
Aš jus patikinu, grep gali padaryti daugiau, bet dabar laikykitės lengvesnių dalykų.
Peradresavimas
Norėdami peradresuoti komandos išvestį į failą, naudojame specialųjį ženklą, tuo didesnis nei simbolis (>).
Pakeiskime savo sąrašą, ar mes? Įveskite šią komandą:
echo pepperoni> sąrašas
Jūs matote, kad aidas nebėra rodomas linijos, o kai žiūrime į „sąrašo“ failo turinį, matome, ką mes atsikvėpėme ten.
Taip pat atkreipkite dėmesį, kad ankstesnis „sąrašo“ turinys buvo pašalintas. Bandykite vėl:
Tai gali būti naudinga, kai norite pakartotinai naudoti failą, bet dažnai norime pridėti prie esamo failo. Tam mes naudojame du iš eilės einančius didesnius nei simbolius:
echo geltonosios paprikos >> sąrašas
Lengva! Naudokime šią komandą, kad sukurtume didesnį sąrašą?
Ten mes einame. Manau, galite pamatyti, kodėl tiek daug geeks naudoja komandinę eilutę, kad atliktų užduočių sąrašus ir pan., Tačiau jis tampa dar geresnis.
Paimkime komandos komandą ir įdėkite ją į failą:
ls -al /> ~ / rootlist
Failų sąrašų sudarymas, jų redagavimas ir komandų vykdymas tiems, kurių norite, niekada nebuvo paprastesnis. Ir nors mes atliekame šias pagrindines funkcijas komandų eilutėje, jos taip pat veikia skriptuose.
Vamzdžiai arba grandinės
Vamzdžiai yra taip pavadinti, nes naudoja vamzdį (|; dalijamasi su daugeliu klaviatūrų). Iš esmės ji paima vienos komandos išvestį ir tiesiogiai ją perduoda kitai. Galite sukurti ilgas komandų grandines, kad tokiu būdu gautumėte labai konkrečią norimą išvestį, ir tai labai patogu komandoms, tokioms kaip grep.
Jis veikia kaip „>“, išskyrus atvejus, kai jis gali būti grandinuojamas kelis kartus, o jo poveikis yra bendresnis, nes nereikia eiti per tekstinį failą.
Kaip matote, grep yra didžiosios ir mažosios raidės. Galite naudoti „-i“ vėliavą, kad ją ignoruotumėte.
Peradresavimas
Taip pat galite įvesti failus iš komandų komandomis naudodami mažiau nei simbolį (<).
katė < list
„Tai nesiskiria nuo argumento panaudojimo!“. Na, jūs būtumėte teisingi šiuo atveju. Kai įvesties nukreipimas iš tikrųjų yra naudingas, komandų susiejimas.
Tarkime, mes norime filtruoti bet kokį žodį, kuriame yra „pep“ iš mūsų dabartinio „failų“ failo į naują failą, pavadintą „pataisymai“.
grep pep pataisymai
Pakartokite šią komandą ir pridėkite tam tikrą rūšiavimą.
grep pep pataisymai
Tai naudos „pep“ kaip paieškos terminą iš įvesties failo „sąrašas“, rūšiuoti jį abėcėlės tvarka (visi didžiosios raidės, po kurių eina visi mažieji terminai), tada išvedami jį į „peržiūros“ failą.
Norėdami iliustruoti rūšiavimo komandą, pažiūrėkime į šį pavyzdį:
Kaip matote, „-f“ vėliavos įtraukimas į rūšiavimo komandą leidžia ignoruoti atvejį. Tai leidžia mums lengvai užsirašyti eilutes tekstiniuose failuose ir ignoruoti kapitalizaciją, kai tai nėra svarbu.
Paprastas scenarijus
Sukursime scenarijų, kurio forma yra tokia:
scenarijus searchterm listfile
Tai užims terminą ir naudokite grep, kad galėtumėte ieškoti sąrašo failo, surūšiuoti rezultatus ir tada juos perduoti kitam failui.
Čia yra katalogas, kurį išbandysime scenarijuje:
Ir galime sukurti tai, kas čia yra, tada paleiskite scenarijų.
Prašom! Kuo daugiau išmoksite reguliarių išraiškų taisykles, tuo tiksliau galite susikurti paieškos komandą. Ir viskas, kas galioja kabutėse, gali būti pakeista pirmuoju argumentu!
Kiek tai susiję su rūšiavimu, galite padaryti daugiau nei tiesiog rūšiuoti abėcėlės tvarka. Pažvelkite į kai kuriuos iš šių komandų:
- tsort - pažangesnė topologinio rūšiavimo funkcija
- tr - leidžia susieti konkrečius simbolius su kitais simboliais ir perrašyti tarp jų.
- uniq - pašalina visus unikalius (skaitykite: dublikatą)
- awk - tikrai pažangi teksto apdorojimo kalba / funkcija, kuria galima atskirti laukus failų pavadinimuose
- supjaustyti, įklijuoti / prisijungti - komandos, naudingos atskiriant laukus iš tekstinių failų ir pridedant naujus duomenis į stulpelius
- „look-look“, kaip „grep“, bet naudoja žodžio failą (kuris gali būti vartotojo nurodytas) paieškai
- wc - leidžia gauti žodžių skaičių, linijų skaičių, simbolių skaičių ir kt
Šiandien pamatėme dar keletą pagrindinių dalykų, kurie gali būti naudingi komandinėje eilutėje kaip ir scenarijuose. Tekstiniai duomenys dažnai yra svarbiausias dalykas, kurį mes naudojame kasdien, todėl galime dirbti su juo, jį ieškoti ir manipuliuoti..
Kokie yra jūsų mėgstami scenarijai? Ar turite specialių naudojimo scenarijų tekstiniams failams? Bendrinkite tai, ką žinote komentaruose!