Linux Tips: Handy måter å grep

Den grep kommandoen er en av de mest praktiske linux kommandoer du vil bruke. Den grep utitility ble opprinnelig skrevet for UNIX og står for Global Regular Expression ut. Hva grep gjør er å søke etter strenger i praktisk talt alt du trenger for å søke. Du kan søke nesten alle typer filer, utgang, logger ... you name it, kan grep søke det.

Men fordi grep er så praktisk, er det vanskelig å vite hvor du skal begynne. Selvfølgelig kan du bruke grep på vanlig måte, men når du kan gjøre så mye med en kommando, hvorfor ikke lære noen kule triks. Og det er det vi skal gjøre her -. Lære å bruke grep for å virkelig gjøre det nyttig

Grunn bruk

Før vi kommer inn i noen morsomme ting, bør vi se på den grunnleggende kommandostruktur . For å bruke grep
i sin mest grunnleggende form du følger denne strukturen:

grep STRING FIL

Hvor STRING er streng med tegn du ønsker å søke etter og FIL er filen du ønsker å søke.

Si for eksempel, jeg vil søke filen test.txt for strengen "Linux" (uten anførselstegn). Jeg kan gjøre dette med kommandoen:

grep Linux test.txt

Hva grep vil gjøre er å skrive ut (ved ledeteksten) hver linje i filen som inneholder ordet Linux. Men hva hvis du søker et stort konfigurasjonsfil og du trenger å finne plasseringen av et bestemt alternativ. For å gjøre dette kan du legge til "n" bryteren som vil skrive ut linjenumrene knyttet til hver linje. La oss se på et annet eksempel. Si at du trenger å finne ut hvilken port dansguardian lytter til. I stedet for å bla gjennom alle linjene i /etc/dansguardian/dansguardian.conf fil for strengen "port" (uten anførselstegn), kan du gi kommandoen:

grep -n port /etc /dansguardian /dansguardian .conf

som ville rapportere tilbake noe sånt som:

6: # Web Access Denied Reporting (påvirker ikke logging) 10: # 1 = rapporten hvorfor, men ikke hva nektet phrase11: # 2 = Rapporten fully14: reportinglevel = 317 # HTML mal innenfor dette dir brukes bare når reportinglevel87: # porten som dansguardian lytter to.88: filterport = 808093 # porten dansguardian kobler til proxy on94: proxyport = 312897 # dansguardian rapportering Skriptet ble kopiert. Kun brukt i rapporteringsnivåer 1 og 2,153: # den naughtyness grensen skal logge

Så du kan se at linjen 88 er filteret port og 94 er proxy-porten. Lett. La oss nå se hva annet grep kan gjøre.

Lines før og etter

Hva om du ikke bare ønsker å se den eneste linje forbundet med en streng, men også en viss mengde linjer over og under den linjen. Du kan gjøre dette ved hjelp av -A og -B brytere som så (vi vil holde med vår dansguardian eksempel):

grep -B1 A2 -n port dansguardian.conf

Kommandoen ovenfor ville skrive ut ikke bare hver linje inneholder strengen "port" (uten anførselstegn), men også en linje over det og de neste to linjene under det.

Rør andre kommandoer

Du husker dmesg kommandoen
. Denne kommandoen skriver ut kjernen buffer - det er der du lærer mye om din maskin. Hva om du ønsker å sjekke ut CPU informasjon i dmesg
utgang. Du kan gi kommandoen dmesg | mindre Hotell og bla rundt til du finner den, eller du kan gi kommandoen:

dmesg | grep -n CPU

som vil skrive ut hele dmesg utgang som inneholder strengen CPU og linjene tall knyttet til hver linje.

Søk kataloger

Du kan også ha grep
hjelpe deg i din søken etter kataloger. For å gjøre dette vil du bruke den sammen med, si, finne
kommando. Si at du var ute etter konfigurasjonsfilen for nano tekst editor, men du hadde ingen anelse om hva det het eller hvor den var plassert. Du kan rør produksjonen av finn
kommandoen til grep plakater (som root eller sudo bruker) slik:

finne /| grep nano | mindre

og du vil se blant utgangs:

/etc /nanorcBingo! Det er din konfigurasjonsfil.

Avsluttende tanker

Som du kan se er det en rekke måter at grep
kommandoen kan være til hjelp. Og dette er bare toppen av isfjellet. Har du en kjekk liten måte å bruke grep
? Hvis ja, kan du dele det med andre ghacks medlemmer. Anmeldelser