W poprzednich artykułach ogarnęliśmy podstawy pracy z powłoką Linux: składnię poleceń, poruszanie się po systemie plików oraz tworzenie plików i katalogów.
Teraz czas na kolejny poziom: operacje na plikach i to, co w Linuksie dzieje się praktycznie wszędzie, czyli manipulacje tekstem. Umiejętność szybkiego podglądania zawartości plików, filtrowania danych i wyciągania z nich konkretnych informacji to jedna z najbardziej przydatnych kompetencji w pracy z systemem. Bo kiedy log ma 50 000 linijek, a Ty potrzebujesz tylko tych trzech „podejrzanych”, nie chcesz przewijać go jak powieści na wakacjach.
Polecenia do pracy z plikami
Wyświetlanie tekstu w terminalu: echo
Polecenie echo służy do wyświetlania tekstu w terminalu. Najczęściej używa się go w skryptach albo do szybkich testów („czy to w ogóle działa?”). Wynik echo można też łatwo przekierować do pliku, o czym będzie niżej.

Wyświetlanie zawartości pliku: cat
Jeśli chcesz wyświetlić zawartość pliku, użyj cat. To proste narzędzie do przeglądania plików tekstowych oraz łączenia wielu plików i wyświetlania ich zawartości jeden pod drugim.

Numerowanie linii: nl
Standardowy wynik cat bywa mało czytelny, szczególnie w dłuższych plikach. Lepszym wyborem jest nl, które zostało stworzone do numerowania linii i wyświetlania wyniku na ekranie.

Wygodne czytanie długich plików: more i less
Polecenie more wyświetla zawartość pliku „stronami”, co ułatwia przeglądanie długich dokumentów.
Sterowanie:
- Enter — linia po linii
- Spacja — strona po stronie
- b — powrót do poprzedniej strony
- q — wyjście

Jest też less, który działa podobnie, ale jest dużo wygodniejszy: pozwala przewijać w przód i w tył, wyszukiwać frazy i poruszać się po tekście. W praktyce to najczęstszy wybór do czytania logów.
Sterowanie:
- /fraza — szukaj frazy
- n — następne dopasowanie
- N — poprzednie dopasowanie

Podgląd początku pliku: head
Polecenie head wyświetla pierwsze linie pliku. Jest przydatne, gdy pracujesz z dużymi plikami i chcesz szybko sprawdzić początek bez wczytywania całości. Po przełączniku -n podajesz liczbę linii do wyświetlenia.

Podgląd końca pliku: tail
Polecenie tail działa analogicznie do head, ale pokazuje końcówkę pliku. Świetne do logów, bo najświeższe wpisy zazwyczaj są na końcu.

Wyszukiwanie w plikach: grep
grep to jedno z najważniejszych narzędzi w terminalu. Służy do wyszukiwania linii pasujących do wzorca (np. słowa lub fragmentu tekstu). Idealny do filtrowania logów i wyciągania konkretnych informacji.

Wycinanie kolumn: cut
cut pozwala „wycinać” fragmenty z każdej linii i wyświetlać tylko wybrane kolumny. Działa świetnie, gdy dane mają prostą strukturę (np. są rozdzielane separatorem).
Przykład: wyświetlenie pierwszej kolumny, gdzie separatorem jest ::

Bardziej elastyczna praca na kolumnach: awk
Polecenie awk jest bardziej elastyczne niż cut i świetnie nadaje się do wyciągania informacji z tekstu. Przykładowo możesz wyświetlić tylko kolumnę 1 i 3.

Sortowanie danych: sort
Polecenie sort sortuje tekst alfabetycznie lub numerycznie.
Przykłady:
- Sortowanie wartości numerycznych rosnąco:
sort -n plik.txt - Sortowanie wartości numerycznych malejąco:
sort -r plik.txt

Usuwanie duplikatów: uniq
Polecenie uniq identyfikuje i usuwa zduplikowane linie. Ważne: zadziała poprawnie, jeśli duplikaty są obok siebie, dlatego zwykle łączy się je z sort.
Jeśli dodasz -c, zobaczysz też liczbę wystąpień.

Operacje wejścia/wyjścia
Podstawowy przepływ pracy dowolnego polecenia systemu Linux polega na tym, że pobiera dane wejściowe z klawiatury (stdin) i wyświetla dane wyjściowe na ekranie (stdout). Dane wejściowe możemy w łatwy sposób skierować do pliku lub z pliku. Służy do tego strumieniowanie danych.
Przekierowanie wyniku do pliku: > i >>
Do przekierowania wyniku polecenia do pliku służą dwa operatory:
- > — nadpisuje plik (jeśli istnieje),
- >> — dopisywuje na końcu pliku.
Możesz też przekierować dane wejściowe z pliku do polecenia operatorem <.

Potoki: |
Potoki pozwalają łączyć polecenia w łańcuch, gdzie wynik jednego polecenia staje się wejściem dla kolejnego. Potoki są reprezentowane przez symbol pionowej kreski |.
Przykład: możesz wyświetlić ilość zajętej pamięci wymiany i zapisać ją do pliku:

Warunkowe wykonywanie poleceń: &&
Oprócz potoków istnieje operator &&, który uruchamia drugie polecenie tylko wtedy, gdy pierwsze zakończy się sukcesem. Jeśli pierwsze polecenie zwróci błąd, drugie się nie wykona.

Podsumowanie
W tym materiale przeszedłeś z „podstaw terminala” do praktycznej pracy na plikach i tekście, czyli tego, co w Linuksie przydaje się najczęściej, zwłaszcza przy analizie logów. W kolejnym artykule przejdziemy krok dalej i pokażę Ci, jak zarządzać użytkownikami i grupami w Linuxie.