Skip to content
Na tej stronie

Komendy i teoria Linux, w skrócie

Najważniejsze informacje i komendy dotyczące wykonywania wszelkich operacji w terminalu. Wszystko w skondensowanej formie, do szybkiego wglądu.

Listy i zestawienia zawierające rozwiązania przykładowych zadań dostępne są w dziale Dodatki

Drzewo katalogów

Drzewem katalogów nazywamy strukturę, która umożliwia dostęp do plików i folderów.

W Uniksie istnieje jedno drzewo katalogów, a systemy plików (partycje dysków, pamięć masowa) są montowane wewnątrz tego jednego drzewa.

Ścieżka w drzewie katalogów

Ścieżka określa lokalizację danego elementu (na przykład pliku) w drzewie katalogów.

/ działa jako separator kolejnych elementów ścieżki. Jeżeli stoi na początku ścieżki, oznacza on początek drzewa katalogów.

Element ścieżkiInformacja
..Ścieżka o poziom wcześniej w drzewie.
.Ta sama ścieżka. Jeżeli na początku ścieżki, oznacza lokalizację katalogu roboczego.
~Przyjmuje się jako katalog domowy (/home/użytkownik)
literałKonkretny element drzewa katalogów (folder, plik)

Informacja

Znak ~ nie jest elementem drzewa katalogów samym w sobie, ale jest zastępowany ścieżką katalogu domowego w powłoce wiersza poleceń. Jest to w przeciwieństwie do . i .., które są elementami drzewa katalogów.

Dowiązania w drzewie katalogów

Dowiązaniem symbolicznym nazywany ścieżkę, odwołującą się do innej ścieżki w drzewie katalogów.

Podstawowe komendy wiersza poleceń dotyczące pracy w drzewie katalogów

KomendaInformacja
cdUstaw katalog roboczy do katalogu domowego (~)
cd {ścieżka}Ustaw katalog roboczy do określonej ścieżki
ls albo treeWyświetl zawartość katalogu roboczego
ls {ścieżka} albo tree {ścieżka}Wyświetl zawartość określonej ścieżki
ls -l {ścieżka}Wyświetl szczegółową listę zawartości ścieżki
ls -la {ścieżka}Wyświetl szczegółową listę zawartości ścieżki wraz z elementami ukrytymi
ls -lh {ścieżka}Wyświetl szczegółową listę zawartości ścieżki używając czytelnych jednostek rozmiaru plików
touch {ścieżka}Utwórz plik, jeżeli jeszcze nie istnieje, w określonej ścieżce.
mkdir {ścieżka}Utwórz folder w określonej ścieżce.
mkdir -p {ścieżka}Utwórz folder, jeżeli jeszcze nie istnieje, w określonej ścieżce, w tym foldery prowadzące do określonej ścieżki.
rm {ścieżka}Usuń określony przez ścieżkę plik.
rm -d {ścieżka}Usuń określony przez ścieżkę katalog.
rm -r {ścieżka}Usuń ścieżkę wraz z jej zawartością
rm -ri {ścieżka}Usuń ścieżkę wraz z jej zawartością, ale przed każdą operacją zapytaj o potwierdzenie.
cp {ścieżka} {ścieżka}Skopiuj ścieżkę do ostatniej
cp -r {ścieżka} {ścieżka}Skopiuj zawartość ścieżki do ostatniej
cp -a {ścieżka} {ścieżka}Skopiuj zawartość ścieżki do ostatniej, zachowując te same metadane i prawa dostępu
mv {ścieżka} {ścieżka}Przenieś ścieżkę do ostatniej
ln -s {ścieżka} {ścieżka}Utwórz dowiązanie symboliczne (inaczej link) do pierwszej ścieżki
cat {ścieżka}Wyświetl zawartość pliku
tee {ścieżka}Nadpisz zawartość pliku
tee -a {ścieżka}Dopisz do zawartości pliku
stat {ścieżka}Wyświetl informacje o ścieżce
less {ścieżka}Przeglądaj zawartość pliku w przeglądarce less
nano {ścieżka}Edytuj zawartość pliku w edytorze nano

