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

Commandes Linux et compétences Shell

grep : rechercher Linux comme un professionnel

grep survit à chaque actualisation de la chaîne d'outils car le travail ne change jamais : trouvez les lignes importantes dans un texte qui se développe plus vite que quiconque ne le nettoie. Son véritable pouvoir réside dans le vocabulaire des indicateurs qui transforme une recherche en réponse : contexte environnant, listes de noms de fichiers, correspondances inversées et codes de sortie sur lesquels un script shell peut créer des branchements. Lorsqu'un serveur se comporte mal, l'enquête commence par grep, et plus souvent qu'on ne l'admet, elle s'arrête là aussi.

Points clés

  1. Recherche récursive avec un objectif précis : grep -rni 'fail2ban' /var/log --include='*.log' ignore les binaires et les archives compressées de lui-même ; un simple grep -r sur /var/log enseigne cette leçon lentement.
  2. Le contexte rend les correspondances lisibles : -A 3 affiche les lignes après, -B 3 avant, -C 5 les deux ; -l répertorie uniquement les noms de fichiers, -c compte les correspondances par fichier et -L inverse la liste en ce qui manque.
  3. Les codes de sortie font partie du contrat : 0 signifie correspondant, 1 signifie aucune correspondance, 2 signifie erreur ; un script qui exécute grep -q et ignore cette distinction traite le succès et le silence de la même manière.
  4. Le fichier de chaîne répertorie en toute sécurité : grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; supprimez l'appariement Z et -0 et le premier nom de fichier avec un espace interrompt le pipeline.
  5. Utilisez -E comme niveau d'expression régulière par défaut pour une alternance lisible, et accédez à -P (lookarounds, classes \d) uniquement lorsque vous acceptez qu'il s'agit d'une extension GNU que BSD grep ne portera pas.
  6. -F traite le modèle comme du texte littéral : plus rapide et insensible aux métacaractères regex se faufilant à partir de variables collées directement à partir d'un ticket.
  7. --exclude-dir=.git et --exclude-dir=node_modules conservent les recherches récursives en dehors des répertoires qui n'existent que pour les ralentir ; épelez les noms explicitement dans les scripts, car l'expansion des accolades est une commodité de bash, pas une fonctionnalité grep.
  8. Gardez les habitudes séparées : --color=auto pour un confort interactif, pas de couleur dans les scripts (les séquences d'échappement corrompent les journaux) et -n (numéros de ligne) pour que la personne suivante puisse trouver l'endroit que vous avez collé.

Note de terrain

Un jour, j'ai exécuté un simple grep -r sur l'ensemble de la ferme en rondins d'un client à 2 heures du matin et j'ai obtenu quarante minutes de silence pour mon problème ; l'ajout de --include='*.log' et -l a mis fin au ticket sur-le-champ. Les habitudes de code d'inclusion et de sortie entrent désormais avant le modèle.

Questions fréquentes

Pourquoi grep imprime-t-il parfois des « correspondances de fichiers binaires » au lieu de ma ligne ?

Un octet NUL proche de la correspondance oblige GNU grep à traiter le fichier comme binaire ; ajoutez -a pour forcer le mode texte ou -I pour ignorer complètement les binaires, ce qui est la bonne valeur par défaut sur les répertoires de journaux mixtes.

Dois-je utiliser ripgrep à la place ?

ripgrep est plus rapide et ignore les fichiers binaires et cachés par défaut, mais grep existe sur chaque boîte dans laquelle vous vous connecterez en SSH, y compris les images de secours. Apprenez d'abord grep ; recherchez rg où il est installé.

Comment rechercher des journaux pivotés et compressés ?

zgrep recherche les fichiers .gz de manière transparente et zstdgrep couvre la rotation des compresseurs les plus récents ; l'aiguille d'hier se trouve généralement à l'intérieur de l'une d'entre elles, les outils comptent donc comme une hygiène de base.

Comment faire correspondre un mot mais pas un mot plus long le contenant ?

Utilisez -w pour la correspondance de mots entiers et -x pour les correspondances de lignes complètes ; lorsque les modèles nécessitent des parties de mots, les classes de caractères comme [Ss]erver donnent un contrôle précis sans aplatir la casse partout ailleurs.

Comment Kinetikatech vous aide avec commandes linux et compétences shell

Vous ne devriez pas avoir à devenir expert en commandes linux et compétences shell : Les commandes et habitudes de script qui décident si un administrateur exploite un serveur ou le combat : rechercher, transformer, transférer et superviser le texte et les processus avec les outils présents dans chaque installation de base. C'est exactement à cela que sert Sécurité des serveurs Linux et Gestion de serveurs : installation, durcissement, supervision et un ingénieur d'astreinte jour et nuit.

Parler à un ingénieur

Problème de serveur ? Site piraté ? Site lent ?

Incidents critiques pris en charge en 30 minutes — 24h/24, 7j/7.

Demander une assistance urgente support@kinetikatech.com