W świecie terminala, gdzie każdy znak ma znaczenie, kryje się niesamowita moc – magia jednego wiersza, który potrafi rozwiązać problemy, usprawnić pracę i nadać nowy wymiar codziennym zadaniom. Dziś zapraszam Cię do podróży przez zbiór nieoczywistych poleceń oraz prostych skryptów, które działają cuda. Poniżej znajdziesz 15 starannie dobranych jednolinijkowych rozwiązań, każde z nich opatrzone dokładnym opisem składni i zastosowań. Wyruszmy więc w podróż, gdzie terminal staje się narzędziem sztuki, a każdy znak – nutą w symfonii systemowych operacji.

1. Wyszukiwanie błędów w logach systemowych

				
					grep -i "error" /var/log/syslog

				
			

Opis:

  • grep – przeszukuje plik pod kątem wzorca.
  • -i – opcja ignorująca wielkość liter, dzięki czemu słowo „error” zostanie wykryte niezależnie od formy.
  • “error” – szukany wzorzec, czyli komunikaty błędów.
  • /var/log/syslog – typowa lokalizacja systemowych logów.

Zastosowanie: Doskonałe narzędzie do szybkiej analizy logów systemowych w poszukiwaniu komunikatów o błędach.

2. Filtrowanie logów jądra systemu

				
					grep "kernel" /var/log/syslog | awk '{print $1, $2, $3, $5}'

				
			

Opis:

  • grep “kernel” /var/log/syslog – filtruje logi, wyświetlając tylko linie zawierające słowo „kernel”.
  • | – operator potoku, który przekazuje wynik do kolejnego narzędzia.
  • awk ‘{print $1, $2, $3, $5}’ – przetwarza wyjście, wybierając konkretne kolumny (data, czas i wybrany komunikat).

Zastosowanie: Idealne rozwiązanie, gdy chcesz szybko wyodrębnić istotne informacje dotyczące jądra systemu z logów.

3. Automatyczna modyfikacja konfiguracji plików

				
					sed -i 's/old_value/new_value/g' /etc/example.conf

				
			

Opis:

  • sed – strumieniowy edytor tekstu.
  • -i – modyfikuje plik bezpośrednio, dokonując zmian w miejscu.
  • ‘s/old_value/new_value/g’ – polecenie substytucji, które zamienia wszystkie wystąpienia old_value na new_value.
  • /etc/example.conf – ścieżka do pliku konfiguracyjnego.

Zastosowanie: Ułatwia automatyczną edycję plików konfiguracyjnych, eliminując potrzebę ręcznego wprowadzania zmian.

4. Monitorowanie procesów systemowych

				
					ps aux | grep 'process_name'

				
			

Opis:

  • ps aux – wyświetla szczegółowy stan wszystkich procesów.
  • grep ‘process_name’ – filtruje wyniki, pokazując tylko te linie, w których występuje nazwa procesu.

Zastosowanie: Szybkie sprawdzenie, czy dany proces działa oraz uzyskanie informacji o jego statusie.

5. Kopiowanie plików z dołączoną datą i godziną

				
					cp /path/to/source.txt /path/to/backup/$(basename source.txt)_$(date +'%Y%m%d_%H%M%S').txt

				
			

Opis:

  • cp – polecenie kopiowania plików.
  • /path/to/source.txt – ścieżka źródłowa pliku.
  • /path/to/backup/ – docelowy katalog kopii.
  • $(basename source.txt) – wyodrębnia nazwę pliku bez ścieżki.
  • $(date +’%Y%m%d_%H%M%S’) – generuje bieżącą datę i godzinę w formacie RRRRMMDD_GGMMS.SS, co gwarantuje unikalność nazwy.
    .txt – rozszerzenie pliku.

Zastosowanie: Niezastąpione narzędzie do tworzenia kopii zapasowych, gdzie każdy backup jest opatrzony znacznikiem czasu.

6. Podgląd na żywo zmian w logach systemowych

				
					tail -f /var/log/syslog

				
			

Opis:

  • tail -f – wyświetla ostatnie linie pliku i dynamicznie aktualizuje ekran, gdy plik się zmienia.
  • /var/log/syslog – monitorowany plik logów.

Zastosowanie: Idealne rozwiązanie do monitorowania bieżących zdarzeń systemowych w czasie rzeczywistym.

7. Zliczanie wystąpień błędów w logach

				
					awk '/error/ {count++} END {print "Liczba błędów: ", count}' /var/log/syslog

				
			

Opis:

  • awk ‘/error/ {count++}’ – dla każdej linii zawierającej słowo „error” zwiększa licznik.
  • END {print “Liczba błędów: “, count} – po przetworzeniu wszystkich linii wyświetla wynik.
  • /var/log/syslog – plik logów, na którym operujemy.

Zastosowanie: Umożliwia szybkie zorientowanie się, jak często występują błędy w systemie.

8. Ranking najczęściej występujących komunikatów

				
					sort /var/log/syslog | uniq -c | sort -nr | head -n 10

				
			

