Grep: Læring af Shell Scripting ved hjælp af Grep Terminal Command

grep-kommando

Læring af Shell Scripting ved hjælp af terminalkommandoen: grep

Kommandoen "grep" i gratis operativsystemer som GNU / Linux er en meget værdifuld og nyttig kommando. Navnet stammer fra sætningen på engelsk: «Global Regular Expression Print», og det bruges til at udføre opgaven med at finde, matche og vise et søgemønster eller et regulært udtryk for en (1) fil eller flere tekstfiler.

Grundlæggende søger kommandoen «grep» efter det mønster, der er angivet i parametrene for kommandokommandoen, og udskriver de opnåede resultater efter indikationerne i parametrene for kommandokommandoen, hvilket kan være: skærmen eller en outputfil.

Introduktion til kommandoen "grep"

Allerede i andre tidligere publikationer på den samme blog, som denne «Nogle grundlæggende kommandoer på ...»Vi har drøftet den grundlæggende brug af denne store kommando, men I denne publikation vil vi se en mere mellemliggende og avanceret brug af kommandoen "grep" inden for funktionelle og nyttige kommandokommandoer, der kan lette visse reelle opgaver. inden for vores shell-scripts eller direkte på terminalen for at opnå et mere øjeblikkeligt resultat på en bestemt opgave, der skal udføres.

Praktiske eksempler

Se vores position / placering

print indholdet af vores nuværende bibliotek ved hjælp af et grafisk katalogtræ:

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

Eksempel:

Grep: Trelignende bibliotek

Generer en tilfældig adgangskode på 30 tegn

Generer tilfældige strenge inde i / dev / urandom, og vælg og vis derefter en enkelt (1) ved hjælp af filtrering med kommandoen «grep» til kun alfanumeriske tegn med betingelsen for størrelsen på de første 30 tegn, hvilket eliminerer alle linjefeeds .

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

Eksempel:

Grep: Generer adgangskode

Generer en grafisk oversigt over forbindelser

Se grafisk (tabel) og opsummer det antal interne og eksterne netværksforbindelser, der detekteres af kommandoen "netstat" fra en vært til enhver tid.

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-forbindelsesgraf

Det kan også bruges til at generere en oversigtstabel over antallet af forbindelser efter type af dem, som vist nedenfor:

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

Eksempel:

Grep: Oversigtstabeller med Netstat

Find en streng (mønster) inden for en sti

Find og vis alle match i et mønster i filnavne eller filindhold. Brug af parametre for at opnå dette er: -R (gentagelse for underkataloger), -n (Vis linjenumre for matches), -i (Ignorer store og små bogstaver), -s (Undertryk 'findes ikke' meddelelser "Og" kan ikke læses "), -I (Ignorer binære filer i søgning).

grep -RnisI  *

Grep: Søg efter mønstre i filer og mapper

Det kan også bruges på en mere avanceret måde, hvis det bruges inden for en kommandoprompt med "find" -kommandoen til at finde et mønster inden for en foruddefineret filtype. som vist nedenfor:

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

Grep: Søg efter mønstre i filer

Kend mængden af ​​data i RAM-hukommelse

Dette er nyttigt for at vide nøjagtigt, hvor meget data (information) der venter på at blive skrevet til harddisken, og det er nødvendigt at tvinge en genstart eller nedlukning af en computer.

grep ^Dirty /proc/meminfo

Grep: Data i RAM

Kend vores WAN IP-adresse

Det er altid meget nyttigt at kende vores WAN IP automatisk fra terminalen og derefter overføre denne parameter til en anden automatiseret opgave. Dette eksempel gør brug af DynDNS-tjenesten til at opnå den.

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

Grep: Kend vores WAN IP

Angiv udstyret, der er tilsluttet et netværkssegment

Ved hjælp af en for-loop med kommandoen "ping" og filtrering af resultatet med kommandoen "grep" kan vi validere vores computere, der er tilsluttet netværket med pingtjenesten aktiveret uden behov for NMap-værktøjet.

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

Eksempel:

For at liste det sporede IP-adressefelt kan du gøre mere avanceret brug af denne linje ved at filtrere resultaterne af kommandoen «grep» ved hjælp af kommandoerne «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-oversigt

Disse eksempler på kommandolinjer ved hjælp af kommandoen grep. Og de bruges til at blive brugt direkte fra konsollen eller indirekte ved at indsætte dem i et script (automatiseret opgave).

I det næste indlæg på Shell Scripting vil vi udforske andre kommandoer.

Hvis du vil lære lidt mere om kommandoen «grep», kan du besøge dette link «DEBIAN Wiki»Og hvis du vil lære mere om Shell Scripting i vores egen blog, kan du se på vores andre publikationer om emnet ved at klikke her: Scripting DesdeLinux


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Leandro sagde han

    Artiklen er fantastisk, meget tak.

  2.   Linux Post Installation sagde han

    Du er velkommen, det er en fornøjelse! Nu kommer en med kommandoen Sed.