Linux-komennot ja komentotulkkitaidot
grep: hae Linuxista kuin ammattilainen
grep selviää jokaisesta työkaluketjun päivityksestä, koska työ ei muutu koskaan: löydä tärkeät rivit tekstistä, joka kasvaa nopeammin kuin kukaan sen puhdistaa. Sen todellinen voima on lippusanasto, joka muuttaa haun vastaukseksi: ympäröivä konteksti, tiedostonimiluettelot, käänteiset osumat ja poistumiskoodit, joihin komentotulkkikomentosarja voi haarautua. Kun palvelin toimii väärin, tutkinta alkaa grepillä, ja useammin kuin kukaan myöntää, se myös päättyy siihen.
Keskeiset kohdat
- Hae rekursiivisesti tarkoituksella: grep -rni 'fail2ban' /var/log --include='*.log' ohittaa binaarit ja pakatut arkistot yksinään; paljas grep -r yli /var/log opettaa tämän oppitunnin hitaasti.
- Konteksti tekee vastaavuuksista luettavia: -A 3 näyttää rivit jälkeen, -B 3 ennen, -C 5 molemmat; -l luettelee vain tiedostonimet, -c laskee osumat tiedostoa kohden ja -L kääntää luettelon puuttuvaksi.
- Poistumiskoodit ovat osa sopimusta: 0 tarkoittaa täsmäämistä, 1 tarkoittaa, että ei täsmää, 2 tarkoittaa virhettä; komentosarja, joka suorittaa grep -q ja jättää tämän eron huomioimatta, kohtelee menestystä ja hiljaisuutta samalla tavalla.
- Ketjutiedostoluettelot null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs-0-rls-l; pudota Z- ja -0-pariliitos ja ensimmäinen tiedostonimi välilyönnillä katkaisee liukuhihnan.
- Käytä -E oletusarvoisena regex-tasona luettavalle vuorottelulle ja käytä -P:tä (lookarounds, \d classes) vain, kun hyväksyt sen olevan GNU-laajennus BSD:n grep ei toimi.
- -F käsittelee kuviota kirjaimellisena tekstinä: nopeampi ja immuuni regex-metahahmoille, jotka hiipivät sisään muuttujista, jotka on liitetty suoraan lipusta.
- --exclude-dir=.git ja --exclude-dir=node_modules pitävät rekursiiviset haut poissa hakemistoista, jotka ovat olemassa vain niiden hidastamiseksi; kirjoita nimet selvästi skripteissä, koska aaltosulkeiden laajennus on bash-mukavuus, ei grep-ominaisuus.
- Pidä tavat erillään: --color=auto interaktiivista mukavuutta varten, ei väriä komentosarjoissa (poistosekvenssit vahingoittavat lokeja) ja -n (rivinumerot) päällä, jotta seuraava henkilö löytää liittämäsi kohdan.
Kenttämuistiinpano
Juoksin kerran paljaalla grep -r:llä asiakkaan koko hirsitilalla kello 2 yöllä ja sain neljäkymmentä minuuttia hiljaisuutta vaikeuksieni vuoksi; lisäys --include='*.log' ja -l päätti lipun paikan päällä. Sisällytä- ja poistumiskooditottumukset tulevat nyt sisään ennen mallia.
Usein kysytyt kysymykset
Miksi grep joskus tulostaa "binääritiedostoosumat" rivini sijaan?
NUL-tavu lähellä vastaavuutta saa GNU grepin käsittelemään tiedostoa binäärinä; lisää -a pakottaaksesi tekstitilan tai -I ohittaaksesi binaarit kokonaan, mikä on oikea oletus sekalokihakemistoissa.
Pitäisikö minun käyttää sen sijaan ripgrepiä?
ripgrep on nopeampi ja ohittaa oletuksena binaari- ja piilotiedostot, mutta grep on olemassa jokaisessa laatikossa, johon SSH tulee, mukaan lukien pelastuskuvat. Opi grep ensin; tavoita rg, johon se sattuu olemaan asennettuna.
Miten haen kierrettyjä, pakattuja lokeja?
zgrep etsii .gz-tiedostoja läpinäkyvästi ja zstdgrep kattaa uudemmat kompressorit, joihin on vaihdettu; eilisen neula asuu yleensä jonkin sellaisen sisällä, joten työkalut lasketaan perushygieniaan.
Kuinka yhdistän sanan, mutta en sen sisältävää pidempää sanaa?
Käytä -w:tä koko sanan vastaavuuteen ja -x koko rivin vastaavuuksiin; Kun kuviot tarvitsevat osia sanoista, merkkiluokat, kuten [Ss]erver, antavat tarkan ohjauksen litistämättä kirjaimia kaikkialla muualla.
Näin Kinetikatech auttaa: linux-komennot ja komentotulkkitaidot
Sinun ei tarvitse tulla linux-komennot ja komentotulkkitaidot-asiantuntijaksi: Komennot ja komentosarjatavat, jotka ratkaisevat, käyttääkö järjestelmänvalvoja palvelinta vai taisteleeko sitä vastaan: etsi, muunna, siirrä ja valvo tekstiä ja prosesseja työkaluilla, jotka ovat jokaisessa perusasennuksessa. Juuri sitä varten Linux-palvelinten tietoturva ja Palvelinten ylläpito on olemassa: käyttöönotto, koventaminen, valvonta ja päivystäjä yötä päivää.