Hoe de Grep-opdracht en Tree Linux-voorbeelden te gebruiken

Een van de meest veelzijdige besturingssystemen om via de terminal te beheren, is ongetwijfeld Linux in een van de beschikbare distributies en dit dankzij de integratie van talrijke opdrachten die beschikbaar zijn in de console. Het maakt niet uit of we een terminalgebaseerd systeem gebruiken (zoals de serverversies) of een GUI-gebaseerde omgeving (zoals de desktopversies), in al deze versies zullen de terminal en zijn commando's altijd een betrouwbare bron van beheer en steun.

Binnen onze dagelijkse activiteiten is het maken en bewerken van mappen en bestanden, die talrijk kunnen zijn, afhankelijk van de gespeelde rol. Dit op een bepaald punt van ondersteuning is normaal dat op de een of andere manier het zoeken naar elementen negatief beïnvloedt, niet alleen door het aantal bestanden, maar ook door de locatie waar ze worden gehost.

Om dit soort activiteiten op een veel eenvoudigere manier te helpen beheren, hebben we twee essentiële commando's voor zowel het zoeken als het bekijken van objecten in Linux en dit zijn de Grep- en Tree-commando's. Solvetic zal in detail hun gebruik uitleggen en hoe ze uitgebreid kunnen worden toegepast in de Linux-distributie die we gebruiken.

1. Wat is het GREP-commando?

Wat is het Grep-commando?Grep is een commando dat is ontwikkeld om tekstzoektaken uit te voeren, Grep is verantwoordelijk voor het zoeken in het bestand dat we de regels aangeven waar een overeenkomst is gedetecteerd, hetzij met de woorden of de tekenreeks die we toewijzen tijdens de uitvoering hiervan. De naam is afgeleid van de UNIX-editor g / re / p. Tijdens de uitvoering van Grep zal het mogelijk zijn om een ​​naam van een bestand aan te geven of het is mogelijk om de standaard invoer te verlaten, dus Grep is verantwoordelijk voor het genereren van de overeenkomende regels.

Grep-variabelenEr zijn drie (3) variabelen die tijdens het Grep-proces worden beheerd, namelijk:

  • -G, --basic-regexp: dit is verantwoordelijk voor het interpreteren van het patroon als een standaard reguliere expressie, het is de standaardwaarde.
  • -E, --extended-regexp: Deze optie valideert het patroon als een uitgebreide reguliere expressie.
  • -F, --fixed-strings: met deze optie wordt het patroon geïnterpreteerd als een lijst van vaste tekenreeksen, gescheiden door regeleinden waar de overeenkomst in elk van hen zal worden gevonden.

Het Grep-commando (Global Regular Expression Print) is een commando waarmee we het systeem kunnen analyseren om de overeenkomsten te vinden en, eenmaal gedetecteerd, de resultaten kunnen afdrukken, zodat deze resultaten centraal kunnen worden beheerd.

Grep-syntaxisDe syntaxis voor het gebruik van de opdracht Grep is als volgt:

 grep (Optie) Patroon (bestand) 

Grep-opdrachtparametersEr zijn een reeks parameters die we kunnen gebruiken met het grep-commando om de beste resultaten te verkrijgen, dit zijn:

  • -E, --extended-regexp: Patronen worden gezien als reguliere expressies
  • -F, --fixed-strings: Patronen zijn strings
  • -G, --basic-regexp: Patronen zijn standaard reguliere expressies
  • -P, --perl-regexep: Patronen zijn Perl-expressies
  • -e, regexp = PATTERNS: Zoeken naar patronen voor overeenkomsten
  • -F. -bestand (Bestand): Maak gebruik van patronen als bestand
  • -i, --ignore-case: negeer hoofdletters
  • -w, --word-regexp: Match alle dezelfde woorden
  • -x, --line-regexp: Overeenkomen met alle regels
  • -s, --no-messages: verwijder foutmeldingen
  • -v, --invert-match: Selecteer de regels die niet overeenkomen met de zoekcriteria
  • -V, --version: Toon de gebruikte grep-versie
  • -m, --max-count = NUM: Stop met zoeken na een bepaald aantal regels
  • -b, --byte-offset = Toon de byte-offset naast de uitvoerregels
  • -n, --regelnummer: Druk het aantal regels af
  • -H, --with-filename: toon de bestandsnaam op de uitvoerregels
  • -q, --quiet: alle resultaten onderdrukken
  • -d, --directories = Actie: Geeft aan hoe mappen worden afgehandeld
  • -l, --files-without-match = Print alleen bestandsnamen zonder regels
  • -c, --count: Print geselecteerde regels per bestand

