GREP in poiščite pravila operaterjev za Linux

GREP in poiščite pravila operaterjev za Linux

Na začetku operacijski sistemi UNIX/Linux niso imeli grafičnega vmesnika, saj so bili osredotočeni na uporabo strežnika. Danes v zvezi s tem niso manjvredni od sistema Windows, zato uporabniki, ki uporabljajo ta OS, le redko poznajo sintakso in namen glavnih ukazov Linux. Medtem je to zelo močno orodje, ki vam omogoča hitro izvajanje operacij, ki so z uporabo osnovnih orodij OS problematično ali nemogoče. Danes se boste srečali.

Imenovanje izvajalcev Find and Grep

Ekipa Find v Linuxu je upravljavec ukazne vrstice, ki dela z datotekami, ki zaobidejo obstoječo hierarhijo. Omogoča vam iskanje datotek s številnimi filtri in izvajanje določenih dejanj prek datotek po njihovem uspešnem iskanju. Med merili za iskanje datotek so skoraj vsi razpoložljivi atributi, od datuma ustvarjanja do ločljivosti.

Ekipa GREP v Linuxu se nanaša tudi na iskalnike, vendar znotraj datotek. Dobesedni prevod ekipe je "globalno tiskanje rednih izrazov", vendar tesnilo tukaj pomeni zaključek rezultatov dela na napravi, kar je običajno monitor. Ob velikem potencialu se operater uporablja precej pogosto in vam omogoča iskanje znotraj ene ali več datotek v skladu z določenimi fragmenti (predloge). Ker se terminologija v Linuxu bistveno razlikuje od takšnih v sistemu Windows, imajo številni uporabniki velike težave z uporabo teh ukazov. Poskusili bomo odpraviti to pomanjkljivost.

Grep in najdite sintakso

Začnimo z operaterjem najdi. Sintaksa ekipe za iskanje datotek je videti tako:

Poiščite [kje videti] [parametri] [-optic] [ACTION]

Nekateri uporabljajo parametre:

  • -Globina: iskanje v trenutni mapi in podkatalisti;
  • -Različica: Prinesite različico ekipe;
  • -Natisni: Prikaži celotna imena datotek (v Linuxu so lahko poljubno velika);
  • -Tip F: Iskanje izključno datoteke;
  • -Type D - Iščite samo imenik (mape).

Seznam razpoložljivih možnosti (navedeno prek vezaja):

  • Ime: Iskanje datotek po imenu;
  • Uporabnik: Poiščite po imenu lastnika datoteke;
  • Perm: v skladu z atributom "Način dostopa";
  • mtime: Do zadnje spremembe (urejanje) datoteke;
  • Skupina: po skupinah;
  • ATIME: Do datuma zadnjega odprtja datoteke;
  • Novejše: iskanje datoteke z datumom več kot direktivo, določeno v predlogi;
  • Velikost: glede na velikost datoteke v bajtih;
  • Nouser: Poiščite datoteke, ki nimajo vnesenega atributa "lastnik".

GREP Sintaksa:

Grep [Options] predloga [kje iskati]

Možnosti je treba razumeti kot dodatne razjasnitvene parametre, na primer uporaba inverznega režima ali iskanje določenega števila vrstic.

Predloga označuje, kaj je treba iskati z neposredno določeno črto ali rednim izrazom.

Možnost uporabe rednih izrazov lahko znatno razširi iskalne zmogljivosti. Navedba standardnega zaključka je lahko koristna, če je naloga filtrirati napake, zabeležene v dnevnikih, ali iskanje procesa PID v rezultatih ukaza PS, ki je lahko večstranski.

