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 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 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 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
i sin mest grunnleggende form du følger denne strukturen:
. 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:
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:
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