Ik heb geen Grep-commandoHet grep-commando is standaard aanwezig in Linux-distributies, maar als je het om de een of andere reden niet hebt, kun je het installeren met de volgende commando's:

 sudo apt-get install grep (Debian en Ubuntu) sudo yum install grep (Redhat, CentOS en Fedora)

Stap 1
De algemene syntaxis, die meerdere parameters kan bevatten, is als volgt:

 grep [-AB] num] [-CEFGVbchiLlnqsvwxyUu] [[-e] patroon | -f bestand] [--extended-regexp] [--fixed-strings] [--basic-regexp] [--regexp = PATTERN] [--file = FILE] [--ignore-case] [--word -regexp] [--line-regexp] [--line-regexp] [--no-messages] [--invert-match] [--version] [--help] [--byte-offset] [- -regelnummer] [--met-bestandsnaam] [--geen-bestandsnaam] [--stil] [--stil] [--bestanden-zonder-overeenkomst] [--bestanden-met-matcces] [- tellen ] [--before-context = NUM] [--after-context = NUM] [--context] [--binary] [-unix-byte-offsets] bestanden … 
Stap 2
We zullen enkele voorbeelden zien van het gebruik van Grep voordat we de parameters ervan kennen. Als we in de directory / etc / passwd willen zoeken naar alles wat met een bepaalde gebruiker te maken heeft, kunnen we het volgende uitvoeren:
 grep "gebruiker" / etc / passwd 
Stap 3
Het resultaat zal het volgende zijn:

Stap 4
Het zal ook mogelijk zijn om het Grep-commando te dwingen om hoofdletters en kleine letters te negeren, dat wil zeggen, om de overeenkomende Solvetic, Solvetic of SOLVETIC samen met alle combinaties toe te staan ​​met behulp van de -i parameter:

 grep -i "solvetic" / etc / passwd 

Stap 5
Deze optie kan ook als volgt worden uitgevoerd met het cat-commando:

 kat / etc / wachtwoord | grep -i "solvetic" 

2. Voorbeelden van het gebruik van het Grep-commando


Het gebruik van commando's in Linux-besturingssystemen is een verplichte taak voor alle IT-beheerders en gebruikers, omdat we dankzij hen honderden administratieve, informatieve en ondersteunende taken kunnen uitvoeren. Er zijn talloze commando's, elk met zijn eigen criteria en functies, maar een van hen speciaal voor het zoeken naar tekst in bestanden in mappen of mappen is het Grep-commando.

Nu zullen we zien hoe we het Grep-commando in Linux kunnen gebruiken.

Hoe Grep in het algemeen te gebruikenOm te begrijpen hoe Grep werkt, gaan we in de directory / etc / passwd zoeken naar alle resultaten die aan onze gebruiker zijn gekoppeld:

 grep solvetic / etc / passwd 
Als resultaat zullen we het volgende zien:

Als een extra punt, laten we niet vergeten dat het mogelijk is om grep te vertellen om hoofdletters en kleine letters in de resultaten te negeren, hiervoor voeren we het volgende uit:

 grep -i "solvetic" / etc / passwd 

Grep is ideaal voor het zoeken naar specifieke termen in bekende bestanden, laten we bijvoorbeeld de volgende zoekopdracht uitvoeren:

 grep Solvetic Solvetic.txt 
Als resultaat zullen we de regels zien waar dat woord wordt herhaald:

We kunnen dezelfde term tegelijkertijd in verschillende bestanden zoeken, hiervoor gebruiken we de volgende regel:

 grep Solvetic Solvetic.txt Solvetic1.txt 

Een kortere manier om dit te doen is door het volgende uit te voeren:

 grep oplossend *. * 

Hoe grep te gebruiken om resultaten om te leiden naar een bestand op LinuxDit is handig voor gevallen waarin we later beheertaken op de bestanden moeten uitvoeren, dus het is mogelijk om de uitvoer van het grep-commando om te leiden naar een specifiek bestand, we zullen bijvoorbeeld het volgende doen:

 grep Solvetic Solvetic.txt> Solvetic2.txt 
Als resultaat zullen we zien dat het vereiste tekstbestand is aangemaakt:

VERGROTEN

Hoe grep te gebruiken om mappen te zoekenDankzij de parameter -r zullen we in staat zijn om naar een waarde te zoeken in de beschikbare submappen, we zullen het volgende uitvoeren:

 grep -r Solvetic / home / solvetic 
Hiermee wordt in de hele homedirectory gezocht naar de term die de gedetecteerde resultaten markeert:

Hoe grep te gebruiken om regelnummer weer te gevenVoor auditing of geavanceerde ondersteuningstaken is het ideaal om het nummer van de regel weer te geven waar het zoekpatroon is gevonden, hiervoor kunnen we de -n parameter als volgt gebruiken. Daar vinden we het nummer van de regel waar elke waarde wordt gevonden.

 grep -n Solvetic Solvetic.txt 

Hoe grep te gebruiken om resultaten te markerenOmdat we weten dat de tekst vaak verwarrend kan zijn, is een oplossing om de zoekcriteria te markeren die ons zicht direct op die regel richten, hiervoor zullen we de kleurparameter als volgt gebruiken:

 grep -color Solvetic Solvetic.txt 

Hoe grep te gebruiken om lijnen weer te geven die beginnen of eindigen met het aangegeven patroonHet is mogelijk dat we alleen de resultaten willen zien van de regels die beginnen of eindigen met een zoekcriterium, hiervoor, als we willen zoeken naar de regels die beginnen, gebruiken we de volgende regel:

 grep Solvetic Solvetic.txt 

Om nu de regels weer te geven die eindigen, gebruiken we het volgende:

 grep Solvetic $ Solvetic.txt 

Hoe grep te gebruiken om alle regels af te drukken zonder te zien welke overeenkomen?Als we alle regels willen zien, behalve die waar de waarde wordt gezocht, moeten we de parameter -v als volgt gebruiken:

 grep -v Solvetic Solvetic.txt 

Hoe grep te gebruiken met andere commando'sGrep kan, net als veel andere Linux-commando's, gelijktijdig met andere commando's worden gebruikt voor duidelijkere resultaten. Als we bijvoorbeeld HTTP-processen willen implementeren, gebruiken we grep samen met ps als volgt:

 ps -ef | grep http 

Hoe grep te gebruiken om te tellen hoeveel een woord in een bestand wordt herhaaldAls we willen weten hoe vaak een patroon in een bepaald bestand wordt herhaald, gebruiken we de parameter -c:

 grep -c Solvetic Solvetic.txt 

Hoe grep te gebruiken om een ​​reverse lookup uit te voerenHoewel het vreemd klinkt, is dit niets meer dan het weergeven van de woorden die we niet specificeren in het resultaat, dit bereiken we met de -v parameter:

 grep -v Solvetic Solvetic2.txt

Hoe grep te gebruiken om hardwaredetails te bekijkenWe hebben eerder gezien dat we grep kunnen combineren met andere commando's om een ​​resultaat weer te geven, nou, als we specifieke hardwaredetails willen krijgen, kunnen we cat met grep als volgt gebruiken:

 cat / proc / cpuinfo | grep -i 'Model' 

We hebben globaal het gebruik geleerd dat het grep-commando ons geeft om toegang te krijgen tot veel specifiekere resultaten van zoekcriteria in Linux.

3. Hoe de Grep Linux-opdracht recursief te gebruiken

Stap 1
Grep geeft ons de mogelijkheid om een ​​recursieve zoekopdracht uit te voeren, dat wil zeggen dat deze zoekopdracht alle bestanden in elke map leest voor een specifieke string, bijvoorbeeld het IP-adres van de computer, we kunnen elk van de volgende opties uitvoeren:

 grep -r "192.168.0.25" / etc / of grep -R "192.168.0.25" / etc /

OpmerkingDaar kunnen we het huidige IP-adres van de gebruikte apparatuur invoeren.

Stap 2
We kunnen hetzelfde ook uitvoeren met de IP 192.168.1.5 die het systeem gebruikt voor standaarduitgangen:

Stap 3
We kunnen zien dat bij beide IP-adressen een aparte regel wordt weergegeven, voorafgegaan door de naam van het bestand waarin het is gedetecteerd. Als we de opname van deze waarde willen elimineren, is het mogelijk om deze te onderdrukken met de optie -h zoals dit:

 grep -h -R "192.168.1.5" / etc / of grep -hR "192.168.1.5" / etc /

OpmerkingDeze opdracht moet worden uitgevoerd als root of door sudo voor de opdracht te plaatsen.

4. Hoe de Grep Linux-opdracht te gebruiken om woordzoekopdrachten uit te voeren

Stap 1
Grep is handig om termen in een bepaald bestand te zoeken, dus het resultaat wordt op een gemarkeerde manier weergegeven op elke regel waar de zoekterm wordt gevonden, evenals de woorden (niet gemarkeerd) die de zoekterm vergezellen, de te gebruiken syntaxis is het volgende. In dit geval zijn er 3 overeenkomsten gevonden in het bestand Solvetic1.

 grep -w "woord" bestand

Stap 2
In het geval dat we naar twee termen in een bestand willen zoeken, moeten we de volgende syntaxis uitvoeren met het egrep-commando. Zoals we kunnen zien, worden de gezochte woorden gemarkeerd in het resultaat.

 egrep -w 'term1 | term2' bestand 

5. Hoe de Grep Linux-opdracht te gebruiken om woorden te tellen

Stap 1
Een andere praktische optie van Grep is de mogelijkheid om te weten hoe vaak een woord in een specifiek bestand wordt herhaald, dit wordt bereikt dankzij de parameter -c als volgt:

 grep -c 'word' bestand 

Stap 2
Als alternatief kunnen we de parameter -n gebruiken om elke uitvoerregel vooraf te laten gaan door het nummer van de regel waarin deze is ingevoerd in het geselecteerde bestand:

 grep -n 'word' bestand 

6. Hoe u het Grep Linux-commando voor achteruit zoeken kunt forceren


Met omgekeerd zoeken bedoelen we dat het Grep-commando alleen resultaten toont van die regels die het gedefinieerde woord niet bevatten, dit wordt bereikt met de parameter -v als volgt:
 grep -v "term" bestand 

7. UNIX / Linux Pipes gebruiken samen met het Grep-commando

Stap 1
Het Grep-commando in Linux kan worden gecombineerd met UNIX-shellpipes, als we bijvoorbeeld de naam van de harde schijfapparaten willen vermelden, voeren we de volgende regel uit:

 dmesg | egrep '(s | h) d [a-z]' 

Stap 2
Daar worden de resultaten weergegeven met alle bijbehorende informatie. Om het CPU-model weer te geven, voeren we uit:

 cat / proc / cpuinfo | grep -i 'Model' 

Stap 3
Voor hetzelfde resultaat kunnen we ook het volgende uitvoeren:

 grep -i 'Model' / proc / cpuinfo 
Stap 4
Een van de meest speciale toepassingen van het Grep- of egrep-commando is de mogelijkheid om de uitvoer van traditionele commando's zoals yum, dpkg, apt of apt-get te filteren. We kunnen bijvoorbeeld de volgende regel gebruiken om Linux-afbeeldingen met dpkg te vinden:
 dpkg --lijst | grep linux-afbeelding 

Stap 5
Het is mogelijk om de zoekopdracht uit te voeren met apt:

 apt zoeken maria | egrep 'server | client' 

8. Alleen de bestandsnamen weergeven die overeenkomen met Grep


Voor dit doel kunnen we gebruik maken van de -l optie om de naam van het bestand waarin de inhoud zal worden gemarkeerd als volgt weer te geven:
 grep -l 'term' * .c 
