"Shell" scenarijų 3 pradedantiesiems vadovas: daugiau pagrindinių komandų ir grandinių

Turinys:

"Shell" scenarijų 3 pradedantiesiems vadovas: daugiau pagrindinių komandų ir grandinių
"Shell" scenarijų 3 pradedantiesiems vadovas: daugiau pagrindinių komandų ir grandinių

Video: "Shell" scenarijų 3 pradedantiesiems vadovas: daugiau pagrindinių komandų ir grandinių

Video:
Video: OpenStudio EnergyPlus - Мера Написание 1 (русские субтитры) 2024, Balandis
Anonim
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.
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 komandos

Mes jau pateikėme pagrindinį shell scenarijų ir pavyzdžių pagrindą, skirtą kilpoms, tačiau įsitikinkite, kad patikrinote šiuos straipsnius, jei iki šiol nepatekoite mūsų skilčių vadovavimo vadovo.

Komandų eilutė yra nuostabi dėl daugelio priežasčių, o nukreipimas 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 kitam, 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 naudingos daugelyje skirtingų vietų.

echo - Ši komanda tiesiog atspausdina (parodo) visą jo argumentą komandinėje eilutėje kaip išvestį

echo argument with spaces

Kaip matote, specialieji simboliai turi būti "išgelbėti", 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, specialieji simboliai turi būti "išgelbėti", 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?
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.
Kai mes naudojame failo kačių komandą, matome, kad tai yra išvestis.
grep - tai viena iš labiausiai galingų ir naudingų komandų, prieinamų jums 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 - tai viena iš labiausiai galingų ir naudingų komandų, prieinamų jums 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 pattern file

Užtikrinu, kad "grep" gali padaryti daugiau, bet dabar palikime lengvesnius dalykus.
Užtikrinu, kad "grep" gali padaryti daugiau, bet dabar palikime lengvesnius dalykus.

Peradresuoti išvestis

Norėdami peradresuoti komandų išvestį į failą, mes naudojame specialųjį simbolį, didesnis už simbolį (>).

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

echo pepperoni > list

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.
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. Bandykite vėl:

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

echo yellow peppers >> list

Lengva! Leiskite naudoti šią komandą, norėdami sukurti didesnį sąrašą, ar mes?
Lengva! 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.
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 komandinės išvesties ir įtraukiame ją į failą:

ls –al / > ~/rootlist

Failų sąrašų sudarymas, jų redagavimas ir tuščių komandų paleidimas niekada nebuvo paprastesnis. Ir, nors mes atliekame šias pagrindines funkcijas komandinėje eilutėje, tai taip pat veikia scenarijus.
Failų sąrašų sudarymas, jų redagavimas ir tuščių komandų paleidimas niekada nebuvo paprastesnis. 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 "" raktą 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 daug panašiai kaip ">", išskyrus tai, kad jis gali būti prisegtas kelis kartus ir jo poveikis yra bendresnis, nes nereikia eiti per teksto failą.
Jis veikia daug panašiai kaip ">", išskyrus tai, kad jis gali būti prisegtas kelis kartus ir jo poveikis yra bendresnis, nes nereikia eiti per teksto failą.

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

Image
Image

Peradresuoti įvestis

Be to, galite įvesti įvestis iš failų komandoms naudodami simbolį mažiau (<).

cat < list

"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.
"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į, kurio "pep" jame iš mūsų dabartinio "sąrašo" failo į naują failą, vadinamą "pakeitimais".

grep pep < list > revisions

Pervadinkime šią komandą ir pridėkite tam tikrą rūšiavimą.
Pervadinkime šią komandą ir pridėkite tam tikrą rūšiavimą.

grep pep < list | sort > revisions

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ų eina visi mažosios raidės terminai), tada išveskite jį į "redagavimo" failą.
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ų eina visi mažosios raidės terminai), tada išveskite jį į "redagavimo" failą.

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

Kaip matote, pridedant "-f" žymę į 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.
Kaip matote, pridedant "-f" žymę į 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

Sukursime scenarijų, kurio forma yra tokia:

script searchterm listfile

Tai paims terminą ir naudos grep, kad galėtumėte ieškoti sąrašo byloje, rūšiuoti rezultatus ir išvesti juos į kitą failą.

Štai katalogas, kuriame bandysime scenarijų:
Štai katalogas, kuriame bandysime scenarijų:
Be to, mes galime sukurti čia sąrašą, tada paleisti scenarijų.
Be to, mes galime sukurti čia sąrašą, tada paleisti scenarijų.
Prašom! 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!
Prašom! 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 - labiau pažengusi 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 - tikrai išplėstinė teksto apdorojimo kalba / funkcija, kuri gali būti naudojama atskiriant laukus failų pavadinimuose
  • supjaustyti, įklijuoti / prisijungti - komandos, naudingos laukų išskyrimui iš tekstinių failų ir naujų įrašų į stulpelius
  • atrodo - atlieka paiešką kaip grep, bet naudoja paieškos žodyną (kurį galima nurodyti vartotojo vardu)
  • WC - leidžia gauti žodžių skaičių, eilučių skaičių, simbolių skaičių ir dar daugiau

Mes apžvelgėme dar keletą pagrindų, kurie gali būti naudingi komandinėje eilutėje, kaip ir scenarijose. Tekstiniai duomenys dažnai yra dalykų, kuriuos mes naudojame kasdien, esmę, todėl galime dirbti su ja, ieškoti ir manipuliuoti, yra raktas.

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

Rekomenduojamas: