Grep és keresse meg az operátorok szabályait a linuxra

Grep és keresse meg az operátorok szabályait a linuxra

Kezdetben az UNIX/Linux operációs rendszereknek nem volt grafikus felülete, mivel azok a szerver használatára összpontosítottak. Ma ebben a tekintetben nem alacsonyabbak a Windowsnál, ezért az operációs rendszert használó felhasználók ritkán ismerik a szintaxist és a fő Linux parancsok célját. Eközben ez egy nagyon hatékony eszköz, amely lehetővé teszi a műveletek gyors végrehajtását, amely az operációs rendszer alapvető eszközeivel problematikus vagy lehetetlen. Ma találkozni fog a keresési és a grep operátorokkal, amelyek alapvetőek az összes Linux eloszlás fájlrendszeréhez.

A keresési és a grep operátorok kinevezése

A Find Team Linuxban a parancssori operátor, aki a meglévő hierarchiát megkerüli a fájlokkal. Ez lehetővé teszi a fájlok keresését sok szűrővel, valamint bizonyos műveleteket a fájlokon keresztül a sikeres keresés után. A fájlok keresésének kritériumai között szinte az összes elérhető attribútum, a létrehozás napjától a felbontásig.

A Linuxban található GREP -csapat a keresőmotorokra is utal, de a fájlokban. A csapat szó szerinti fordítása a „rendszeres kifejezések globális nyomtatása”, de a pecsét itt az eszközön végzett munka eredményeinek következtetését jelenti, amely általában a monitor, amely általában a monitor. Hatalmas potenciállal rendelkezik, az operátort elég gyakran használják, és lehetővé teszi, hogy egy vagy több fájlon belül keressen a megadott fragmensek (sablonok) szerint. Mivel a linux terminológiája szignifikánsan különbözik a Windows -ban, sok felhasználónak jelentős nehézségei vannak ezeknek a parancsoknak a használatával. Megpróbáljuk kiküszöbölni ezt a hátrányt.

Grep és keresse meg a szintaxist

Kezdjük a keresési operátorral. A fájlkeresési csapat szintaxisa így néz ki:

Keresse meg a [hol kell kinézni] [paraméterek] [-optikus] [művelet]

Néhány paraméter használ:

  • -Mélység: Keresés az aktuális mappában és a szubkatalistákban;
  • -Verzió: Hozd el a csapat verzióját;
  • -Nyomtatás: Mutassa meg a teljes fájlneveket (Linuxban tetszőlegesen nagyok lehetnek);
  • -F típus: Keressen kizárólag fájlok keresése;
  • -D típus - csak a könyvtár keresése (mappák).

A rendelkezésre álló lehetőségek listája (kötőjelen keresztül jelölve):

  • Név: Fájlkeresés név szerint;
  • Felhasználó: Keresés a fájltulajdonos nevével;
  • perm: A "hozzáférési mód" attribútum szerint;
  • MTIME: A fájl utolsó változásának (szerkesztése) idején;
  • Csoport: Csoportonként;
  • ATIME: A fájl utolsó megnyitásának napjára;
  • Újabb: A sablonban megadott irányelvnél több dátummal rendelkező fájl keresése;
  • Méret: A fájl méretével bájtban;
  • Nouser: Keressen olyan fájlokat, amelyekben nincs beírott "tulajdonos" attribútum.

Grep szintaxis:

Grep [opciók] sablon [hol kell kinézni]

A lehetőségeket további tisztító paraméterekként kell érteni, például az inverz rendszer használatát vagy egy adott sor keresését.

A sablon jelzi, hogy mit kell keresni egy közvetlenül megadott vonal vagy rendszeres kifejezés segítségével.

A rendszeres kifejezések használatának lehetősége jelentősen kibővítheti a keresési képességeket. A standard következtetés jelzése akkor hasznos lehet, ha a feladat a naplókban rögzített hibák szűrése vagy a PID -eljárás keresése a PS parancs eredményeiben, amely több oldali lehet.