Grep-opdrachtparametersVervolgens zullen we de verschillende variabelen zien die Grep ons biedt voor het beheer ervan in Linux:

  • -num: Met deze optie staan ​​de overeenkomende regels naast de vorige en volgende regelnummers.
  • -A num, --after-context = NUM: Geeft het aantal contextregels weer nadat ze overeenkomen met de aangegeven regels.
  • -B num, --before-context = NUM: Als u deze optie gebruikt, worden de contextregels weergegeven vóór degene die overeenkomen met de zoekopdracht.
  • -V, --version: Toon het versienummer van de gebruikte grep.
  • -b, --byte-offset: Deze parameter geeft de offset in bytes weer vanaf het begin van het invoerbestand vóór elke regel van de uitvoer.
  • -c, --count: tel het aantal regels dat overeenkomt met de opgegeven term.
  • -h, --no-filename: Onderdruk het afdrukken van bestandsnamen in de uitvoer.
  • i, --ignore-case: er wordt geen rekening mee gehouden of de letters hoofdletters of kleine letters zijn.
  • -L, --files-without-match: Deze optie toont de naam van elk invoerbestand waar geen overeenkomst is gevonden.
  • -l, --files-with-matches: Toon de naam van elk invoerbestand dat een resultaat kan genereren.
  • -n, --line-nummer: wijst elke uitvoerregel toe aan het respectieve regelnummer in het zoekbestand.
  • -q, --quiet: activeer de stille modus die de normale uitvoer onderdrukt en het zoeken eindigt bij de eerste overeenkomst.
  • -s, --silent: Onderdruk foutmeldingen.
  • -v, --invert-match: deze optie keert de zoekrichting om, dat wil zeggen dat de resultaten worden weergegeven die niet overeenkomen met de zoekterm.
  • w, --word-regexp: Deze parameter selecteert alleen regels die overeenkomsten bevatten die hele woorden vormen.
  • -x, --line-regexp: Deze optie selecteert alleen overeenkomsten die uit de hele regel bestaan.

9. Hoe de Tree-opdracht in Linux te gebruiken en te installeren


Nu zullen we het hebben over het Tree-commando, zoals de naam al aangeeft, het is ontwikkeld om de systeemdirectory's in de vorm van een boom te tonen, waardoor het beheer ervan wordt vergemakkelijkt.

Het Tree-commando werkt met een recursief directory-lijstcommando dat alleen resulteert in het boomformaat ontworpen met een reeks kleuren als de omgevingsvariabele LS_COLORS is ingesteld en de uitvoer tty is. In het geval dat er geen argumenten zijn toegewezen, zal dit commando de bestanden weergeven in de huidige map.

Stap 1
De algemene syntaxis is als volgt:

 tree [-acdfghilnpqrstuvxACDFQNSUX] [-L niveau [-R]] [-H baseHREF] [-T titel] [-o bestandsnaam] [--nolinks] [-P patroon] [-I patroon] [--inodes] [ --device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt formaat ] [--matchdirs] [-] [map…] 
Stap 2
De eerste stap is om de opdracht Tree te installeren door de volgende opdracht uit te voeren:
 sudo apt installatieboom 

Stap 3
Eenmaal geïnstalleerd, voeren we direct het commando "tree" uit om de huidige map in boomformaat weer te geven:

10. Hoe te werken met bestanden met behulp van de Tree-opdracht in Linux

Verborgen bestanden bekijken met TreeStandaard zal het Tree-commando om veiligheidsredenen geen verborgen bestanden weergeven, als we ze in het resultaat willen zien, is het mogelijk om de -a parameter voor dit doel toe te voegen:

 boom -a 

VERGROTEN

Alleen mappen weergeven met TreeAls u wilt dat Tree alleen de directory-items genereert, is het mogelijk om dit als volgt te doen met de parameter -d:

 boom -d 

VERGROTEN

Bekijk het volledige pad van de bestanden met TreeHet Tree-commando geeft ons de mogelijkheid om het voorvoegsel van het volledige pad voor de bestanden in de map af te drukken met behulp van de -f parameter:

 boom -f 

VERGROTEN

Bepaal de dimensie van het resultaat met TreeIn sommige gevallen is het mogelijk dat het gegenereerde resultaat extreem lang is. Tree stelt ons in staat om de diepte van de directory-structuur voor de uitvoer ervan te regelen, hiervoor moeten we de parameter -L gebruiken die een numerieke waarde vereist die de toegestane directory-diepte aangeeft:

 boom -d -L 2 

VERGROTEN

Gebruik selectieve namen met TreeMet de parameter -l is het mogelijk om bepaalde woorden uit te sluiten van de resultaten die door Tree worden gegenereerd, we kunnen bijvoorbeeld de volgende regel uitvoeren om resultaten te genereren, maar zonder de term Android:

 boom -d -I * Android 

