![SSH Prijava bez lozinke pomoću SSH Keygena u 5 lakih koraka](/f/4e60b8e56038a7e02e815ee27e3edb3d.jpg?width=100&height=100)
Jeste li se ikada suočili sa zadatkom traženja određenog niza ili uzorka u datoteci, a nemate pojma odakle početi tražiti? Pa evo, evo grep u pomoć!
grep je snažan pretraživač uzoraka datoteka koji dolazi opremljen za svaku distribuciju Linux. Ako iz bilo kojeg razloga nije instaliran na vašem sustavu, možete ga jednostavno instalirati putem upravitelja paketa (apt-get na Debian/Ubuntu i njam na RHEL/CentOS/Fedora).
$ sudo apt-get install grep #Debian/Ubuntu
$ sudo yum install grep #RHEL/CentOS/Fedora
Otkrio sam da je to najlakši način da se noge smoče grep je samo zaroniti i upotrijebiti neke primjere iz stvarnog svijeta.
Recimo da ste upravo instalirali novu kopiju nove Ubuntu na svom stroju i koje ćete dati Piton scenarij snimke. Pretraživali ste web u potrazi za vodičima, ali vidite da postoje dvije različite verzije Piton u upotrebi, a ne znate koji je instaliran na vašem sustavu Ubuntu instalacijski program ili ako je instalirao bilo koji modul. Jednostavno pokrenite ovu naredbu:
# dpkg -l | grep -i piton
ii python2.7 2.7.3-0ubuntu3.4 Interaktivni objektno orijentirani jezik na visokoj razini (verzija 2.7) ii python2.7-minimalno 2.7.3-0ubuntu3.4 Minimalni podskup jezika Python (verzija 2.7) ii python-openssl 0.12-1ubuntu2.1 Python omot oko biblioteke OpenSSL. ii python-pam 0.4.2-12.2ubuntu4 Python sučelje za PAM knjižnicu
Prvo smo trčali dpkg –l, koji popis instaliranih *.deb pakete na vašem sustavu. Drugo, usmjerili smo taj izlaz na grep –i python, koja jednostavna stanja "idu u grep i filtriraju i vraćaju sve s" python "u njemu." The –I postoji mogućnost zanemarivanja velikih i malih slova, kao grep osjetljiva je na velika i mala slova Koristiti –I Ova je opcija dobra navika za ulazak, osim ako naravno ne pokušavate pronaći specifičnije pretraživanje.
The grep Također se može koristiti za pretraživanje i filtriranje unutar pojedinačnih datoteka ili više datoteka. Uzmimo ovaj scenarij:
Imate nekih problema sa svojim Apache web poslužitelj, i obratili ste se jednom od mnogih sjajnih foruma na internetu tražeći pomoć. Ljubazna duša koja vam odgovara zamolila vas je da objavite svoj sadržaj /etc/apache2/sites-available/default-ssl datoteka. Ne bi li vama, momku koji vam pomaže i svima koji ga čitaju, bilo lakše ako biste mogli ukloniti sve komentirane retke? Pa možeš! Samo pokrenite ovo:
# grep –v “#”/etc/apache2/sites-available/default-ssl
The –V opcija govori grep obrnuti izlaz, što znači da umjesto ispisa odgovarajućih linija, učinite suprotno i ispišite sve retke koji ne odgovaraju izrazu, u ovom slučaju # komentirane retke.
The grep može biti vrlo korisno za filtriranje iz stdout. Na primjer, recimo da imate cijelu mapu punu glazbenih datoteka u hrpi različitih formata. Želite pronaći sve *.mp3 datoteke izvođača Jay Z, ali ne želite niti jednu od remiksiranih pjesama. Pomoću a pronaći naredbu s par grep cijevi će uspjeti:
# pronaći. –Naziv “*.mp3” | grep –i JayZ | grep -vi "remix"
U ovom primjeru koristimo find za ispis svih datoteka s *.mp3 proširenje, cijevima do grep –i za filtriranje i ispis svih datoteka s imenom “Jay Z”, A zatim još jednu cijev do grep –vi koji filtrira i ne ispisuje sva imena datoteka s nizom (u svakom slučaju) “remix”.
Predloženo čitanje:35 Praktični primjeri naredbe za pronalaženje Linuxa
Još je nekoliko opcija –A i –B switch, koji prikazuje podudarnu liniju i broj redaka koji dolaze prije ili poslije niza za pretraživanje. Dok man stranica daje detaljnije objašnjenje, najlakše mi je zapamtiti opcije kao –A = nakon, i –B = prije:
# ifconfig | grep –A 4 eth0. # ifconfig | grep -B 2 GORE
Grepovi –C opcija je slična, ali umjesto ispisa redaka koji dolaze prije ili poslije niza, ispisuje retke u bilo kojem smjeru:
# ifconfig | grep –C 2 lo
Slično cijevima a grep broj u niz riječi (zahod program) ugrađena opcija grepa može isto učiniti za vas:
# ifconfig | grep –c inet6
The –N opciju za grep je vrlo korisno pri otklanjanju pogrešaka u datotekama tijekom pogrešaka pri prevođenju. Prikazuje broj retka u datoteci danog niza za pretraživanje:
# grep –n “glavno” postavljanje..py
Ako želite tražiti niz u trenutnom direktoriju zajedno sa svim poddirektorijima, možete navesti –R mogućnost rekurzivnog pretraživanja:
# grep –r “funkcija” *
Prolazeći –W mogućnost grep pretraživanja cijelog uzorka koji se nalazi u nizu. Na primjer, pomoću:
# ifconfig | grep –w "RUNNING"
Ispisat će redak koji sadrži uzorak pod navodnicima. S druge strane, ako pokušate:
# ifconfig | grep –w “RUN”
Ništa neće biti vraćeno jer ne tražimo uzorak, već cijelu riječ.
Zaslužuju spomenuti grepovi derivati. Prvi je zgrep, koji, slično zcat, je za upotrebu na gzipped datoteke. Potrebne su iste opcije kao i grep i koristi se na isti način:
# zgrep –i pogreška /var/log/syslog.2.gz
The egrep je još jedna izvedenica koja označava "Prošireni globalni regularni izraz”. Prepoznaje dodatne meta-znakove izraza poput na +? | i ().
Predloženo čitanje:Koja je razlika između Grepa, Egrepa i Fgrepa u Linuxu?
egrep je vrlo koristan za pretraživanje izvornih datoteka i drugih dijelova koda, ako se ukaže potreba. Može se pozvati iz redovnog grepa navođenjem –E opcija.
# grep –E
The fgrep traži datoteku ili popis datoteka za niz fiksnih uzoraka. To je isto kao grep –F. Uobičajen način korištenja fgrep je proslijediti datoteku uzoraka:
# fgrep –f file_full_of_patterns.txt file_to_search.txt
Ovo je samo polazište s grep, ali kao što ste vjerojatno mogli vidjeti, neprocjenjiv je u razne svrhe. Osim jednostavnih naredbi u jednom retku koje smo implementirali, grep može se koristiti za snažno pisanje cron radnih mjesta, i robustan ljuske skripte, za početak.
Budite kreativni, eksperimentirajte s opcijama u man stranica, i smislite grep izrazi koje služe vašim ciljevima!