Powyższe komendy (z wyłączeniem cd) mogą przyjmować wiele ścieżek.

Komenda find

KomendaInformacja
find {ścieżka}Wyświetl wszystkie ścieżki zawierające się w określonej ścieżce
find {ścieżka} -maxdepth {liczba}Wyświetl wszystkie ścieżki zawierające się w określonej ścieżce do drugiego poziomu głębokości
find {ścieżka} -name {wzorzec}Wyświetl wszystkie ścieżki zawierające się w określonej ścieżce oraz spełniające wzorzec prosty
find {ścieżka} -iname {wzorzec}Wyświetl wszystkie ścieżki zawierające się w określonej ścieżce, oraz spełniające wzorzec prosty ignorując wielkość liter
find {ścieżka} -name {wzorzec} -deleteUsuń wszystkie ścieżki zawierające się w określonej ścieżce, oraz spełniające wzorzec prosty
find {ścieżka} -name {wzorzec} -exec {program}Wykonaj program (komendę) dla każdej ścieżki zawierającej się w określonej ścieżce oraz spełniającej wzorzec prosty. Fraza {} w komendzie zastępowana jest każdą ścieżką.
find {ścieżka} -type fWyświetl wszystkie ścieżki plików zawierające się w określonej ścieżce
find {ścieżka} -type dWyświetl wszystkie ścieżki folderów zawierające się w określonej ścieżce

Uwaga! Wzorcem prostym został nazwany typ wzorców, które mają składnię znaną z powłoki bash.

Komenda rsync

KomendaInformacja
rsync {ścieżka} {ścieżka}Skopiuj ścieżkę do ostatniej
rsync {ścieżka} {host}:{ścieżka}Skopiuj ścieżkę do ścieżki na hoście przez SSH
rsync -R {ścieżka} {ścieżka}Skopiuj zawartość ścieżki do ostatniej
rsync -a {ścieżka} {ścieżka}Skopiuj zawartość ścieżki do ostatniej zachowując te same metadane i prawa dostępu

rsync może przyjmować wiele ścieżek.

Uwaga

rsync interpretuje ścieżki w sposób znany z systemów BSD.

To oznacza, że ścieżka zakończona znakiem / oznacza zawartość określonego folderu. Jest to różnica od innych narzędzi Linux, które interpretują ścieżkę ignorując ostatni znak /.

Archiwa tar

KomendaInformacja
tar tvf {ścieżka}Wyświetl zawartość archiwum tar w określonej ścieżce
tar xf {ścieżka}Rozpakuj zawartość archiwum tar w katalogu roboczym
tar xpf {ścieżka}Rozpakuj zawartość archiwum tar w katalogu roboczym, zachowując oryginalne prawa dostępu
tar cf {ścieżka} {ścieżka}Zarchiwizuj ścieżkę do archiwum tar podanego w pierwszej ścieżce
tar cpf {ścieżka} {ścieżka}Zarchiwizuj ścieżkę do archiwum tar podanego w pierwszej ścieżce, przechowując prawa dostępu
tar caf {ścieżka} {ścieżka}Zarchiwizuj ścieżkę do archiwum tar podanego w pierwszej ścieżce, wykrywając odpowiedni algorytm kompresji po rozszerzeniu w nazwie pliku archiwum
tar uf {ścieżka} {ścieżka}Dodaj nowsze ścieżki na koniec archiwum tar podanego w pierwszej ścieżce

Informacja

Jeżeli podane archiwum tar zawiera rozszerzenie .tar.gz, .tar.bzip2, .tar.xz i inne, rozpakowywanie archiwum tar automatycznie użyje odpowiedniego algorytmu kompresji.

Archiwa zip

Zip jest prostym formatem archiwizacji plików obsługiwanym przez większość systemów operacyjnych (nawet systemy DOS[1]).