VERGROTEN

11. Parameters om te gebruiken met het Tree-commando in Linux

Parameters voor gebruik met TreeVervolgens zal Solvetic de beschikbare parameters uitleggen die met Tree kunnen worden gebruikt:

  • -a: Druk alle bestanden af, onthoud dat de boom standaard geen verborgen bestanden afdrukt.
  • -d: Geef alleen de mappen weer.
  • -l: Ga door met symbolische koppelingen als ze naar mappen verwijzen en zich voordoen als mappen.
  • -f: druk het voorvoegsel van het volledige pad van de objecten af.
  • -x: blijft alleen op het huidige bestandssysteem.
  • -L Level: hiermee kunt u de maximale weergavediepte van de directorystructuur in het resultaat definiëren.
  • -R: Het werkt recursief door de boom in de mappen van elk niveau te kruisen en in elk ervan zal het worden uitgevoerd. de boom opnieuw door `-o 00Tree.html ' toe te voegen.
  • -P-patroon: geef alleen bestanden weer die overeenkomen met het jokertekenpatroon.
  • -I-patroon: vermeld niet de bestanden die overeenkomen met het jokertekenpatroon.
  • --matchdirs. Deze optie specificeert een overeenkomend patroon waardoor het patroon alleen van toepassing is op directorynamen.
  • --prune: Deze parameter verwijdert lege mappen uit de uitvoer.
  • --noreport: Sla het afdrukken van het bestand en het maprapport aan het einde van de lijst van de uitgevoerde boom over.

Boom algemene optiesDit zijn de algemene Tree-opties die beschikbaar zijn, maar we hebben ook exclusieve parameters voor de bestanden, dit zijn:

  • -q: Druk niet-afdrukbare tekens af in bestandsnamen.
  • -N: drukt niet-afdrukbare tekens af.
  • -V: Zijn functie is om de namen van de bestanden tussen dubbele aanhalingstekens toe te wijzen.
  • -p: druk het bestandstype en de machtigingen af ​​voor elk bestand in de map.
  • -u: druk de gebruikersnaam of UID van het bestand af.
  • -s: druk de grootte van elk bestand in bytes af, evenals de naam.
  • -g Druk de groepsnaam of GID van het bestand af.
  • -h: Zijn functie is om de grootte van elk bestand op een voor mensen leesbare manier af te drukken.
  • --du: Handel op elke map en genereer een rapport over de grootte, inclusief de grootte van alle bestanden en submappen.
  • --si: Gebruikt machten van 1000 (SI-eenheden) om de bestandsgrootte weer te geven.
  • -D: Drukt de datum af van de laatste wijziging van de bestanden.
  • -F: Jouw taak is om een ​​`/ 'voor mappen, a` =' voor socket-bestanden, een `* 'voor uitvoerbare bestanden, a`>' voor deuren (Solaris) en een `| ' toe te voegen voor FIFO's.
  • --inodes: druk het inodenummer van het bestand of de map af.
  • --device: druk het apparaatnummer af waartoe het bestand of de directory behoort in de uitvoer.
  • -v: Sorteer de uitvoer op versie.
  • -U: Bestelt de resultaten niet.
  • -r: Sorteer de uitvoer in omgekeerde volgorde.
  • -t: Sorteer de resultaten op basis van de laatste gewijzigde tijd in plaats van alfabetisch.
  • -S: Activeert CP437-lijndiagrammen
  • -n: Schakelt de inkleuring van het resultaat uit.
  • -C: Activeert de inkleuring.
  • -X: Activeert de XML-uitvoer.
  • -J: Activeer JSON-uitvoer.
  • -H baseHREF: activeert HTML-uitvoer, inclusief HTTP-verwijzingen.
  • --help: toegang tot de Help van de boom.
  • --version: Toont de gebruikte versie van het Tree-commando.

Met het gebruik van deze twee commando's was het mogelijk om elke taak die op de bestanden in Linux moest worden uitgevoerd op een veel uitgebreidere manier te beheren, de zoek- of beheertaken daarop aan te vullen en zo nodig toegang te krijgen tot uitgebreide resultaten.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave