Učenje skriptiranja ljuske pomoću naredbe terminala: grep
Naredba "grep" u besplatnim operativnim sustavima kao što je GNU / Linux vrlo je vrijedna i korisna naredba. Ime mu dolazi od fraze na engleskom: «Global Regular Expression Print» i koristi se za izvršavanje zadatka pronalaženja, podudaranja i prikazivanja uzorka pretraživanja ili regularnog izraza jedne (1) datoteke ili nekoliko tekstualnih datoteka.
U osnovi, naredba «grep» traži obrazac naznačen u parametrima naredbe naredbe i ispisuje rezultate dobivene slijedeći naznake u parametrima naredbe naredbe, što može biti: zaslon ili izlazna datoteka.
Uvod u naredbu "grep"
Već u drugim prethodnim publikacijama istog bloga, poput ove «Neke osnovne naredbe o ...»Komentirali smo osnovnu upotrebu ove velike zapovijedi, ali U ovoj publikaciji vidjet ćemo srednju i napredniju upotrebu naredbe "grep" unutar funkcionalnih i korisnih naredbi koje mogu olakšati određene stvarne zadatke. unutar naših skripti ljuske ili izravno na terminalu kako bismo postigli neposredniji rezultat na određenom zadatku koji treba izvršiti.
Praktični primjeri
Pogledajte naš položaj / lokaciju
otisak sadržaj našeg trenutnog direktorija pomoću grafičkog stabla direktorija:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
primjer:

Generirajte slučajnu lozinku duljine 30 znakova
Generirajte slučajne nizove unutar / dev / urandom, a zatim odaberite i prikažite jedan (1) pomoću filtriranja naredbom «grep» samo za alfanumeričke znakove, uz uvjet veličine prvih 30 znakova, uklanjajući sve feedove retka .
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
primjer:

Generirajte grafički sažetak veza
Vizualizirajte u grafičkom (tabličnom) i sažetom obliku broj unutarnjih i vanjskih mrežnih veza koje je detektirala naredba "netstat" hosta u određenom trenutku.
netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'
primjer:

Također se može koristiti za generiranje tablice sažetka broja veza prema njihovom tipu, kao što je prikazano u nastavku:
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
primjer:

Pronađite niz (uzorak) unutar putanje
Pronađite i prikažite sva podudaranja uzorka u imenima datoteka ili sadržaju datoteke. Korištenje parametara za postizanje ovoga su: -R (Ponavljanje za poddirektorijume), -n (Prikaži brojeve redova podudaranja), -i (Zanemari velika i mala slova), -s (Potisni 'ne postoje poruke "I" ne može se čitati "), -I (Zanemari binarne datoteke u pretraživanju).
grep -RnisI *

Također se može koristiti na napredniji način ako se koristi u naredbenom retku s naredbom "pronađi" za pronalaženje uzorka unutar unaprijed definirane vrste datoteke. kao što je prikazano niže:
find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Znati količinu podataka u RAM memoriji
Ovo je korisno znati točno koliko podataka (informacija) čeka na upis na tvrdi disk i potrebno je prisiliti ponovno pokretanje ili isključivanje računala.
grep ^Dirty /proc/meminfo

Znajte našu WAN IP adresu
Uvijek je vrlo korisno znati naš WAN IP automatski s terminala, a zatim proslijediti taj parametar drugom automatiziranom zadatku. Ovaj primjer koristi uslugu DynDNS da bi je dobio.
curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Navedite opremu povezanu s mrežnim segmentom
Korištenjem for petlje s naredbom "ping" i filtriranjem rezultata pomoću naredbe "grep" možemo provjeriti valjanost računala koja su povezana na mrežu s omogućenom uslugom ping bez potrebe za alatom NMap.
for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done
primjer:

Za popis praćenog polja IP adrese možete naprednije koristiti ovaj redak, filtrirajući rezultate naredbe "grep" pomoću naredbi "awk" i "cut", kao što je prikazano dolje:
for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1
primjer:

Ovi primjeri naredbenih redaka pomoću naredbe grep. A koriste se za upotrebu izravno s konzole ili neizravno umetanjem u skriptu (automatizirani zadatak).
U sljedećem postu o Shell Scriptingu istražit ćemo druge naredbe.
Ako želite saznati nešto više o naredbi «grep», posjetite ovaj link «DEBIAN Wiki»A ako želite saznati više o Shell skriptiranju na našem vlastitom blogu, možete pogledati naše ostale publikacije na tu temu, klikom ovdje: Skriptiranje u FromLinuxu