Linux: Polecenia powłoki – Cheat Sheet (ściąga)
Cheat sheet najczęściej używanych poleceń Uniksa i Linuksa z przykładami pracy ze strumieniami i potokami.
W tym wpisie przedstawiam mój cheat sheet najczęściej używanych poleceń Uniksa. Wykonany w ciekawym szablonie LaTeX, co pewnie też w przyszłości opiszę.
Kilka słów o Uniksie i Linuksie
Unix zbudowany jest z jądra (kernel) oraz przestrzeni użytkownika (user space). Jądro zarządza zasobami systemu (procesami, pamięcią, systemem plików i urządzeniami) oraz udostępnia programom interfejs wywołań systemowych (system calls). Za pomocą system calls programy żądają od jądra wykonania określonych operacji systemowych, takich jak read(), write(), fork() czy exec().
W przestrzeni użytkownika działają powłoka (shell) oraz programy. Powłoka jest specjalnym programem – interpreterem poleceń: przyjmuje komendy użytkownika (z terminala lub z GUI) i na ich podstawie inicjuje w jądrze uruchamianie procesów poprzez odpowiednie system calls.
Programy, w tym powłoka, korzystają z usług jądra (kernel services).
Usługi jądra to funkcjonalności realizowane przez jądro, takie jak odczyt i zapis plików, tworzenie nowych procesów, przydzielanie pamięci, komunikacja z urządzeniami sprzętowymi oraz obsługa potoków i strumieni pomiędzy programami. Programy, w tym powłoka, nie mają bezpośredniego dostępu do sprzętu; zawsze pośredniczy w tym jądro.
Istnieje wiele jąder systemów typu Unix, jednym z nich jest Linux. Linux to wolne jądro typu Unix, stworzone w 1991 roku przez studenta Linusa Torvaldsa, które umożliwiło uruchamianie systemów uniksowych na zwykłych komputerach osobistych.
Filozofia Uniksa
Ważną zasadą projektową systemu Unix jest hasło:
„Rób jedną rzecz i rób ją dobrze.”
Make each program do one thing well. 1
Zasada ta w praktyce tłumaczy obecność w Uniksie wielu małych, wyspecjalizowanych programów, które można łączyć potokami i strumieniami w większe operacje.
Unix Cheat Sheet (PDF)
Cheat sheet to zwięzłe, techniczne zestawienie kluczowych informacji w formie skróconej dokumentacji, zebranej na jednej stronie. Jego celem jest ułatwienie bieżącej pracy poprzez szybki dostęp do najważniejszych informacji.
Poniżej znajduje się mój cheat sheet poleceń Uniksa.
📄 Pobierz PDF: unix-commands-cheat-sheet-pl.pdf
Rys. 1. Cheat Sheet poleceń Unix.
Przykład
Jedną z kluczowych idei Uniksa są strumienie danych i ich łączenie potokami.
Rozważmy jedno z podstawowych poleceń powłoki (realizowane przez program ls):
1
ls
Wyświetla ono zawartość bieżącego katalogu. Większość poleceń Uniksa przyjmuje opcje modyfikujące działanie programu.
Przykłady:
1
2
3
ls -a
ls -l
ls -al
-a– pokazuje także pliki ukryte\-l– format długi (uprawnienia, właściciel, rozmiar, data)-al = -a -l(połączone krótkie opcje)
Informacje o dostępnych opcjach uzyskuje się przez:
1
2
ls --help
man ls
Przykłady pracy ze strumieniami
1. Zliczanie plików
1
ls *.c | wc -l
ls *.c— lista plików z rozszerzeniem.c|— przekazanie strumienia wyjścia do kolejnego programuwc -l— zliczenie linii
Wynikiem jest liczba plików spełniających wzorzec.
2. Wyszukiwanie i sortowanie
1
grep error log.txt | sort | uniq
grep error log.txt— wybór linii zawierających „error”sort— uporządkowanie wynikówuniq— usunięcie duplikatów (z sąsiadujących linii)
3. Analiza tekstu
1
cat tekst.txt | tr ' ' '\n' | sort | uniq -c | sort -nr | head
Kolejne etapy przetwarzania:
- zamiana spacji na znak nowej linii\
- sortowanie\
- zliczanie wystąpień (
uniq -c)\ - sortowanie malejąco (
-nr)\ - wyświetlenie pierwszych wyników (
head)
To przykład łańcucha małych narzędzi realizujących bardziej złożoną operację.
4. Filtrowanie logów
1
cat log.txt | grep error | sort | uniq -c
Wyszukanie błędów w logu, ich uporządkowanie i zliczenie wystąpień.
5. Przekierowanie wyjścia
1
grep main *.c > results.txt
Standardowe wyjście zostaje zapisane do pliku tekstowego.
Błędy można przekierować osobno:
1
grep main *.c 2> errors.txt
6. Praca w tle
1
sleep 60 &
Program uruchamiany jest w tle, a powłoka pozostaje dostępna do dalszej pracy.
Podsumowanie
Unix oddziela jądro od przestrzeni użytkownika, w której działa rozbudowana powłoka oraz wiele małych, wyspecjalizowanych narzędzi przeznaczonych do łączenia w większe operacje.
Znajomość poleceń Uniksa oraz umiejętność łączenia ich potokami daje w tym systemie dużą swobodę działania.
Literatura
M. D. McIlroy, E. N. Pinson, and B. A. Tague, “UNIX Time-Sharing System,” The Bell System Technical Journal, vol. 57, no. 6, pp. 1899–1904, 1978. (PDF lokalny) ↩︎