NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
NL

Linux-opdrachten en shell-vaardigheden

grep: Linux doorzoeken als een professional

grep overleeft elke vernieuwing van de toolchain omdat de taak nooit verandert: vind de regels die er toe doen in tekst die sneller groeit dan wie dan ook opruimt. De echte kracht ervan is het vlagvocabulaire dat een zoekopdracht in een antwoord verandert: omringende context, lijsten met bestandsnamen, omgekeerde overeenkomsten en exitcodes waar een shellscript op kan vertakken. Wanneer een server zich misdraagt, begint het onderzoek met grep, en vaker dan iemand toegeeft, eindigt het daar ook.

Kernpunten

  1. Zoek recursief met het doel: grep -rni 'fail2ban' /var/log --include='*.log' slaat zelfstandig binaire bestanden en gecomprimeerde archieven over; een kale grep -r over /var/log leert die les op de langzame manier.
  2. Context maakt overeenkomsten leesbaar: -A 3 toont regels erna, -B 3 ervoor, -C 5 beide; -l geeft alleen bestandsnamen weer, -c telt overeenkomsten per bestand, en -L keert de lijst om naar wat er ontbreekt.
  3. Exitcodes maken deel uit van het contract: 0 betekent overeenkomend, 1 betekent geen overeenkomst, 2 betekent fout; een script dat grep -q uitvoert en dat onderscheid negeert, behandelt succes en stilte op dezelfde manier.
  4. Ketenbestandslijsten null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; laat de Z- en de -0-koppeling vallen en de eerste bestandsnaam met een spatie verbreekt de pijplijn.
  5. Gebruik -E als het standaard regex-niveau voor leesbare afwisseling, en gebruik alleen -P (lookarounds, \d-klassen) als je accepteert dat het een GNU-extensie is die BSD grep niet zal dragen.
  6. -F behandelt het patroon als letterlijke tekst: sneller en immuun voor regex-metatekens die binnensluipen via variabelen die rechtstreeks uit een ticket zijn geplakt.
  7. --exclude-dir=.git en --exclude-dir=node_modules houden recursieve zoekopdrachten uit mappen die bestaan ​​alleen maar om ze te vertragen; spel namen expliciet in scripts, aangezien uitbreiding van accolades een bash-gemak is, en geen grep-functie.
  8. Houd de gewoonten gescheiden: --color=auto voor interactief comfort, geen kleur in scripts (escape-reeksen corrumperen logs), en -n (regelnummers) aan zodat de volgende persoon de plek kan vinden die je hebt geplakt.

Notitie uit de praktijk

Ik heb ooit om twee uur 's nachts een kale grep -r door de hele houtboerderij van een klant laten lopen en kreeg veertig minuten stilte voor mijn moeite; door --include='*.log' en -l toe te voegen, werd het ticket ter plekke beëindigd. De include- en exit-code-gewoonten gaan nu in voordat het patroon dat doet.

Veelgestelde vragen

Waarom drukt grep soms 'binaire bestandsovereenkomsten' af in plaats van mijn regel?

Een NUL byte dichtbij de match zorgt ervoor dat GNU grep het bestand als binair behandelt; voeg -a toe om de tekstmodus te forceren of -I om binaire bestanden volledig over te slaan, wat de juiste standaard is voor gemengde logmappen.

Moet ik in plaats daarvan ripgrep gebruiken?

ripgrep is sneller en slaat standaard binaire en verborgen bestanden over, maar grep bestaat in elke box waar je ooit SSH naar toe gaat, inclusief reddingsafbeeldingen. Leer eerst grep; reik naar rg waar het toevallig is geïnstalleerd.

Hoe zoek ik in geroteerde, gecomprimeerde logboeken?

zgrep doorzoekt transparant .gz-bestanden en zstdgrep dekt de nieuwere rotatie van de compressoren waarnaar is overgeschakeld; De naald van gisteren zit meestal in een daarvan, dus het gereedschap telt als basishygiëne.

Hoe kan ik een woord matchen, maar niet een langer woord dat dit woord bevat?

Gebruik -w voor overeenkomsten op hele woorden en -x voor overeenkomsten op volledige regels; wanneer patronen delen van woorden nodig hebben, geven karakterklassen zoals [Ss]erver nauwkeurige controle zonder de hoofdletters overal elders af te vlakken.

Hoe Kinetikatech helpt bij linux-opdrachten en shell-vaardigheden

U hoeft geen expert te worden in linux-opdrachten en shell-vaardigheden: De opdrachten en scriptgewoonten die beslissen of een beheerder een server beheert of bestrijdt: tekst en processen zoeken, transformeren, overdragen en controleren met de tools die in elke basisinstallatie aanwezig zijn. Precies daarvoor bestaat Linux-serverbeveiliging en Serverbeheer: setup, hardening, monitoring en een engineer met bereikbaarheidsdienst, dag en nacht.

Neem contact op met een engineer

Serverprobleem? Gehakte site? Trage website?

Kritieke incidenten binnen 30 minuten beantwoord — 24 uur per dag, 7 dagen per week.

Noodsupport aanvragen support@kinetikatech.com