Razmislite o najpogostejših parametrih GRAS:

  • -B: pred izdajo nastale vrstice prikažite številko bloka;
  • -C: je treba izračunati število vnosov želenega fragmenta;
  • -I: Iskanje brez registracije registra;
  • -N: izdajte številko vrstice na standardno izhodno napravo, v kateri je bil najden želeni fragment ali predloga;
  • - L: Zaradi izdaje bi morala biti prisotna samo imena datotek z iskanim fragmentom;
  • -S: ignorirajte izhod napak;
  • -W: Poiščite fragment, obkrožen na obeh straneh s prostori;
  • -V: obrnjeno iskanje, to je prikaz vseh vrstic, ki ne vsebujejo danega fragmenta;
  • -E: Parameter kaže, da sledi nadaljnji redni izraz, ki ima svojo sintakso;
  • -An: Zaključek želenega fragmenta in prejšnjih n vrstic;
  • -BN: Enako, vendar s črtami za predlogo.

Zdaj je smiselno prestaviti iz teoretičnega dela na praktično.3

Primeri uporabe pripomočkov

Če veste, kaj je kombinatorika, potem je treba predstaviti resnično število možnih kombinacij iskalnih skupin. Omejili se bomo le na najbolj koristne primere, ki vam lahko med delom koristni.

Poiščite besedilo v datotekah

Naj imamo pravice skrbnika in nalogo poiščemo določenega uporabnika v ogromni datoteki z geslom. Potrebovali bomo dokaj preprosto ekipo, ki prikazuje pot za objavo datotek:

Grep NameUser /etc /passwd

Če je rezultat iskanja pozitiven, bomo dobili nastalo vrstico približno naslednje vrste:

NameUser: x: 1021: 1021: NameUser ,,,:/Domov/uporabnik:/bin/bash

Če morate iskati delček besedila, ne da bi upoštevali register registra, bo ekipa videti tako:

Gras -i "imeuser" /etc /passwd

V tem primeru bodo najdeni uporabnik NameUser in njegov "istoimenski" namestnik ter vse druge možne kombinacije.

Zaključek več vrstic

Dovolite vse napake iz dnevnika okenske lupine xorg.dnevnik. Naloga je zapletena z dejstvom, da lahko po napačni niz sledi dragocene informacije. Odločeno je, če prisilimo ukaz, da prikaže več vrstic z uporabo vrstice "PP" kot predlogo:

GRAS -A5 "PP"/VAR/LOG/XORG.0.dnevnik

Po njej dobimo črto, ki vsebuje predlogo in 5 vrstic.

GRAS -C3 "PP"/VAR/LOG/XORG.0.dnevnik

Linijski izhod s fragmentom besedila in tremi vrsticami pred in po njem.

Uporaba rednih izrazov v Grep

To je eno najmočnejših orodij Linuxa, ki znatno razširi možnost oblikovanja predloge za iskanje. Redni izrazi imajo svojo skladnjo, precej zapleteno. V to se ne bomo poglobili in se omejili na primer uporabe RV. Kot že veste, za nadaljevanje uporabe običajnega izraza se uporablja parameter -e.

Naj nam v datoteki sporočil.2 Za september moramo ujeti vse vrstice:

Grep "^sep 09"

Rezultat bo nekaj takega:

September 09 01:11:45 GS124 NTPD [2243]: Ponastavitev časa +0.197579 s

September 09 01:19:10 GS124 NTPD [2243]: Ponastavitev časa +0.203484 s

Za iskanje predloge, ki se nahaja na koncu vrstice, se uporablja simbol "$":

Grep "izraz.$ "Sporočila

Rezultat:

17. junij 19:01:19 Cloneme jedro: Log Daemon izraz.

11. september 06:30:54 Cloneme jedro: dnevnik Daemon izraz.

In tukaj je primer uporabe običajnega izraza, ki vam omogoča iskanje vrstic, ki vsebujejo poljubne številke, razen nič:

Grep "[1-9]"/var/log/xorg.1.dnevnik

Uporaba rekurzivnega iskanja v Grep

