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

Comandi Linux e competenze della shell

grep: Searching Linux Like a Professional

grep sopravvive a ogni aggiornamento della toolchain perché il lavoro non cambia mai: trovare le righe che contano all'interno del testo che cresce più velocemente di quanto chiunque lo ripulisca. Il suo vero potere è il vocabolario delle bandiere che trasforma una ricerca in una risposta: contesto circostante, elenchi di nomi di file, corrispondenze invertite e codici di uscita su cui uno script di shell può diramarsi. Quando un server si comporta male, l'indagine inizia con grep e, più spesso di quanto si ammetta, finisce lì.

Punti chiave

  1. Cerca ricorsivamente con uno scopo: grep -rni 'fail2ban' /var/log --include='*.log' salta autonomamente i file binari e gli archivi compressi; un semplice grep -r over /var/log insegna quella lezione in modo lento.
  2. Il contesto rende leggibili le corrispondenze: -A 3 mostra le righe dopo, -B 3 prima, -C 5 entrambe; -l elenca solo i nomi dei file, -c conta le corrispondenze per file e -L inverte l'elenco in ciò che manca.
  3. I codici di uscita fanno parte del contratto: 0 significa corrispondenza, 1 significa nessuna corrispondenza, 2 significa errore; uno script che esegue grep -q e ignora tale distinzione tratta il successo e il silenzio in modo identico.
  4. I file a catena elencano il metodo null-safe: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; rilasciare l'abbinamento Z e -0 e il primo nome file con uno spazio interrompe la pipeline.
  5. Usa -E come livello regex predefinito per l'alternanza leggibile e raggiungi -P (lookaround, classi \d) solo quando accetti che si tratta di un'estensione GNU che BSD grep non porterà.
  6. -F tratta il modello come testo letterale: più veloce e immune ai metacaratteri regex che si insinuano dalle variabili incollate direttamente da un ticket.
  7. --exclude-dir=.git e --exclude-dir=node_modules mantengono le ricerche ricorsive fuori dalle directory esistenti solo per rallentarle; scrivere i nomi esplicitamente negli script poiché l'espansione delle parentesi graffe è una comodità di bash, non una funzionalità di grep.
  8. Mantieni le abitudini separate: --color=auto per comodità interattiva, nessun colore negli script (sequenze di escape log corrotti) e -n (numeri di riga) in modo che la persona successiva possa trovare il punto che hai incollato.

Nota dal campo

Una volta ho eseguito un semplice grep -r sull'intera fattoria di tronchi di un cliente alle 2 del mattino e ho ottenuto quaranta minuti di silenzio per il mio disturbo; aggiungendo --include='*.log' e -l ho terminato il ticket immediatamente. Le abitudini di inclusione e codice di uscita ora entrano prima del modello.

Domande frequenti

Perché grep a volte stampa "corrispondenze di file binari" invece della mia riga?

Un byte NUL vicino alla corrispondenza fa sì che GNU grep tratti il ​​file come binario; aggiungi -a per forzare la modalità testo o -I per saltare completamente i binari, che è l'impostazione predefinita corretta su directory di log miste.

Dovrei invece usare ripgrep?

ripgrep è più veloce e salta i file binari e nascosti per impostazione predefinita, ma grep esiste su ogni box in cui entrerai tramite SSH, comprese le immagini di salvataggio. Impara prima grep; raggiungere rg dove sembra essere installato.

Come posso cercare registri ruotati e compressi?

zgrep cerca i file .gz in modo trasparente e zstdgrep copre la rotazione dei compressori più recenti a cui è passata; l'ago di ieri di solito si trova all'interno di uno di questi, quindi gli strumenti contano come igiene di base.

Come faccio a far corrispondere una parola ma non una parola più lunga che la contiene?

Usa -w per la corrispondenza di parole intere e -x per corrispondenze di righe intere; quando i modelli necessitano di parti di parole, le classi di caratteri come [Ss]erver danno un controllo preciso senza appiattire le maiuscole ovunque.

Come Kinetikatech aiuta con comandi linux e competenze della shell

Lo abbiamo già risolto centinaia di volte: I comandi e le abitudini di scripting che decidono se un amministratore gestisce un server o lo combatte: cerca, trasforma, trasferisci e supervisiona testo e processi con gli strumenti presenti in ogni installazione di base. Con Sicurezza server Linux e Gestione server, ottiene il ciclo completo: valutiamo, implementiamo, vigiliamo 24 ore su 24 e rispondiamo in 30 minuti quando conta.

Parli con un ingegnere

Problemi al server? Sito violato? Sito lento?

Incidenti critici gestiti in 30 minuti — 24 ore su 24, 7 giorni su 7.

Richiedi supporto urgente support@kinetikatech.com