KomendaInformacja
zip {ścieżka.zip} {ścieżka}Jeżeli nie istnieje, utwórz archiwum zip w danej ścieżce oraz spakuj ścieżkę do archiwum
zip -r {ścieżka.zip} {ścieżka}Jeżeli nie istnieje, utwórz archiwum zip w danej ścieżce oraz spakuj zawartość ścieżki do archiwum
unzip -l {ścieżka.zip}Wyświetl zawartość archiwum zip
unzip {ścieżka.zip}Rozpakuj archiwum zip do katalogu roboczego

Powyższe komendy mogą przyjąć wiele ścieżek.

Przynależność i prawa dostępu

Każdy element struktury katalogów ma określoną przynależność i prawa dostępu.

Dowiązania mają prawa dostępu takie same, co element, do którego się odnoszą.

Komendy zmieniające przynależność i prawa dostępu ścieżki

KomendaInformacja
chown {użytkownik}:{grupa} {ścieżka}Zmień właściciela i grupę przynależności ścieżki
chown -R {użytkownik}:{grupa} {ścieżka}Zmień właściciela i grupę przynależności ścieżki wraz z jej zawartością
chmod {prawa dostępu} {ścieżka}Zmień prawa dostępu ścieżki
chmod -R {prawa dostępu} {ścieżka}Zmień prawa dostępu ścieżki i jej zawartości

Powyższe komendy mogą przyjąć wiele ścieżek.

Prawa dostępu

Elementy prawa dostępu

ElementOpis
rPrawo do odczytu
wPrawo do zapisu
xPrawo do wykonania

Prawa dostępu w postaci trójki elementów

Jako znakiJako oktetOpis
---0Brak praw
--x1Prawo do wykonania
-w-2Prawo do zapisu
-wx3Prawo do zapisu i wykonania
r--4Prawo do odczytu
r-x5Prawo do odczytu i wykonania
rw-6Prawo do odczytu i zapisu
rwx7Prawo do odczytu, zapisu i wykonania

Pełne prawa dostępu określamy dla właściciela pliku, grupy przynależności pliku oraz pozostałych użytkowników w postaci trzech oktetów.

Alternatywna składnia obsługiwana przez chmod

Alternatywna składnia składa się z ciągu tokenów.

Token wyboru zbioru użytkowników

TokenZbiór użytkowników
uWłaściciel
gGrupa
oPozostali użytkownicy, niebędący właścicielem ani nienależący do grupy
aWszyscy (każdy z trzech powyższych zbiorów)

Token operacji

TokenOpis
=Operator przypisania
+Operator dodania
-Operator usunięcia

Po tokenie operacji należy podać prawa dostępu w postaci ciągu znaków r, w, x.

Token wyboru zbioru użytkowników należy poprzedzić przecinkiem ,, jeżeli nie jest wolnostojący.

Informacja

Aby zawartość katalogu była widoczna dla danego zbioru użytkowników, należy oprócz uprawnień do odczytu nadać uprawnienia wykonania.

Inne operacje w drzewie katalogów i systemach plików

KomendaInformacja
df -hWyświetl informacje na temat dostępnej i używanej przestrzeni przez zamontowane systemów plików
du -sh {ścieżka}Wyświetl rozmiar katalogu w systemie plików
mount albo findmntWyświetl wszystkie montowania w drzewie katalogów
mount {ścieżka} {ścieżka}Zamontuj system plików do ścieżki

Standardowe ścieżki w systemie Linux

Standardowe katalogi są zdefiniowane w standardzie FHS.

ŚcieżkaOpis
/bin/Programy wymagane przy uruchomieniu systemu, również używane w skryptach
/boot/Obraz jądra systemu i inne pliki umożliwiające rozruch systemu
/dev/Pliki urządzeń
/etc/Pliki konfiguracyjne systemu i usług
/home/Pliki utworzone przez użytkowników
/lib/Biblioteki i pliki uruchomieniowe programów
/mnt/Montowania systemów plików administratora
/proc/Informacje o procesach i informacje sprzętowe
/root/Katalog domowy użytkownika root
/run/Pliki zawierające informacje o usługach systemu
/sbin/Programy wymagane przy uruchomieniu systemu, również używane w skryptach, zwykle przez administratora
/srv/Udostępniane pliki przez serwery i usługi sieciowe
/sys/Informacje jądra Linux i informacje sprzętowe
/tmp/Pliki tymczasowe, regularnie usuwane przez system operacyjny
/usr/Programy i ich dane wymagane do działania, dostępne dla każdego użytkownika systemu
/var/Zmienne dane systemu operacyjnego i jego usług

Niewyczerpująca lista uniksowych urządzeń.

ŚcieżkaWejścieWyjście
/dev/nullSukcesBrak (koniec pliku, inaczej EOF)
/dev/zeroSukcesWartości binarne 0x00 (0)
/dev/randomSukcesPseudolosowe wartości binarne
/dev/urandomSukcesPseudolosowe wartości binarne, generowane w sposób szybszy
/dev/sdaZapis danych binarnych do pierwszego dyskuOdczyt danych binarnych z pierwszego dysku
/dev/sda1Zapis danych binarnych do pierwszej partycji pierwszego dyskuOdczyt danych binarnych z pierwszej partycji pierwszego dysku
/dev/mmcblk0Zapis danych binarnych do pierwszego dysku typu MMCOdczyt danych binarnych z pierwszego dysku typu MMC
/dev/mmcblk0p1Zapis danych binarnych do pierwszej partycji pierwszego dysku typu MMCOdczyt danych binarnych z pierwszej partycji pierwszego dysku typu MMC

Ostrzeżenie

Ścieżki dysków mogą różnić się między wariantami środowisk uniksowych, szczególnie między Linux a BSD. Ponadto, numery dysków mogą różnić się między uruchomieniami systemu.

Katalog /dev/disk umożliwia dostęp do dysków i ich systemów plików, za pomocą odpowiedniego identyfikatora.

  • /dev/disk/by-id zawiera dyski i ich partycje, zorganizowane według identyfikatora sprzętowego dysku, albo innego identyfikatora (w przypadku map urządzeń).
  • /dev/disk/by-label zawiera systemy plików, zorganizowane według ich etykiety zapisanej w strukturze partycji dysku.
  • /dev/disk/by-path zawiera dyski i ich partycje, zorganizowane według lokalizacji połączeń sprzętowych.
  • /dev/disk/by-partlabel zawiera systemy plików, zorganizowane według ich etykiety zapisanej w systemie plików.
  • /dev/disk/by-partuuid zawiera partycje dysków, zorganizowane według identyfikatora UUID zapisanego w strukturze partycji dysku.
  • /dev/disk/by-uuid zawiera systemy plików, zorganizowane według identyfikatora UUID zapisanego w systemie plików.

Lista katalogów wewnątrz /usr.

ŚcieżkaOpis
/usr/bin/Programy, pliki wykonywalne
/usr/include/Pliki nagłówkowe (kod źródłowy)
/usr/lib/Biblioteki i pliki uruchomieniowe programów
/usr/libexec/Pliki wykonywalne używane w trakcie działania innych programów, nieprzeznaczone do użytku same w sobie
/usr/local/Pliki systemowe zarządzane przez administratora
/usr/sbin/Administracyjne programy
/usr/share/Niewykonywalne pliki programów
/usr/src/Kod źródłowy

Lista katalogów wewnątrz /var.

ŚcieżkaOpis
/var/cacheTymczasowe pliki usług i programów systemowych
/var/libZmienne dane usług i programów systemowych
/var/lockPliki synchronizujące dostęp do zasobów przez usługi i programy systemowe
/var/logDzieniki systemu i jego usług
/var/mailSkrzynka pocztowa systemu
/var/runDowiązanie symboliczne do katalogu /run/
/var/tmpPliki tymczasowe
/var/spoolPliki zadań systemowych w kolejce

Przekierowanie wejścia/wyjścia

W powłoce uniksowej | przekierowuje wyjście komendy po lewej stronie na wejście komendy po prawej stronie od tego znaku.

Zakładamy, że dane wejściowe do komend pracujących na tekście zostały przekazane w powyższy sposób, albo poprzez podanie ścieżki pliku jako argument.