Če poznate izraz "rekurzija", se v Linuxu uporabi ta tehnika, zlasti za iskanje fragmenta v več datotekah, ki se nahajajo v katalogu in njegovih podplačih. Možnost -r bo pokazala prisotnost rekurzije. Poiščite fragment "Namedomain.Org "v datotekah, ki se nahajajo v podplatih mape /etc /apache1:

Gras -r "Namedomain.Org "/etc/apache1/

Rezultat je morda kaj takega:

/etc/apache1/vhosts.D/ Namedomain.Org

Če ime datoteke ni potrebno, uporabljamo -H: H:

Grep -h -r "Namedomain.Org "/etc/apache1/

Iskanje besed

Standard Iskanje fragmenta QWE se bo končalo z izdajo vseh besed, v katerih je ta fragment: KBQWE, QWE123, AAFRQWE32. Če želite iskanje omejiti samo z določenim fragmentom, morate uporabiti parameter -W:

Gras -w "qwe" kje najti

Poiščite dve ali več besed

Zaplete nalogo: najti moramo vse vrstice, kjer sta našli dve besedi. Ekipa bo takšna:

Gras -w "word01 | word02", kjer_ najti

Število vrstic

Če je potrebno za izračun. Kolikokrat se v datoteki najde želeni fragment, uporabimo zasnovo s parametrom -C:

Gras -c "'' besedilo ', kje najti

Parameter -n pomaga ugotoviti, v kateri vrstici najdete želeno predlogo:

Gras -n "nuser" /etc /passwd

Obrnjeno iskanje z uporabo GREP

Včasih naloga iskanja z uporabo GREP z vsebino datotek ni najti vnosa, ampak vrstice, kjer ta fragment ni odsoten. Možnost -V nam bo pomagala:

Gras -v "txt", kje najti

Izhod imena datoteke

Naj poiščete vse datoteke v določenem imeniku, ki vsebuje želeno predlogo. To je mogoče storiti s parametrom -L. Torej, celoten ukaz za izhod datotek, ki vsebuje niz "sekundarne" v mapi /etc, bo videti na naslednji način:

Grep -l "sekundarna" /itd

Barvni izhod z uporabo Grep

Bivanje z drugo barvo je odličen način za vizualizacijo želenega vnosa, ki znatno zmanjša obremenitev na očeh, če se operacija pogosto izvaja. Izkazalo se je, da ima GRAS možnost za ta izhod rezultatov iskanja:

Grepor -barvni "sekundarni" /itd

Nadaljujemo s primeri uporabe pripomočka Find v Linuxu.

Poiščite vse datoteke

Za umik seznama datotek, ki se nahajajo v trenutnem katalogu, uporabimo ukaz v naslednji obliki:

Najti .

Če morate pokazati polno ime datotek, uporabimo ukaz

Najti . -Tisk

Izhod datoteke v določenem katalogu

Za iskanje datotek v mapi, ki jo določi uporabnik, uporabljamo ukaz

Najti ./itd

Kako pa v trenutnem katalogu najdete datoteke, ki vsebujejo določen fragment:

Najti . -Ime "*.Gif "

Če je treba iskanje opraviti brez obračunavanja registra, je treba ukaz spremeniti:

Pri iskanju po imenu ne upoštevajte registra:

Najti . -V meni "*.Gif "

Omejevanje globine iskanja

Druga dokaj značilna naloga je iskanje datotek v določeni mapi v skladu z dano ime:

Najti . -maxDepth01 1 -name "*.Html "

Obrnjenost predloge

Že smo razmišljali o analogu ekipe za iskanje vrstic, ki ne vsebujejo danega fragmenta. Na enak način lahko naredite datoteke, ki ne ustrezajo določeni predlogi:

Najti . -ne -name "uporabnik*"

Iskanje po več merilih

Navedemo primer ukazne vrstice s pomočjo pripomočka Find za iskanje z dvema meriloma z uporabo operaterja Not (izključitev):

Najti . -Ime "uporabnik" -Ne -name "*.Html "

