GREP in poiščite pravila operaterjev za Linux
- 3966
- 548
- Miss Sherman Lind
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.