Vegye figyelembe a leggyakoribb GRAS paramétereket:

  • -B: A kapott vonal kiadása előtt jelenítse meg a blokk számát;
  • -C: ki kell számolni a kívánt fragmentum bejegyzéseinek számát;
  • -I: Keresés regisztráció nélkül;
  • -N: kiad egy sorszámot a standard kimeneti eszköznek, amelyben a kívánt fragmentumot vagy sablont találtak;
  • - L: A kiadás eredményeként csak a megtalálható keresési fragmentummal rendelkező fájlok neve;
  • -S: Figyelmen kívül hagyja a hiba kimenetet;
  • -W: Keressen egy fragmentumot, amelyet mindkét oldalon terek vesznek körül;
  • -V: Fordított keresés, vagyis az összes olyan vonal megjelenítése, amely nem tartalmaz egy adott fragmentumot;
  • -E: A paraméter azt jelzi, hogy egy olyan rendszeres kifejezés, amelynek megvan a maga szintaxis, követi;
  • -AN: A kívánt fragmentum és az előző N vonalak következtetése;
  • -BN: Ugyanaz, de a vonalak a sablon után mennek.

Most van értelme az elméleti részről a gyakorlatra költözni.3

Példák a segédprogramok használatára

Ha tudod, mi a kombinatorika, akkor a keresési csapatok lehetséges kombinációinak valódi számát kell képviselni. Csak a leghasznosabb példákra korlátozzuk magunkat, amelyek hasznosak lehetnek a munka során.

Szöveg keresése a fájlokban

Legyen a rendszergazda jogai, és feladata, hogy egy adott felhasználót egy hatalmas jelszófájlban találjunk. Szükségünk lesz egy meglehetősen egyszerű csapatra, amely jelzi a fájlfeladási elérési utat:

Grep nameuser /etc /passwd

Ha a keresési eredmény pozitív, akkor a következő típusú sort kapunk:

NameUser: X: 1021: 1021: NameUser ,,,:/Home/felhasználó:/bin/bash

Ha egy szöveges töredéket kell keresnie anélkül, hogy figyelembe venné a nyilvántartási nyilvántartást, akkor a csapat így fog kinézni:

Gras -i "nameuser" /etc /passwd

Ebben az esetben a NameUSer felhasználó és annak "névmáska" név -felhasználója, valamint az összes többi lehetséges kombináció megtalálható.

Több sor befejezése

Szerezzünk be minden hibát az Xorg ablak naplójából.fatörzs. A feladatot bonyolítja az a tény, hogy az értékes információkat tartalmazó hibás karakterlánc követése követhet. Úgy döntenek, ha arra kényszerítjük a parancsot, hogy több sort jelenítsen meg a "PP" sorban sablonként:

Gras -a5 "pp"/var/log/xorg.0.fatörzs

Kapunk egy slort, amely sablont és 5 sort tartalmaz.

Gras -c3 "pp"/var/log/xorg.0.fatörzs

Vonalkimenet a szöveg töredékével és három sorával és utána és utána.

Rendszeres kifejezések használata a grep -ben

Ez az egyik legerősebb Linux eszköz, amely jelentősen kibővíti a keresési sablon kialakításának lehetőségét. A rendszeres kifejezéseknek megvan a saját szintaxisuk, meglehetősen bonyolult. Nem belemerülünk bele, korlátozva magunkat a lakókocsi használatának példájára. Mint már tudod, annak jelzésére, hogy a rendszeres kifejezést tovább használják, a -e paramétert használják.

Engedje meg az üzenetfájlba.2 Szeptemberben minden sort el kell érnünk:

Grep "^szeptember 09"

Az eredmény valami hasonló lesz:

09. szeptember 01:11:45 GS124 NTPD [2243]: Idő -visszaállítás +0.197579 S

09. szeptember 01:19:10 GS124 NTPD [2243]: Idő -visszaállítás +0.203484 S

A oszlopvonal végén található sablon kereséséhez a „$” szimbólumot használjuk:

Grep "kifejezés.$ "Üzenetek

Eredmény:

Június 17. 19:01:19 Cloneme kernel: Log Daemon kifejezés.

11. szeptember 06:30:54 Kloneme kernel: Log Daemon kifejezés.

És itt van egy példa egy szabályos kifejezés használatára, amely lehetővé teszi a nulla kivételével a számokat tartalmazó sorok keresését:

Grep "[1-9]"/var/log/xorg.1.fatörzs

Rekurzív keresés használata grep -ben

