27Jun

Vodič za početnike Shell Scripting 3: Više osnovnih naredbi &Lanci

Naučili ste kako stvoriti skripte, upotrijebiti argumente i izgraditi petlje. Sada pogledajte neke osnovne naredbe, manipulaciju tekstualnim datotekama i preusmjeravanje ulaza i izlaza datotekama i drugim naredbama.

Neke osnovne korisne naredbe

Već smo vam dali osnovnu podjelu skripti ljuske i obrascu obrasca za petlje, ali svakako provjerite te članke ako ste do sada propustili vodič za skriptiranje ljuske.

Komandna linija je izuzetno dobra zbog mnogih razloga, a preusmjeravanje je jedan od najistaknutijih. Ako ste morali zabilježiti i reproducirati izlaz svake naredbe kako bi poduzeli daljnje akcije ili upotrijebili to za nešto drugo, onda bismo svi davno bili poludjeli. Preusmjeravanje nam omogućuje da upotrijebimo taj izlaz i spremimo ga ili ga odmah upotrijebimo kao ulaz za drugu naredbu. Također možemo koristiti datoteke kao ulaze za druge naredbe.

Prije nego što nastavimo, pokrivamo neke osnovne naredbe koje mogu biti korisne na mnogim mjestima.

echo - Ova naredba jednostavno ispisuje( prikazuje) cjelinu svog argumenta na naredbenom retku kao izlaz

eho argument s razmakom

Kao što možete vidjeti, posebni znakovi moraju biti "bježali" kako bi se oni normalno liječili. To se vrši pomoću obrnute crte( \) ispred znaka. Bolja je ideja koristiti citate. Naredba eho također funkcionira s varijablama.

Kao što možete vidjeti, jednokratne i dvostruke citate ponašaju se drugačije. Dodatne informacije potražite u kolika je razlika između jednokratnih i dvostrukih citata u Bash Shellu?

mačka - Ova naredba prikazuje sadržaj tekstualnih datoteka kao izlaz.

cat file_to_be_read

Pretpostavimo da stvaramo ovu tekstualnu datoteku u nano:

Kada koristimo mačka naredbu u datoteci, možemo vidjeti da je to izlaz.

grep - Ovo je jedna od najmoćnijih i najkorisnijih naredbi koje su vam dostupne u Linuxu. Riječ je za Global / Regular Expression Print. Izgleda kroz datoteku i ispisuje bilo koju liniju koja odgovara određenom uzorku. Budući da se ovaj uzorak temelji na "regularnom izrazu", koncizna linija može dati mnoštvo uzoraka koje treba podudarati. Međutim, ne možete unijeti špageti za pretraživanje.

grep pattern file

Uvjeravam vas, grep može učiniti više, ali za sada se držimo lakših stvari.

Preusmjeravanje izlaza

Da biste preusmjerili izlaz naredbe u datoteku, koristimo poseban znak, znak veći od simbola( & gt;).

Promijenimo naš popis, zar ne? Unesite sljedeću naredbu:

echo pepperoni & gt;popis

Možete vidjeti da eho više ne prikazuje liniju, a kad pogledamo sadržaj datoteke "popisa", vidjet ćemo ono što smo odjekivali.

Također imajte na umu da su prethodni sadržaji "popisa" uklonjeni. Pokušajte ponovno:

To može biti korisno kada želite ponovno upotrijebiti datoteku, ali često samo želimo dodati postojeću datoteku. Za to koristimo dva uzastopna velika slova:

echo yellow paprika & gt;popis

Jednostavno! Koristimo ovu naredbu da napravimo veći popis, zar ne?

Tamo idemo. Mislim da možete vidjeti zašto toliko geek koriste zapovjednu liniju kako bi napravili popise obveza i slično, ali je čak i bolje.

Uzmimo izlaz naredbe i stavimo ga u datoteku:

ls -al / & gt;~ / rootlist

Izrada popisa datoteka, uređivanje ih, a zatim pokretanje naredbi na one koje želite nikada nije bilo jednostavnije. I, dok radimo ove osnovne funkcije u naredbenom retku, one dobro funkcioniraju iu skriptama.

