Polecenia systemu Linux i umiejętności powłoki
grep: Przeszukiwanie Linuksa jak profesjonalista
grep przetrwa każde odświeżenie łańcucha narzędzi, ponieważ zadanie nigdy się nie zmienia: znajdź istotne linie w tekście, który rośnie szybciej, niż ktokolwiek go czyści. Jego prawdziwą siłą jest słownictwo flagowe, które zamienia wyszukiwanie w odpowiedź: otaczający kontekst, listy nazw plików, odwrócone dopasowania i kody wyjścia, na których może rozgałęziać się skrypt powłoki. Kiedy serwer zachowuje się niewłaściwie, dochodzenie rozpoczyna się od grep i częściej, niż ktokolwiek przyznaje, na tym się kończy.
Kluczowe punkty
- Szukaj rekurencyjnie w określonym celu: grep -rni 'fail2ban' /var/log --include='*.log' samodzielnie pomija pliki binarne i skompresowane archiwa; gołe grep -r over /var/log uczy tej lekcji w powolny sposób.
- Kontekst sprawia, że dopasowania są czytelne: -A 3 pokazuje linie po, -B 3 przed, -C 5 oba; -l wyświetla tylko nazwy plików, -c zlicza dopasowania na plik, a -L odwraca listę na brakujące elementy.
- Kody wyjścia są częścią kontraktu: 0 oznacza dopasowanie, 1 oznacza brak dopasowania, 2 oznacza błąd; skrypt uruchamiający grep -q i ignorujący to rozróżnienie traktuje sukces i ciszę identycznie.
- Lista plików łańcuchowych z wartością null: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; usuń parę Z i -0, a pierwsza nazwa pliku ze spacją przerywa potok.
- Użyj -E jako domyślnego poziomu wyrażenia regularnego dla czytelnej alternatywy i sięgnij po -P (obejścia, \d klasy) tylko wtedy, gdy zaakceptujesz, że jest to rozszerzenie GNU, którego grep BSD nie będzie obsługiwał.
- -F traktuje wzorzec jak dosłowny tekst: szybszy i odporny na wkradające się metaznaki wyrażeń regularnych ze zmiennych wklejonych prosto z biletu.
- --exclude-dir=.git i --exclude-dir=node_modules powstrzymują rekursywne wyszukiwania poza istniejącymi katalogami tylko po to, aby je spowolnić; Wyraźnie przeliteruj nazwy w skryptach, ponieważ rozwijanie nawiasów jest wygodą basha, a nie funkcją grep.
- Zachowaj rozdzielenie nawyków: --color=auto dla wygody interaktywnej, brak koloru w skryptach (sekwencje ucieczki uszkodzone logi) i -n (numery linii) włączone, aby następna osoba mogła znaleźć miejsce, które wkleiłeś.
Notatka z praktyki
Raz uruchomiłem grep -r na całej farmie kłód klienta o 2 w nocy i za moje kłopoty otrzymałem czterdzieści minut ciszy; dodanie --include='*.log' i -l zakończyło bilet na miejscu. Nawyki włączenia i kodu wyjścia są teraz wprowadzane przed wzorcem.
Częste pytania
Dlaczego grep czasami wypisuje „dopasowania plików binarnych” zamiast mojej linii?
Bajt NUL w pobliżu dopasowania powoduje, że GNU grep traktuje plik jako binarny; dodaj -a, aby wymusić tryb tekstowy lub -I, aby całkowicie pominąć pliki binarne, co jest właściwym ustawieniem domyślnym w przypadku katalogów z mieszanymi dziennikami.
Czy zamiast tego powinienem używać ripgrep?
ripgrep jest szybszy i domyślnie pomija pliki binarne i ukryte, ale grep istnieje na każdym urządzeniu, z którym kiedykolwiek będziesz korzystać z protokołu SSH, łącznie z obrazami ratunkowymi. Najpierw naucz się grep; sięgnij po rg, gdzie akurat jest zainstalowany.
Jak przeszukiwać obrócone, skompresowane logi?
zgrep przeszukuje pliki .gz w sposób przezroczysty, a zstdgrep uwzględnia przełączoną rotację nowszych kompresorów; wczorajsza igła zwykle znajduje się w jednym z nich, więc narzędzia liczą się jako podstawowa higiena.
Jak dopasować słowo, ale nie dłuższe słowo, które je zawiera?
Użyj -w do dopasowania całego słowa i -x do dopasowania pełnego wiersza; gdy wzorce wymagają części słów, klasy znaków takie jak [Ss]erver zapewniają precyzyjną kontrolę bez spłaszczania wielkości liter w innych miejscach.
Jak Kinetikatech pomaga w polecenia systemu linux i umiejętności powłoki
Tym zajmujemy się na co dzień: Polecenia i nawyki związane z tworzeniem skryptów, które decydują o tym, czy administrator obsługuje serwer, czy z nim walczy: przeszukuje, przekształca, przesyła i nadzoruje tekst i procesy za pomocą narzędzi znajdujących się w każdej podstawowej instalacji. Nasza usługa Bezpieczeństwo serwerów Linux i Zarządzanie serwerami obejmuje to kompleksowo: ocenę, wdrożenie, monitoring 24/7 oraz reakcję awaryjną w 30 minut.