Ha ismeri a "rekurzió" kifejezést, akkor a Linux -ban ezt a technikát használják, hogy egy fragmentumot keressenek a katalógusban és annak alkatáiban található számos fájlban. A -r opció jelzi a rekurzió jelenlétét. Keressen egy "nevű nevű fragmentumot.Org "fájlokban, amelyek az /etc /apache1 mappa alkatáiban találhatók:

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

Az eredmény lehet ilyesmi:

/etc/apache1/vhosts.D/ Névemain.Org

Ha a fájlnév nem szükséges, akkor a -h: h: h: h: h: h: h: h:

Grep -h -r "nevű.Org "/etc/apache1/

Szavak keresése

Standard A QWE -fragmentum keresése az összes szó kibocsátásával ér véget, amelyben ez a fragmentum megtalálható: KBQWE, QWE123, AAFRQWE32. A keresés csak egy adott fragmentummal történő korlátozásához a -w paramétert kell használnia:

Gras -w "qwe" hol lehet megtalálni

Keressen két vagy több szót

Bonyolítsuk be a feladatot: meg kell találnunk az összes sort, ahol két szó található. A csapat ilyen lesz:

Gras -w "Word01 | word02" Hol talál

A vonalak száma

Ha a kiszámításra van szükség. Hányszor található a kívánt fragmentum a fájlban, a tervezést a -c paraméterrel használjuk:

Gras -c "'szöveg", ahol megtalálható

A -n paraméter segít megtudni, hogy a kívánt sablon melyik sorban található:

Gras -n "nuser" /etc /passwd

Fordított keresés a grep segítségével

Időnként a fájlok tartalmával a GREP segítségével történő keresés feladata nem a bejegyzés megtalálása, hanem az a sor, ahol ez a töredék hiányzik. A -V opció segít nekünk:

Gras -v "txt", ahol megtalálható

A fájlnév kimenete

Hagyja, hogy megtalálja az összes fájlt a megadott könyvtárban, amely tartalmazza a kívánt sablont. Ez megtehető a -l paraméter segítségével. Tehát az /etc mappában szereplő "másodlagos" karakterláncot tartalmazó fájlok kimenetének teljes parancsára a következőképpen fog kinézni:

Grep -l "másodlagos" /etc

Színkibocsátás a grep segítségével

Egy másik színnel való tartózkodás nagyszerű módja annak, hogy megjelenítse a kívánt bejegyzést, amely jelentősen csökkenti a szem terhelését, ha a műveletet gyakran végrehajtják. Kiderült, hogy a GRAS -nak lehetősége van a keresési eredmények kimenetére:

Grepor -színes "másodlagos" /etc

Figyelembe vesszük a keresési segédprogram használatának példáit a Linuxban.

Keressen az összes fájlt

Az aktuális katalógusban található fájlok listájának visszavonásához a következő formátumban használjuk a parancsot:

megtalálja .

Ha meg kell mutatnia a fájlok teljes nevét, akkor a parancsot használjuk

megtalálja . -Nyomtatás

Fájl kimenet egy adott katalógusban

A Fájlok kereséséhez a felhasználó által meghatározott mappában a parancsot használjuk

megtalálja ./stb

De hogyan lehet megtalálni az adott fragmentumot tartalmazó fájlokat az aktuális katalógusban:

megtalálja . -Név "*.GIF "

Ha a keresést a regiszter elszámolása nélkül kell elvégezni, a parancsot módosítani kell:

Ne vegye figyelembe a nyilvántartást, amikor név szerint keresi:

megtalálja . -Bennem "*.GIF "

A keresés mélységének korlátozása

Egy másik meglehetősen tipikus feladat az, hogy egy adott név szerint egy adott mappában keressen fájlokat:

megtalálja . -MaxDepth01 1 -Name "*.Html "

A sablon befordítása

Már úgy gondoltuk a csapat analógját, hogy olyan vonalakat keressünk, amelyek nem tartalmaznak egy adott fragmentumot. Ugyanígy megteheti azokat a fájlokat, amelyek nem felelnek meg egy adott sablonnak:

megtalálja . -nem -name "felhasználó*"

Keresés több kritérium szerint

Példát adunk a parancssorra a kereséshez két kritérium kereséséhez, a nem (kizárás) operátor segítségével:

megtalálja . -Név "felhasználó" -not -name "*.Html "