Zmodyfikowany tekst zostanie zwrócony do wyjścia standardowego.

Podstawowe komendy wiersza poleceń dotyczące pracy na danych

KomendaInformacja
headWyświetl pierwsze 10 linii
head -n {liczba}Wyświetl określoną liczbę linii od początku
head -n -{liczba}Wyświetl wszystkie linie wyłączając określoną liczbę linii od końca
tailWyświetl ostatnie 10 linii
tail -n {liczba}Wyświetl określoną liczbę linii od końca
tail -n +{liczba}Wyświetl wszystkie linie wyłączając określoną liczbę linii od początku
cut -d{separator} -f{pozycja}Wyświetl z linii określoną pozycją frazę z fraz oddzielonych określonym znakiem
cut -d{separator} -f{pozycja},{pozycja...}Wyświetl z linii określone pozycjami frazy z fraz oddzielonych określonym znakiem
cut -d{separator} -f{pozycja}-{pozycja}Wyświetl zawartości linii od-do określonej frazy z fraz oddzielonych określonym znakiem
grep -e {fraza}Wyświetl linie zawierające frazę
grep -e {fraza} -R {ścieżka}Wyświetl plik wraz z linią zawierające frazę wewnątrz katalogu
grep -v -e {fraza}Wyświetl linie niezawierające frazę
grep -c -e {fraza}Zwróć liczbę linii zawierających frazę
grep -E {regexp}Wyświetl linie spełniające wyrażenie regularne (inaczej regexp)
grep -o -E {regexp}Wyświetl fragmenty spełniające wyrażenie regularne (inaczej regexp)
sortWyświetl linie w kolejności leksykograficznej (alfabetycznej)
sort -nWyświetl linie w kolejności numerycznej
sort -t{separator} -k{pozycja}Wyświetl linie w kolejności leksykograficznej według określonej pozycją kolumny z kolumn oddzielonych określonym separatorem
sort -t{separator} -k{pozycja},{pozycja} -k{pozycja},{pozycja}Wyświetl linie w kolejności leksykograficznej według określonych pozycjami kolumn oddzielonych określonym separatorem
wcZwróć w kolejności liczbę znaków nowej linii, wyrazów i bajtów
wc -mZwróć liczbę liter
tr {fraza} {fraza}Wyświetl tekst zamieniając litery występujące we frazie pierwszej na litery występujące na tej samej pozycji we frazie drugiej
tr -d {fraza}Wyświetl tekst usuwając wystąpienie frazy

Fraza komendy tr może zawierać posiksową listę znaków.

Komenda sort dla wielu kolumn wymaga powtórzenia kolumny po przecinku, aby zachowywała się ona w przewidywany sposób. sort -t',' -k{kolumna1},{kolumna1} -k{kolumna2},{kolumna2} posortuje według pierwszej kolumny, a kiedy ta się powtarza, według drugiej kolumny.

KomendaInformacja
cat -tWyświetl zastępując znaki specjalne drukowalnymi odpowiednikami
tacWyświetl linie w kolejności od końca, do początku
revWyświetl znaki w każdej z linii od końca, do początku
shufWyświetl linie w losowej kolejności
uniqUsuń następujące po sobie powtórzenia linii
uniq -cUsuń następujące po sobie powtórzenia linii poprzedzając każdą linię liczbą wystąpień linii po sobie

Sygnały

Zarówno system operacyjny, jak i procesy uruchomione w systemie mogą między sobą wysyłać sygnały.

Skrócona lista sygnałów

Najważniejsze uniksowe sygnały przekazywane do procesów przedstawiliśmy w poniższych tabelkach.

Sygnały wiążą się z domyślną akcją wobec procesu, którego sygnał dotyczy. Proces może obsłużyć sygnał i zapobiec wywołaniu akcji.

NumerNazwaAkcjaOpis
2SIGINTZakończenieZamknięcie procesu w sposób łagodny
15SIGTERMZakończenieNatychmiastowe, zamknięcie procesu
16SIGUSR1ZakończenieSygnał, którego znaczenie zależy od programu
17SIGUSR2ZakończenieSygnał, którego znaczenie zależy od programu