Opis:

  • sort /var/log/syslog – sortuje zawartość pliku, ułatwiając grupowanie identycznych linii.
  • uniq -c – zlicza wystąpienia każdej unikalnej linii.
  • sort -nr – sortuje wyniki numerycznie w kolejności malejącej.
  • head -n 10 – wyświetla 10 najczęstszych komunikatów.

Zastosowanie: Doskonałe narzędzie do identyfikacji najczęściej występujących zdarzeń w logach systemowych.

9. Ekstrakcja wybranych kolumn z logów

				
					cut -d' ' -f1-3 /var/log/syslog | head

				
			

Opis:

  • cut -d’ ‘ -f1-3 – dzieli każdą linię logu według spacji i wybiera pierwsze trzy kolumny (np. datę i czas).
  • | head – wyświetla pierwszych kilka linii wyniku.

Zastosowanie: Umożliwia szybkie podsumowanie logów poprzez wyodrębnienie kluczowych informacji.

10. Liczenie wszystkich linii w logu

				
					wc -l /var/log/syslog

				
			

Opis:

  • wc -l – narzędzie liczące liczbę linii w pliku.
  • /var/log/syslog – plik, którego liczba linii ma być zliczona.

Zastosowanie: Pozwala na uzyskanie ogólnego obrazu wielkości logów systemowych w prosty i szybki sposób.

11. Precyzyjne formatowanie daty i czasu

				
					date +"%Y-%m-%d %H:%M:%S"

				
			

Opis:

  • date – polecenie wyświetlające aktualną datę i czas.
  • +”%Y-%m-%d %H:%M:%S” – opcja formatująca wynik na przykład: 2025-03-17 15:45:30.

Zastosowanie: Używane zarówno w skryptach do logowania operacji, jak i przy generowaniu unikalnych nazw plików czy raportów.

12. Lista aktywnych połączeń sieciowych

				
					netstat -tulnp

				
			

Opis:

  • netstat – narzędzie do monitorowania statystyk sieciowych.
  • -t – pokazuje połączenia TCP.
  • -u – pokazuje połączenia UDP.
  • -l – filtruje wyłącznie nasłuchujące porty.
  • -n – wyłącza tłumaczenie numerów portów na nazwy usług.
  • -p – wyświetla identyfikatory procesów przypisanych do połączeń.

Zastosowanie: Świetne do diagnozowania problemów sieciowych i monitorowania otwartych portów na serwerze.

13. Znajdowanie ostatnio modyfikowanych plików w katalogu logów

				
					find /var/log -type f -mtime -1

				
			

Opis:

  • find /var/log – rozpoczyna wyszukiwanie w katalogu z logami.
  • -type f – ogranicza wyniki do plików.
  • -mtime -1 – wyszukuje pliki modyfikowane w ciągu ostatniego dnia.

Zastosowanie: Umożliwia szybkie zlokalizowanie najnowszych wpisów lub plików, które mogły ulec zmianie, co jest nieocenione przy analizie bieżących problemów systemowych.

14. Przeszukiwanie wszystkich plików logów pod kątem nieudanych prób

				
					find /var/log -type f | xargs grep -i "failed"

				
			

Opis:

  • find /var/log -type f – wyszukuje wszystkie pliki w katalogu logów.
  • | xargs grep -i “failed” – przekazuje listę plików do polecenia grep, które przeszukuje je w poszukiwaniu wzorca „failed” (bez względu na wielkość liter).

Zastosowanie: Pomaga w szybkiej detekcji nieudanych prób logowania czy innych operacji, co może być sygnałem potencjalnych problemów bezpieczeństwa.

15. Monitorowanie logów z natychmiastowym filtrowaniem błędów

				
					tail -f /var/log/syslog | grep --line-buffered "error"

				
			

Opis:

  • tail -f /var/log/syslog – podąża za zmianami w pliku logów w czasie rzeczywistym.
  • | grep –line-buffered “error” – filtruje wyniki, wyświetlając na bieżąco tylko te linie, które zawierają słowo „error”. Opcja –line-buffered gwarantuje, że wynik pojawia się natychmiast po pojawieniu się nowej linii.

Zastosowanie: Pozwala na bieżąco monitorować system pod kątem błędów, co jest kluczowe w sytuacjach wymagających szybkiej reakcji.

Podsumowanie

Każda z powyższych jednolinijkowych komend to małe arcydzieło, które w odpowiednich rękach może odmienić codzienną pracę administratora systemu. Od szybkiej analizy logów, przez dynamiczne monitorowanie procesów, aż po tworzenie kopii zapasowych z dokładnym znacznikiem czasu – wszystko to, co kiedyś wymagało rozbudowanych skryptów, teraz mieści się w jednym, zgrabnym wierszu. Zachęcam do eksperymentowania, modyfikowania oraz łączenia tych poleceń, aby odkryć, jak wiele magii kryje się w terminalu. Pamiętaj, że prawdziwa sztuka polega na prostocie – niech każda linijka kodu będzie świadectwem Twojej kreatywności i precyzji!

Powodzenia i niech magia jednolinijkowych rozwiązań zawsze Ci służy!