Ebben az esetben azok a fájlok, amelyek neve tartalmaz egy felhasználói fragmentumot, de amelyek kiterjesztése van, nem találhatók. Kivétel -operátor helyett használhatja a "/" vagy ":: logikai logikai

Megtalálja -Name "*.js "-o -name"*.SQL "

Ebben az esetben teljes fájlok listáját kapjuk, amelyekben mindkét kiterjesztés az aktuális könyvtárban található.

Keresés több katalógusban

Ha két katalógusban fájlokat kell találnunk, akkor csak jelölje meg a rést:

Megtalálja -típus f ./TEST01 ./Test02 -Name "*.SQL "

Keressen rejtett fájlokat

A Linuxban, mint a Windows esetében, vannak olyan rejtett fájlok, amelyek a keresés parancs használatakor nem jelennek meg speciális szimbólum nélkül. Ez a szimbólum Tilda, és az irányelv a következő megjelenéssel rendelkezik:

Keresse meg a ~ -name -t ".*""

Keressen fájlokat a Linux -ban engedélyekkel

Időnként szükség van a katalógus kiszűrésére egy bizonyos jogok maszkjához. Például, ha a 0661 attribútummal rendelkező fájlokat kell találnunk, akkor a parancsot használjuk:

megtalálja . -Perm 0661

A fájlok szűrésének feladata a "csak az olvasáshoz" attribútummal a következőképpen oldódik meg:

Keresése /etc /user -perm /u = r

De hogyan fog kinézni a végrehajtható fájlok keresése az ETC katalógusban:

Link /etc -perm /a = x

Fájlok keresése csoportok/felhasználók szerint

Az adminisztrátornak gyakran szembesülnie kell az adott felhasználó és/vagy csoport tulajdonságaira vonatkozó fájlok keresésével. A felhasználó keresése:

megtalálja . -Felhasználói szlavko

Felhasználói csoportokhoz egy másik paramétert használnak:

Keresse meg az /var -group devs -t

Keresés az utolsó módosítás dátuma szerint

A fájl dátumának látható formátuma a Linux OS -ben pontosan a módosításának dátuma (ugyanazt az alapelvet használják a Windows -ban). A lista kialakításához dátum szerint az MTIME opciót használjuk. Tegyük fel, hogy két hónappal ezelőtt megváltozott fájlokat kell találnunk:

Find /Home -mtime 60

A fájl attribútumai között van az utolsó felfedezés dátuma (változtatások nélkül). Az ilyen fájlokat a következő parancs jeleníti meg:

Keres /Home -60

Beállíthatja az időintervallumot is. A négy -két hónappal ezelőtt módosított fájlok kereséséhez az irányelvet használjuk:

Find /Home -mtime +60 -mtime -120

De hogyan lehet frissen megváltozott fájlokat találni (két órával ezelőtt):

Find /Home -Cmin 120

Fájlok keresése méret szerint

Gyanítsuk, hogy valaki lemezeket használ filmekhez? Fájlokat keresünk az 1. méretben.4GB:

Keresse meg a / -ize 1400m -t

Vagy használja a tartományt:

Keresse meg a / -ize +1400 m méretű -2800 m

Keressen üres fájlokat/katalógusokat

Igen, ne lepődj meg. A rendelés visszaállításának feladata a médián nem csak az Android OS -re jellemző. Linuxban egy ilyen irányelv segítségével döntenek:

Find /var -Type f -impty

Példa a talált fájlokkal rendelkező műveletekre

A Linuxban a Find Team rekurzív módon végezhet bizonyos műveleteket ezekkel a fájlokkal, az elvégzendő kereséssel. A fájlparancsok végrehajtásához az EXEC paramétert kell használnia. Tehát az LS parancs használatával kapcsolatos összes fájlra vonatkozó információk megjelenítésének irányelve így fog kinézni:

megtalálja . -Exec ls -l \;

De hogy egyszerűen törölheti az ideiglenes fájlokat egy adott maszkkal a könyvtárban /otthoni /hőmérsékleten:

Find /TMP -Type f -name "*.html ”-exec rm -f \;

Természetesen egy kezdő számára, egy hatalmas számú opcióval rendelkező parancssor használata kissé bonyolult módon tűnik, de Linuxban a dolgok sorrendjében van. És hogyan oldaná meg a Windowsban leírt problémákat? Ugyanaz. Ebben a tekintetben a Linux egyértelműen előtt áll.