Grep: Lære Shell Scripting ved hjelp av kommandoen Grep Terminal

grep-kommando

Lære Shell Scripting ved hjelp av terminalkommandoen: grep

Kommandoen "grep" i gratis operativsystemer som GNU / Linux er en veldig verdifull og nyttig kommando. Navnet kommer fra uttrykket på engelsk: «Global Regular Expression Print» og det brukes til å utføre oppgaven med å finne, matche og vise et søkemønster eller et regulært uttrykk for en (1) fil eller flere tekstfiler.

I utgangspunktet søker «grep» -kommandoen etter mønsteret som er angitt i parameterne for kommandokommandoen, og skriver ut resultatene som er oppnådd etter indikasjonene på kommandokommandoparametrene., som kan være: skjermen eller en utdatafil.

Introduksjon til "grep" -kommandoen

Allerede i andre tidligere publikasjoner av samme blogg, som denne «Noen grunnleggende kommandoer på ...»Vi har diskutert den grunnleggende bruken av denne flotte kommandoen, men I denne publikasjonen vil vi se en mer middels og avansert bruk av "grep" -kommandoen innenfor funksjonelle og nyttige kommandokommandoer som kan lette visse virkelige oppgaver. innenfor skallskriptene våre eller direkte på terminalen for å oppnå et mer umiddelbart resultat på en bestemt oppgave som skal utføres.

Praktiske eksempler

Se vår posisjon / beliggenhet

print innholdet i vår nåværende katalog ved hjelp av et grafisk katalogtrær:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

Eksempel:

Grep: Trelignende katalog

Generer et tilfeldig passord på 30 tegn

Generer tilfeldige strenger inne / dev / urandom og velg og vis en enkelt (1) ved hjelp av en filtrering med «grep» -kommandoen for bare alfanumeriske tegn, med tilstanden til størrelsen på de første 30 tegnene, og eliminerer alle linjematingene. .

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Eksempel:

Grep: Generer passord

Generer et grafisk sammendrag av tilkoblinger

Visualiser i en grafisk (tabell) og oppsummert form av antallet interne og eksterne nettverkstilkoblinger oppdaget av "netstat" -kommandoen til en vert i et gitt øyeblikk.

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 "" }'

Eksempel:

Grep: Netstat-tilkoblingsgraf

Den kan også brukes til å generere en sammendragstabell over antall tilkoblinger etter type, som vist nedenfor:

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

Eksempel:

Grep: Sammendragstabeller med Netstat

Finn en streng (mønster) innenfor en bane

Finn og vis alle treff i et mønster i filnavn eller filinnhold. Bruk av parametere for å oppnå dette er: -R (Gjentakelse for underkataloger), -n (Vis linjenummer på treff), -i (Ignorer store og små bokstaver), -s (Undertrykk 'eksisterer ikke meldinger "Og" kan ikke leses "), -I (Ignorer binærfiler i søk).

grep -RnisI  *

Grep: Finne mønstre i filer og mapper

Den kan også brukes på en mer avansert måte hvis den brukes i en ledetekst med "finn" -kommandoen for å finne et mønster innenfor en forhåndsdefinert filtype. som vist under:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep: Søk etter mønstre i filer

Kjenn til datamengden i RAM-minnet

Dette er nyttig for å vite nøyaktig hvor mye data (informasjon) som venter på å bli skrevet til harddisken, og det er nødvendig å tvinge en omstart eller avslutning av en datamaskin.

grep ^Dirty /proc/meminfo

Grep: Data i RAM

Kjenn vår WAN IP-adresse

Det er alltid veldig nyttig å kjenne til WAN-IP-en vår automatisk fra terminalen og deretter sende den parameteren til en annen automatisert oppgave. Dette eksemplet bruker DynDNS-tjenesten for å skaffe den.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep: Kjenn vår WAN IP

Liste utstyret som er koblet til et nettverkssegment

Ved å bruke en for-loop med "ping" -kommandoen og filtrere resultatet med "grep" -kommandoen, kan vi validere datamaskinene våre som er koblet til nettverket med pingtjenesten aktivert uten behov for NMap-verktøyet.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

Eksempel:

For å liste opp det sporede IP-adressefeltet, kan du bruke denne linjen mer avansert ved å filtrere resultatene av "grep" -kommandoen ved hjelp av kommandoene "awk" og "cut", som vist nedenfor:

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

Eksempel:

Grep: LAN IP-oppføring

Disse eksemplene på kommandolinjer ved hjelp av grep-kommandoen. Og de kan brukes til å brukes direkte fra konsollen eller indirekte ved å sette dem inn i et skript (automatisert oppgave).

I neste innlegg på Shell Scripting vil vi utforske andre kommandoer.

Hvis du vil lære litt mer om «grep» -kommandoen, kan du gå til denne lenken «DEBIAN Wiki»Og hvis du vil lære mer om Shell Scripting i vår egen blogg, kan du se på de andre publikasjonene våre om emnet, ved å klikke her: Skripting i FromLinux


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

2 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Leandro sa

    Artikkelen er flott, tusen takk.

  2.   Linux PostInstall sa

    Du er velkommen, det er en glede! Nå kommer en med kommandoen Sed.

bool (sant)