V tem primeru datoteke, katerih ime vključuje uporabniški fragment, vendar ki imajo razširitev, ne bodo našli. Namesto operaterja izjem lahko uporabite logično "/" ali "::

Najti -name "*.js "-o -name"*.SQL "

V tem primeru bomo dobili celoten seznam datotek z obema razširitvama, ki se nahajajo v trenutnem imeniku.

Iskanje v več katalogih

Če moramo najti datoteke v dveh katalogih, samo navedite iz vrzeli:

Poiščite tip f ./test01 ./test02 -name "*.SQL "

Poiščite skrite datoteke

V Linuxu, tako kot v sistemu Windows, obstajajo skrite datoteke, ki pri uporabi ukaza za iskanje ne bodo prikazane brez posebnega simbola. Ta simbol je tilda in direktiva bo imela naslednji videz:

najti ~ -name ".*"

Poiščite datoteke v Linuxu z dovoljenji

Včasih je treba filtrirati katalog za določeno masko pravic. Na primer, če moramo najti datoteke z atributom 0661, uporabimo ukaz:

Najti . -Perm 0661

Naloga filtriranja datotek z atributom "samo za branje" je rešena na naslednji način:

Najti /etc /uporabnik -perm /u = r

Toda kako bo videti iskanje izvedljivih datotek v katalogu ETC:

Najti /etc -perm /a = x

Poiščite datoteke po skupinah/uporabnikih

Skrbnik se mora pogosto soočiti z nalogo iskanja datotek, ki so lastnost določenega uporabnika in/ali skupine. Iskanje uporabnika:

Najti . -Uporabnik Slavko

Za skupine uporabnikov se uporablja drug parameter:

FIND /VAR -Group Devs

Iskanje po datumu zadnje spremembe

Vidna oblika datuma datoteke v Linux OS je natančno datum njegove spremembe (isto načelo se uporablja v sistemu Windows). Za oblikovanje seznama po datumu se uporablja možnost MTIME. Recimo, da moramo pred dvema mesecema najti datoteke, spremenjene:

Poišči /doma -Mime 60

Med atributi datoteke je datum njegovega zadnjega odkritja (brez sprememb). Takšne datoteke so prikazane z naslednjim ukazom:

Poišči /domov -čas 60

Nastavite lahko tudi časovni interval. Za iskanje datotek, spremenjenih od štiri do dveh mesecev, uporabljamo direktivo:

FIED /HOME -MTIME +60 -MTIME -120

Toda kako najti sveže spremenjene datoteke (pred dvema urama):

Najti /domov -cmin 120

Poiščite datoteke po velikosti

Sumite, da nekdo uporablja disk za filme? Iščemo velikosti datotek 1.4 GB:

Najti / -Size 1400m

Ali uporabite območje:

Najti / -size +1400m -size -2800m

Poiščite prazne datoteke/kataloge

Da, ne bodite presenečeni. Naloga obnovitve vrstnega reda v medijih je značilna ne samo za Android OS. V Linuxu se odloči s pomočjo takšne direktive:

Find /var -tip f -sitty

Primer dejanj z najdenimi datotekami

V Linuxu lahko ekipa Find rekurzivno izvede določena dejanja s temi datotekami, iskanje, po katerem izvajate. Če želite izvesti ukaze datotek, morate uporabiti parameter Exec. Torej, direktiva za prikaz informacij o vseh datotekah z ukazom LS bo videti tako:

Najti . -exec ls -l \;

Toda kako preprosto lahko v imeniku /doma /temp izbrišete začasne datoteke z dano masko:

Najti /tmp -tip f -name "*.html ”-exec rm -f \;

Seveda se bo za začetnika uporaba ukazne vrstice z ogromnim številom možnosti zdelo nekoliko natančno, toda v Linuxu je v vrstnem redu stvari. In kako bi rešili težave, opisane tukaj v sistemu Windows? To je isto. V tem vidiku je Linux očitno pred nami.