Cjevovodi ili lanac

Cjevovod je tako nazvan jer koristi cijev,( |, koji se dijeli s \ ključem na većini tipkovnica).U osnovi, potrebno je izlaz jedne naredbe i izravno ga hrani drugom. Možete stvoriti dugačke lance naredbi kako biste dobili vrlo specifičan željeni izlaz na ovaj način, a vrlo je pogodan za naredbe poput grepa.

Djeluje puno kao "& gt;" osim što se može više puta povezati s lancima, a njegov je učinak općenitije jer ne mora proći tekstnu datoteku.

Kao što možete vidjeti, grep razlikuje velika i mala slova. Možete upotrijebiti "-i" zastavicu kako biste ga zanemarili.

Preusmjeravanje ulaza

Također možete preuzeti ulaze iz datoteka za naredbe pomoću znaka manjeg od simbola( & lt;).

cat & lt;popis

"To se ne razlikuje od korištenja argumenata!", Mogli biste reći. Pa, ti bi bio ispravan u ovom slučaju. Tamo gdje je preusmjeravanje ulaza uistinu korisno, u lancu naredbi zajedno. Pretpostavimo da želimo filtrirati bilo koju riječ koja ima "pep" u njemu iz naše trenutne "popisa" datoteke u novu datoteku pod nazivom "revizije".

grep pep

Ponovimo ovu naredbu i dodamo neke sortiranje.

grep pep

Ovo će koristiti "pep" kao pojam za pretraživanje iz popisa "ulaznih datoteka", poredati abecednim redom( sve gornje pojmove koji slijede sve niže uvjete), a zatim ga izlaziti u datoteku "revizija".

Da bismo ilustrirali naredbu za sortiranje, pogledajmo sljedeći primjer:

Kao što možete vidjeti, dodavanje oznake "-f" u naredbu sortiranja omogućuje vam da zanemarite slučaj. To nam olakšava redoslijed abecednih redaka u tekstualnim datotekama i zanemarimo kapitalizaciju kad to nije važno.

Jednostavna skripta

Napravimo skriptu koja ima sljedeći obrazac:

skriptu searchterm listfile

Potrajat će pojam i koristiti grep za traženje kroz datoteku popisa, sortiranje rezultata i njihovo izdavanje u drugu datoteku.

Evo direktorija u kojem ćemo testirati skriptu u:

I možemo izraditi popis onoga što je ovdje, a zatim pokrenuti skriptu.

Tamo ideš!Što više naučite pravila regularnih izraza, točnije možete sastaviti naredbu za pretraživanje. I, sve što vrijedi u navodima može biti zamijenjeno za vaš prvi argument!

Što se tiče razvrstavanja, možete učiniti više nego samo sortirati abecednim redom. Pogledajte stranicu man za neke od sljedećih naredbi:

  • tsort - naprednija funkcija topološke sortiranja
  • tr - omogućuje vam da mapirate određene znakove na druge znakove i prijeđete ih između njih.
  • uniq - uklanja bilo koji ne-jedinstven( read: duplicate)
  • awk - stvarno napredni jezik za obradu teksta / funkcija koja se može koristiti za odjeljivanje polja u nazive datoteka
  • rezati, zalijepiti / pridružiti - naredbe korisne za izoliranje polja iz tekstualnih datoteka i dodavanjenovi podaci u stupce
  • izgled - pretraživanja poput grep ne, ali koristi rječnik datoteku( koja može biti korisnički definirana) za pretraživanje
  • wc - omogućuje vam da dobijete brojanje riječi, broj linija, broj znakova i još

Pogledali smona nekim osnovama koje danas mogu biti korisne na komandnoj liniji kao u skriptama. Tekstualni podaci često su u srcu stvari koje svakodnevno upotrebljavamo, tako da je ključna stvar za rad s njim, pretraživanje i manipuliranje.

Koje su neke od svojih omiljenih skripti? Imate li posebne skripte za tekstualne datoteke? Podijelite ono što znate u komentarima!