Niektóre usługi systemowe obsługują sygnały SIGUSR1 i SIGUSR2, aby wywołać przeładowanie konfiguracji, zamiast zakończenia procesu.

Poniższe zestawienie przedstawia sygnały, których dany proces nie jest w stanie obsłużyć ani zmienić ich akcji.

NumerNazwaAkcjaOpis
9SIGKILLZakończenieWymuszone zniszczenie procesu
11SIGSEGVZwrócenie stosuWywołano niepoprawną instrukcję

Akcja zwrócenia stosu wiąże się z zakończeniem procesu.

Strumienie standardowe

Każdy proces w systemie operacyjnym ma przydzielone trzy strumienie, przedstawione poniżej.

Nazwa strumieniaNumer (Deskryptor pliku)Informacja
stdin0Wejście standardowe
stdout1Wyjście standardowe
stderr2Wyjście standardowe błędów

Proces może mieć przydzielone dodatkowe strumienie, o innych deskryptorach.

Zmienne środowiskowe

Zmienne środowiskowe dotyczą procesu w systemie operacyjnym.

Wyróżniamy znane zmienne środowiskowe.

NazwaOpis wartości
HOMEŚcieżka katalogu domowego
LANG oraz zmienne typu LC_...Identyfikator języka tekstu wyświetlanego użytkownikowi
PATHŚcieżki zawierające programy wykonywalne
PWDKatalog roboczy
SHELLDomyślna powłoka poleceń
TEMPDIRŚcieżka katalogu tymczasowego
TERMIdentyfikator rodzaju terminala używanego przez użytkownika
USERNazwa użytkownika

Komendy do zarządzania procesami

KomendaInformacja
ps auxWyświetl wszystkie procesy wszystkich użytkowników
pstreeWyświetl wszystkie procesy wszystkich użytkowników w formie drzewa
kill {PID}Wyślij sygnał SIGTERM do procesu określonego za pomocą PID
kill -{sygnał} {PID}Wyślij określony sygnał do procesu określonego za pomocą PID
killall {fraza}Wyślij sygnał SIGTERM do procesu określonego za pomocą fragmentu nazwy
killall -{sygnał} {fraza}Wyślij określony sygnał do procesu określonego za pomocą fragmentu nazwy

Komenda date

KomendaInformacja
dateWyświetl obecną datę
date -uWyświetl obecną datę w strefie czasowej UTC
date +formatWyświetla obecną datę według podanego formatu
date -d data +formatWyświetla podaną datę według podanego formatu

Format daty

Sekwencja formatuLiczba
%dDzień miesiąca w formie dwucyfrowej
%HGodzina w formie dwudziestoczterogodzinnej
%IGodzina w formie dwunastogodzinnej
%jDzień roku w formie trzycyfrowej
%mMiesiąc w formie dwucyfrowej
%MMinuty w formie dwucyfrowej
%NNanosekundy w formie dziewięciocyfrowej
%SSekundy w formie dwucyfrowej
%YRok
%yRok, w formie ostatnich dwóch cyfr
Sekwencja formatuNapis
%ANazwa tygodnia w formie pełnej
%aNazwa tygodnia w formie skróconej
%BNazwa miesiąca w formie pełnej
%bNazwa miesiąca w formie skróconej
%pAM, albo PM w zależności od godziny
%PAM, albo PM w zależności od godziny, z małych liter
%ZSkrót strefy czasowej
Sekwencja formatuZnak
%%Znak procentu
%nZnak nowej linii
%tZnak tabulatora

Komendy związane z siecią

KomendaInformacja
curl -L URLWyświetl plik z sieci
elinks URLOtwórz link w przeglądarce internetowej elinks
ip aWyświetl informacje o interfejsach sieciowych i ich adresach
ping adresHostaSprawdzaj połączenie z hostem sieciowym
wget URLPobierz plik z sieci do katalogu roboczego

  1. infozip.sourceforge.net ↩︎