Polecenie grep w systemie Linux to potężne narzędzie do wyszukiwania tekstu w plikach, szczególnie cenione przez administratorów i programistów za szybkość, elastyczność i wsparcie dla wyrażeń regularnych. Poniżej znajdziesz rozbudowany poradnik krok po kroku – od podstawowej składni i typowych opcji, po zaawansowane zastosowania i praktyczne przykłady.
1. Podstawy użycia grep
Składnia –
grep [opcje] wzorzec [plik...]
- wzorzec – tekst albo wyrażenie regularne, które chcesz znaleźć.
- plik – ścieżka do pliku lub plików, w których chcesz szukać.
- opcje – dodatkowe parametry modyfikujące zachowanie grep.
Przykład podstawowy –
grep "Błąd" aplikacja.log
Wyświetli wszystkie linie z pliku aplikacja.log
zawierające słowo „Błąd”.
2. Najczęściej używane opcje grep
Opcja | Opis działania |
---|---|
-i |
Wyszukiwanie bez uwzględniania wielkości liter |
-v |
Wyświetl linie niepasujące do wzorca |
-r / -R |
Rekurencyjne przeszukiwanie katalogów |
-l |
Wyświetl tylko nazwę pliku z dopasowaniem |
-n |
Dodaj numery linii do wyników |
-c |
Zlicz liczbę pasujących linii |
-w |
Dopasuj tylko całe słowa (nie fragmenty) |
--color |
Podświetl pasujący tekst w wynikach |
-A NUM |
Wyświetl NUM linii po dopasowaniu |
-B NUM |
Wyświetl NUM linii przed dopasowaniem |
-C NUM |
Wyświetl NUM linii przed i po dopasowaniu (kontekst) |
3. Instrukcje krok po kroku z przykładami
3.1. Szukanie w jednym i wielu plikach
grep "user" dane.txt
Wyświetli linie z „user” w pliku dane.txt
.
grep "user" dane1.txt dane2.txt
Szuka wzorca w obu plikach naraz.
3.2. Ignorowanie wielkości liter
grep -i "error" aplikacja.log
Znajdzie „Error”, „ERROR”, „error” itd..
3.3. Szukanie „odwrotnie” (linia nie zawiera wzorca)
grep -v "success" aplikacja.log
Wyświetli linie, w których nie występuje słowo „success”.
3.4. Rekurencyjne przeszukiwanie katalogu
grep -r "hasło" /etc
Przeszukuje cały katalog /etc
i podkatalogi.
3.5. Wyświetlanie nazw plików z dopasowaniem
grep -l "config" *.conf
Wyświetli tylko nazwy plików, w których znajduje się „config”.
3.6. Dodawanie numerów linii
grep -n "root" /etc/passwd
Każda linia z dopasowaniem będzie miała numer.
3.7. Podświetlenie pasującego tekstu
grep --color "login" autoryzacja.log
Wyniki będą czytelniejsze dzięki kolorowi.
4. Wyrażenia regularne w grep
grep wspiera wyrażenia regularne, umożliwiając zaawansowane wyszukiwanie.
Przykład – linia zaczynająca się od „abc”:
grep "^abc" dane.txt
Przykład – linia kończąca się na „xyz”:
grep "xyz$" dane.txt
Przykład – linia z cyfrą:
grep "[0-9]" dane.txt
Aby używać rozszerzonych wyrażeń regularnych, należy wywołać polecenie jako grep -E
lub egrep
.
5. Zastosowania praktyczne
5.1. Analiza logów
- Szukanie błędów:
grep -i "error\|warning\|critical" /var/log/syslog
- Szukanie nieudanych logowań:
grep "Failed password" /var/log/auth.log
5.2. Przeszukiwanie procesów i usług
- Sprawdzenie działających usług:
systemctl status sshd | grep "active"
- Szukanie procesu po nazwie:
ps aux | grep "nginx"
6. Efektywność, aliasy i automatyzacja
Aby przyspieszyć codzienną pracę, dodaj aliasy do pliku .bashrc
:
alias greplog='grep -i "error\|warning\|critical" /var/log/syslog'
Teraz wpisanie greplog
uruchomi gotowe polecenie.
7. Podsumowanie najważniejszych wskazówek
- Stosuj grep nie tylko do plików, ale także do przetwarzania wyników innych poleceń (np. z pipe:
ls | grep "plik"
). - Poznaj i korzystaj z wyrażeń regularnych – to podstawa zaawansowanej pracy z grep.
- Używaj opcji rekurencji (
-r
), aby przeszukiwać foldery. - Wyświetlaj kontekst wyników (
-A
,-B
,-C
), by łatwiej analizować logi czy kod. - Podświetlaj wyniki z opcją
--color
dla czytelności.
Polecenie grep należy do najbardziej uniwersalnych narzędzi Linuksa – z jego pomocą szybko wyłuskasz potrzebne dane z tekstu i usprawnisz codzienną pracę z terminalem.