Podstawy Linuxa część 2: komendy i polecenia
Wstęp
Terminal w Linuxie to podstawowe narzędzie każdego admina i użytkownika, który chce w pełni wykorzystać potencjał systemu. Ten przewodnik przeprowadzi Cię przez najważniejsze polecenia w systemach Debian i Ubuntu, zaczynając od absolutnych podstaw. Jeśli dopiero zaczynasz swoją przygodę z Linuxem, polecam najpierw przeczytać mój artykuł o wyborze dystrybucji Linuxa.
Nawigacja po systemie plików
pwd - sprawdź gdzie jesteś
Polecenie pwd (print working directory) wyświetla pełną ścieżkę do katalogu, w którym się znajdujesz. To pierwsza komenda, której będziesz używać, gdy zgubisz się w strukturze katalogów lub chcesz potwierdzić swoją lokalizację w systemie plików.
pwdPrzykładowy output:
/home/usernamels - wyświetl zawartość katalogu
Prawdopodobnie najczęściej używana komenda w Linuxie. ls wyświetla listę plików i katalogów w bieżącej lub wskazanej lokalizacji, z mnóstwem opcji formatowania i filtrowania.
ls # wyświetl pliki w bieżącym katalogu
ls -l # szczegółowa lista z uprawnieniami
ls -la # pokaż również ukryte pliki (zaczynające się od .)
ls -lh # rozmiary plików w czytelnym formacie (KB, MB, GB)
ls /etc # wyświetl zawartość konkretnego katalogucd - zmień katalog
Komenda cd (change directory) pozwala przemieszczać się między katalogami w systemie plików. To podstawa nawigacji - bez niej pozostajesz w jednym miejscu przez całą sesję terminala.
cd /home/username # przejdź do konkretnego katalogu
cd .. # przejdź katalog wyżej
cd ~ # przejdź do katalogu domowego
cd - # wróć do poprzedniego katalogu
cd # przejdź do katalogu domowego (skrót)Operacje na plikach i katalogach
mkdir - tworzenie katalogów
Komenda mkdir (make directory) tworzy nowe katalogi w systemie plików. Opcja -p jest szczególnie przydatna, bo pozwala utworzyć całą hierarchię katalogów za jednym razem, bez konieczności tworzenia każdego poziomu osobno.
mkdir folder # utwórz pojedynczy katalog
mkdir -p projects/web/app # utwórz strukturę katalogów rekursywnie
mkdir folder1 folder2 folder3 # utwórz wiele katalogów jednocześnietouch - tworzenie plików
Choć touch pierwotnie służy do zmiany znacznika czasu pliku, najczęściej używamy go do szybkiego tworzenia pustych plików. Jest to prostsze niż używanie edytora tekstu, gdy potrzebujesz tylko utworzyć plik.
touch plik.txt # utwórz pusty plik
touch file1.txt file2.txt # utwórz wiele plikówcp - kopiowanie
Polecenie cp (copy) kopiuje pliki i katalogi. Pamiętaj, że standardowo cp nie kopiuje katalogów - do tego potrzebna jest flaga -r (rekursywnie), która skopiuje katalog wraz z całą jego zawartością.
cp plik.txt kopia.txt # skopiuj plik
cp plik.txt /home/username/backup/ # skopiuj do innego katalogu
cp -r folder/ kopia_folderu/ # skopiuj katalog rekursywnie
cp -v plik.txt kopia.txt # verbose - pokaż co się kopiujemv - przenoszenie i zmiana nazw
Komenda mv (move) służy zarówno do przenoszenia plików, jak i zmiany ich nazw - w systemie Linux to praktycznie ta sama operacja. W przeciwieństwie do cp, mv nie wymaga flagi -r dla katalogów.
mv plik.txt nowa_nazwa.txt # zmień nazwę pliku
mv plik.txt /tmp/ # przenieś plik do innego katalogu
mv folder/ /home/username/ # przenieś katalog
mv *.txt /backup/ # przenieś wszystkie pliki .txtrm - usuwanie
Komenda rm (remove) usuwa pliki i katalogi. W systemie Linux nie ma kosza - usunięte pliki są usuwane na zawsze, więc zawsze sprawdzaj dokładnie co usuwasz, szczególnie używając rm -rf.
rm plik.txt # usuń plik
rm -r folder/ # usuń katalog rekursywnie
rm -rf folder/ # usuń katalog bez pytania o potwierdzenie (UWAGA!)
rm *.log # usuń wszystkie pliki .logUwaga przy używaniu rm -rfPolecenie
rm -rfusuwa pliki bez możliwości odzyskania i bez pytania o potwierdzenie. Upewnij się, że podajesz poprawną ścieżkę.
Przeglądanie zawartości plików
cat - wyświetl całą zawartość
Polecenie cat (concatenate) wyświetla całą zawartość pliku lub wielu plików na ekranie. Przydatne dla krótkich plików, ale dla długich lepiej użyć less lub more.
cat plik.txt # wyświetl zawartość pliku
cat plik1.txt plik2.txt # wyświetl zawartość wielu plików
cat > nowy.txt # utwórz nowy plik (Ctrl+D aby zakończyć)less i more - przeglądanie długich plików
Narzędzia do przeglądania długich plików z możliwością przewijania i wyszukiwania. less jest nowszą, bardziej zaawansowaną wersją more i pozwala przewijać w obu kierunkach.
less plik.txt # przeglądaj plik (q aby wyjść, / aby wyszukać)
more plik.txt # starszy odpowiednik lessW less możesz używać:
- strzałki lub
j/k- przewijanie /tekst- wyszukiwanien- następne wystąpienieq- wyjście
head i tail - początek i koniec pliku
Polecenia head i tail wyświetlają odpowiednio początek lub koniec pliku. tail -f jest nieocenione przy monitorowaniu logów w czasie rzeczywistym - będziesz używać tego codziennie przy debugowaniu aplikacji.
head plik.txt # wyświetl pierwsze 10 linii
head -n 20 plik.txt # wyświetl pierwsze 20 linii
tail plik.txt # wyświetl ostatnie 10 linii
tail -n 50 plik.txt # wyświetl ostatnie 50 linii
tail -f /var/log/syslog # śledź plik w czasie rzeczywistym (logi)Wyszukiwanie
find - znajdź pliki
Potężne narzędzie do wyszukiwania plików i katalogów według nazwy, rozmiaru, daty modyfikacji i wielu innych kryteriów. W odróżnieniu od grep, które przeszukuje zawartość plików, find szuka samych plików w strukturze katalogów.
find /home -name "*.txt" # znajdź wszystkie pliki .txt
find . -name "config.php" # znajdź plik w bieżącym katalogu
find /var/log -type f -mtime -7 # pliki modyfikowane w ostatnich 7 dniach
find . -type d -name "backup" # znajdź katalogi o nazwie backup
find /tmp -type f -size +100M # pliki większe niż 100MBgrep - wyszukiwanie w zawartości
Komenda grep (global regular expression print) przeszukuje zawartość plików w poszukiwaniu określonego wzorca tekstu. To fundamentalne narzędzie każdego admina - użyjesz go do przeszukiwania logów, konfiguracji i kodu źródłowego. grep wspiera wyrażenia regularne, co czyni je niesamowicie elastycznym narzędziem.
grep "error" /var/log/syslog # znajdź linię zawierającą "error"
grep -i "error" plik.txt # wyszukiwanie bez rozróżniania wielkości liter
grep -r "TODO" /home/projects/ # przeszukaj rekursywnie katalog
grep -n "function" app.php # pokaż numery linii
grep -v "comment" plik.txt # wyświetl linie NIE zawierające "comment"Połączenie z pipe:
cat plik.txt | grep "search"
ls -la | grep "\.txt"Edycja plików tekstowych
nano - prosty edytor
nano to prosty, intuicyjny edytor tekstowy idealny dla początkujących. Wszystkie dostępne skróty klawiszowe są widoczne na dole ekranu, więc nie musisz ich pamiętać.
nano plik.txtPodstawowe skróty:
Ctrl+O- zapiszCtrl+X- wyjdźCtrl+K- wytnij linięCtrl+U- wklejCtrl+W- wyszukaj
vim - zaawansowany edytor
vim to zaawansowany, modalny edytor z krętką krzywą uczenia, ale niesamowitą wydajnością gdy już go opanujesz. Jest zainstalowany praktycznie na każdym systemie Linux, więc warto poznać przynajmniej podstawy, nawet jeśli nie planujesz używać go na co dzień.
vim plik.txtPodstawy:
i- tryb edycji (insert mode)Esc- wyjście z trybu edycji:w- zapisz:q- wyjdź:wq- zapisz i wyjdź:q!- wyjdź bez zapisywania
echo - wypisz tekst lub zapisz do pliku
Komenda echo wyświetla tekst lub zapisuje go do pliku. Używając przekierowań > (nadpisz) i >> (dopisz), możesz szybko modyfikować pliki bez uruchamiania edytora. Przydatne również do wyświetlania wartości zmiennych środowiskowych.
echo "Hello World" # wyświetl tekst
echo "tekst" > plik.txt # zapisz do pliku (nadpisz)
echo "dodatkowy" >> plik.txt # dopisz do pliku
echo $PATH # wyświetl zmienną środowiskowąUprawnienia plików
chmod - zmiana uprawnień
Linux używa systemu uprawnień: r (read), w (write), x (execute) dla właściciela, grupy i innych.
chmod +x skrypt.sh # dodaj uprawnienie wykonywania
chmod 755 plik.sh # rwxr-xr-x (właściciel: rwx, grupa: r-x, inni: r-x)
chmod 644 plik.txt # rw-r--r-- (właściciel: rw, grupa: r, inni: r)
chmod -R 755 /var/www/html/ # zmień uprawnienia rekursywnieNumeryczne wartości:
4- read (r)2- write (w)1- execute (x)7= 4+2+1 (rwx)6= 4+2 (rw)5= 4+1 (rx)
chown - zmiana właściciela
Polecenie chown (change owner) zmienia właściciela pliku lub katalogu. Często potrzebne przy konfiguracji serwerów web, gdzie pliki muszą należeć do określonego użytkownika systemowego jak www-data czy nginx.
chown username plik.txt # zmień właściciela
chown username:groupname plik.txt # zmień właściciela i grupę
chown -R www-data:www-data /var/www/ # zmień rekursywnieNOTEPolecenia
chmodichownczęsto wymagają uprawnień roota (sudo).
Zarządzanie uprawnieniami
sudo - wykonaj jako administrator
sudo (superuser do) pozwala wykonywać polecenia z uprawnieniami administratora bez logowania się jako root. To podstawowy mechanizm bezpieczeństwa w systemach Linux - zamiast pracować cały czas jako root, używasz sudo tylko gdy jest to niezbędne.
sudo apt update # uruchom polecenie z uprawnieniami roota
sudo -i # zaloguj się jako root
sudo -u username polecenie # uruchom polecenie jako inny użytkownikPrzy pierwszym użyciu sudo system poprosi o hasło użytkownika. Więcej o konfiguracji sudo znajdziesz w naszym poradniku jak używać sudo bez hasła.
su - przełącz użytkownika
Polecenie su (switch user) pozwala przełączyć się na innego użytkownika. Rzadziej używane niż sudo, przydaje się gdy musisz wykonać wiele poleceń jako inny użytkownik.
su # przełącz na użytkownika root
su - username # przełącz na innego użytkownika
su - # przełącz na roota z jego środowiskiemZarządzanie pakietami
W systemach Debian i Ubuntu używamy apt (Advanced Package Tool).
apt update - aktualizacja listy pakietów
To polecenie synchronizuje lokalną bazę pakietów z serwerami repozytorium. Nie instaluje żadnych aktualizacji, tylko pobiera informacje o dostępnych wersjach pakietów. Zawsze uruchamiaj je przed instalacją lub aktualizacją.
sudo apt updateapt upgrade - aktualizacja pakietów
Po apt update możesz użyć apt upgrade do faktycznej instalacji dostępnych aktualizacji. To polecenie zaktualizuje wszystkie zainstalowane pakiety do najnowszych wersji, zachowując zgodność z zależnościami.
sudo apt upgrade # zaktualizuj wszystkie pakiety
sudo apt upgrade pakiet # zaktualizuj konkretny pakietapt install - instalacja pakietów
Komenda do instalowania nowych pakietów z repozytoriów Debian/Ubuntu. apt automatycznie rozwiązuje zależności i instaluje wszystkie wymagane biblioteki i pakiety pomocnicze.
sudo apt install htop # zainstaluj jeden pakiet
sudo apt install nginx mysql-server # zainstaluj wiele pakietów
sudo apt install -y pakiet # zainstaluj bez pytania o potwierdzenieapt remove - usuwanie pakietów
Usuwa zainstalowane pakiety z systemu. remove pozostawia pliki konfiguracyjne, podczas gdy purge usuwa wszystko. autoremove czyści pakiety, które zostały zainstalowane jako zależności, ale już nie są potrzebne.
sudo apt remove pakiet # usuń pakiet
sudo apt purge pakiet # usuń pakiet wraz z konfiguracją
sudo apt autoremove # usuń niepotrzebne zależnościapt search - wyszukiwanie pakietów
Przeszukuje repozytoria w poszukiwaniu pakietów pasujących do podanej frazy. apt show wyświetla szczegółowe informacje o konkretnym pakiecie, w tym wersję, zależności i opis.
apt search nginx # wyszukaj pakiety zawierające "nginx"
apt show nginx # pokaż szczegóły pakietuPełna aktualizacja systemu
Sekwencja poleceń do pełnej aktualizacji systemu: pobierz listę pakietów, zainstaluj aktualizacje i wyczyść niepotrzebne zależności. Operator && gwarantuje, że następne polecenie wykona się tylko jeśli poprzednie zakończyło się sukcesem.
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -yMonitorowanie systemu
htop - interaktywny monitor procesów
htop to interaktywny monitor procesów z kolorowym, czytelnym interfejsem. Wyświetla użycie CPU, RAM, listę procesów i pozwala na łatwe zarządzanie nimi. To ulepszona wersja starego top, z której korzystasz praktycznie codziennie.
htopSkróty:
F9- zabij procesF6- sortujF5- widok drzewaq- wyjście
Jeśli nie masz htop:
sudo apt update && sudo apt install htoptop - monitor procesów
Klasyczny monitor procesów dostępny we wszystkich dystrybucjach Linux. Mniej wygodny niż htop, ale zawsze dostępny nawet na minimalnych instalacjach serwerowych, gdzie htop może nie być zainstalowany.
topps - lista procesów
Wyświetla snapshot (migawkę) aktualnie uruchomionych procesów. W odróżnieniu od top i htop, ps pokazuje stan w konkretnym momencie, nie aktualizuje się na żywo. Przydatne w skryptach i do szybkiego sprawdzenia czy dany proces działa.
ps aux # wszystkie procesy
ps aux | grep nginx # znajdź proces nginx
ps -ef # wszystkie procesy w innym formaciedf - użycie dysku
Polecenie df (disk filesystem) pokazuje ile miejsca jest zajęte i wolne na zamontowanych systemach plików. Flaga -h wyświetla rozmiary w czytelnym formacie (GB, MB) zamiast w kilobajtach.
df -h # pokaż użycie dysku w czytelnym formacie
df -h / # użycie konkretnego punktu montowaniadu - rozmiar katalogów
du (disk usage) oblicza rozmiar katalogów i plików. W odróżnieniu od df, które pokazuje całe systemy plików, du pozwala sprawdzić rozmiar konkretnych katalogów - przydatne gdy dysk się zapełnia i szukasz co zajmuje najwięcej miejsca.
du -sh /home/username/ # rozmiar katalogu
du -sh * # rozmiar wszystkich elementów w bieżącym katalogu
du -h --max-depth=1 /var/ # rozmiar podkatalogów (1 poziom)free - pamięć RAM
Wyświetla informacje o użyciu pamięci RAM i swap. Pokazuje ile pamięci jest całkowicie wolne, ile używane, ile w cache oraz ile dostępne dla aplikacji.
free -h # użycie pamięci RAM i swapuptime - czas działania systemu
Pokazuje jak długo system działa bez restartu, liczbę zalogowanych użytkowników oraz średnie obciążenie systemu (load average) w ostatnich 1, 5 i 15 minutach.
uptime # jak długo działa system i obciążenieInne przydatne polecenia
history - historia poleceń
Bash zapisuje historię wszystkich wykonanych poleceń. history pozwala przeszukać tę historię, a specjalne skróty ! umożliwiają szybkie ponowne wykonanie wcześniejszych komend bez przepisywania.
history # wyświetl historię poleceń
history | grep apt # znajdź polecenia apt w historii
!123 # uruchom polecenie nr 123 z historii
!! # uruchom poprzednie polecenieman - dokumentacja
man (manual) wyświetla oficjalną dokumentację dla praktycznie każdego polecenia w systemie. To Twoje pierwsze źródło informacji - zanim szukasz w Google, sprawdź man.
man ls # manual dla polecenia ls
man chmod # pomoc dla chmodclear - wyczyść terminal
Czyści ekran terminala dla lepszej czytelności. Możesz też użyć skrótu Ctrl+L, który działa szybciej.
clear # wyczyść ekran terminala (lub Ctrl+L)wget i curl - pobieranie plików
Dwa popularne narzędzia do pobierania plików z internetu i wykonywania requestów HTTP. wget jest prostsze i lepsze do pobierania plików, curl bardziej elastyczne i używane do testowania API i wykonywania złożonych requestów HTTP.
wget https://example.com/file.zip # pobierz plik
curl -O https://example.com/file.zip # pobierz plik (curl)
curl https://api.example.com # wykonaj request HTTPPodsumowanie
Poznanie tych podstawowych poleceń to fundament pracy z Linuxem. Kluczem do ich opanowania jest praktyka - używaj terminala regularnie, nawet do prostych operacji na plikach. Z czasem te polecenia staną się drugą naturą, a Twoja produktywność wzrośnie.
Kolejnym krokiem może być nauka SSH i zdalnego zarządzania serwerem, co pozwoli Ci zarządzać systemami Linux z dowolnego miejsca. Pamiętaj, że większość poleceń ma znacznie więcej opcji - zawsze możesz użyć man polecenie lub polecenie --help aby dowiedzieć się więcej.

