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

Εντολές Linux

grep: Αναζήτηση στο Linux σαν επαγγελματίας

Το grep επιβιώνει από κάθε ανανέωση της αλυσίδας εργαλείων, επειδή η δουλειά δεν αλλάζει ποτέ: βρείτε τις γραμμές που έχουν σημασία μέσα στο κείμενο που μεγαλώνει πιο γρήγορα από ό,τι οποιοσδήποτε το καθαρίζει. Η πραγματική του δύναμη είναι το λεξιλόγιο σημαιών που μετατρέπει μια αναζήτηση σε απάντηση: περιβάλλοντα περιβάλλον, λίστες ονομάτων αρχείων, ανεστραμμένες αντιστοιχίσεις και κωδικοί εξόδου στους οποίους μπορεί να διακλαδωθεί ένα σενάριο φλοιού. Όταν ένας διακομιστής συμπεριφέρεται άσχημα, η έρευνα ξεκινά με το grep και πιο συχνά από ό,τι παραδέχεται ο καθένας, τελειώνει και εκεί.

Βασικά σημεία

  • Αναδρομική αναζήτηση με σκοπό: grep -rni 'fail2ban' /var/log --include='*.log' παρακάμπτει δυαδικά και συμπιεσμένα αρχεία από μόνο του. Ένα γυμνό grep -r πάνω από το /var/log διδάσκει αυτό το μάθημα με αργό τρόπο.
  • Το πλαίσιο κάνει τους αγώνες ευανάγνωστους: -A 3 δείχνει γραμμές μετά, -B 3 πριν, -C 5 και τα δύο. -l παραθέτει μόνο ονόματα αρχείων, -c μετράει αντιστοιχίσεις ανά αρχείο και -L αντιστρέφει τη λίστα σε αυτό που λείπει.
  • Οι κωδικοί εξόδου αποτελούν μέρος της σύμβασης: 0 σημαίνει αντιστοίχιση, 1 σημαίνει μη αντιστοίχιση, 2 σημαίνει σφάλμα. ένα σενάριο που εκτελεί το grep -q και αγνοεί ότι η διάκριση αντιμετωπίζει την επιτυχία και τη σιωπή με τον ίδιο τρόπο.
  • Τα αρχεία αλυσίδας λίστες null-safely: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; ρίξτε το ζεύγος Z και -0 και το πρώτο όνομα αρχείου με κενό διακόπτει τη γραμμή.
  • Χρησιμοποιήστε το -E ως το προεπιλεγμένο επίπεδο regex για αναγνώσιμη εναλλαγή και φτάστε στο -P (lookarounds, \d κλάσεις) μόνο όταν αποδεχτείτε ότι είναι επέκταση GNU Το grep BSD δεν θα μεταφέρει.
  • -Το F αντιμετωπίζει το μοτίβο ως κυριολεκτικό κείμενο: πιο γρήγορο και άνοστο σε μεταχαρακτήρες regex που εισχωρούν κρυφά από μεταβλητές που έχουν επικολληθεί απευθείας από ένα εισιτήριο.
  • Τα --exclude-dir=.git και --exclude-dir=node_modules διατηρούν τις αναδρομικές αναζητήσεις εκτός καταλόγων που υπάρχουν μόνο για να τους επιβραδύνουν. τα ονόματα ορθογραφίας ξεχωρίζουν ρητά στα σενάρια, καθώς η επέκταση αγκύλων είναι μια ευκολία bash, όχι μια δυνατότητα grep.
  • Διατηρήστε τις συνήθειες διαχωρισμένες: --color=auto για διαδραστική άνεση, χωρίς χρώμα στα σενάρια (ακολουθίες διαφυγής κατεστραμμένα αρχεία καταγραφής) και -n (αριθμοί γραμμών) για να μπορεί το επόμενο άτομο να βρει το σημείο που επικολλήσατε.

Σημείωση από το πεδίο

Κάποτε έτρεξα ένα γυμνό grep -r σε ολόκληρο το αγρόκτημα κορμών ενός πελάτη στις 2 π.μ. και έκανα σαράντα λεπτά σιωπής για τον κόπο μου. προσθέτοντας --include='*.log' και -l τελείωσε το εισιτήριο επί τόπου. Οι συνήθειες συμπερίληψης και κωδικού εξόδου μπαίνουν τώρα πριν το μοτίβο.

Συχνές ερωτήσεις

Γιατί το grep μερικές φορές εκτυπώνει «ταιριάζουν δυαδικά αρχεία» αντί για τη γραμμή μου;

Ένα byte NUL κοντά στην αντιστοίχιση κάνει το GNU grep να αντιμετωπίζει το αρχείο ως δυαδικό. προσθέστε -a για να αναγκάσετε τη λειτουργία κειμένου ή -I για να παραλείψετε εντελώς τα δυαδικά αρχεία, η οποία είναι η σωστή προεπιλογή στους καταλόγους μικτών αρχείων καταγραφής.

Πρέπει να χρησιμοποιήσω το ripgrep;

Το ripgrep είναι πιο γρήγορο και παραλείπει δυαδικά και κρυφά αρχεία από προεπιλογή, αλλά το grep υπάρχει σε κάθε πλαίσιο στο οποίο θα μπείτε ποτέ SSH, συμπεριλαμβανομένων των εικόνων διάσωσης. Μάθετε πρώτα το grep. φτάστε στο rg όπου τυχαίνει να είναι εγκατεστημένο.

Πώς μπορώ να αναζητήσω περιστρεφόμενα, συμπιεσμένα αρχεία καταγραφής;

Το zgrep αναζητά τα αρχεία .gz με διαφάνεια και το zstdgrep καλύπτει την περιστροφή των νεότερων συμπιεστών που έχουν αλλάξει. Η χθεσινή βελόνα συνήθως ζει μέσα σε μία από αυτές, επομένως τα εργαλεία θεωρούνται ως βασική υγιεινή.

Πώς αντιστοιχίζω μια λέξη αλλά όχι μια μεγαλύτερη λέξη που την περιέχει;

Χρησιμοποιήστε -w για αντιστοίχιση ολόκληρης λέξης και -x για αντιστοιχίσεις πλήρους γραμμής. Όταν τα μοτίβα χρειάζονται μέρη λέξεων, οι κατηγορίες χαρακτήρων όπως το [Ss]erver παρέχουν ακριβή έλεγχο χωρίς να ισοπεδώνουν τα πεζά οπουδήποτε αλλού.

Πώς βοηθάει η Kinetikatech στα εντολές linux

Η πρότασή μας είναι απλή: Οι εντολές και οι συνήθειες δέσμης ενεργειών που αποφασίζουν εάν ένας διαχειριστής χειρίζεται έναν διακομιστή ή τον καταπολεμά: αναζήτηση, μετατροπή, μεταφορά και επίβλεψη κειμένου και διεργασιών με τα εργαλεία που υπάρχουν σε κάθε βασική εγκατάσταση. Αναλάβτε την υπηρεσία μας Ασφάλεια διακομιστών Linux and Διαχείριση διακομιστών και έχει αξιολογηθεί σωστά, εφαρμοστεί καθαρά και παρακολουθείται όλο το 24ωρο.

Μιλήστε με έναν μηχανικό

Πρόβλημα διακομιστή; Εισβολή στον ιστότοπο; Αργός ιστότοπος;

Απάντηση σε κρίσιμα ζητήματα εντός 30 λεπτών — 24 ώρες την ημέρα, 7 ημέρες την εβδομάδα.

Ζήτηστε επείγουσα υποστήριξη support@kinetikatech.com