Najważniejsze komendy Linux Ubuntu

Zanim wymyślono interface graficzny z przyjemnymi w użytkowaniu okienkami, znano jedynie interface będący formą terminala, z którego poziomu zarządzano komputerem. Choć Linux został wynaleziony w czasach gdy GUI (interfejs graficzny) już znano, posiada on konsole poleceń. Ponadto w przypadku serwerów Linux, nie posiadają one graficznej odsłony a jedynie terminal, z którego poziomu musimy wszystko skonfigurować. Dzięki braku odsłony graficznej system jest lżejszy i nie wymaga dodatkowych zasobów. Dzięki temu poradnikowi dowiesz się jak orientować się w terminalu Linux za pomocą komend. Poniżej znajdziesz komendy Linux Ubuntu, w większości kompatybilne z różnymi dystrybucjami oraz wersjami serwerowymi.

Przedstawione komendy Linux dotyczą dystrybucji Ubuntu, lecz zadziałają na większości dystrybucji lub znajdą swoje odpowiedniki. Komendy zadziałają również na Linux serwerze w dystrybucji Ubuntu, który świetnie się sprawdza jako, np. serwer stron internetowych. Stanowią więc doskonałą podstawę do wprowadzenia w świat Linuxa. Wszystkie komendy posiadają swoje wyjaśnienie oraz przykład użycia.

Pamiętaj, że znajdziesz tutaj tylko najważniejsze (zdaniem autora) opcje do komend. Praktycznie każda komenda posiada swoje opcje, które w większości nie zostaną tutaj wymienione. Wszystkie opcje można sprawdzić wpisując w terminalu man [nazwa_komendy]. Opcje wprowadzają dodatkową funkcjonalność, dzieki której możesz skonfigurować polecenia pod własne potrzeby.

Spis treści – znajdź szybko czego szukasz:

  1. Do czego służy terminal w Linux?
  2. Jak uruchomić terminal w Linuxie?
  3. Skróty klawiszowe w terminalu Linux
  4. Ogólne komendy Linux
  5. Komendy Linux do zarządzania plikami
  6. Komendy do zarządzania pakietami (w tym programami)
  7. Uruchamianie programów i skryptów
  8. Zarządzanie procesami w Linux – komendy terminal
  9. Wyrażenia regularne w terminalu
  10. Operatory w terminalu
  11. Przydatne komendy administracyjne

Do czego służy terminal w Linux?

Terminal Linux – niegraficzny Interface tekstowy do sterowania systemem. Podobnie jak w Windows CMD konsola terminala Linux może być użyta do zbierania informacji o komputerze, zmianie ustawień, zarządzania plikami i wielu innych czynności. Z poziomu Terminala Linux, jesteśmy w stanie zrobić więcej niż z poziomu interface’u graficznego. Jednakże do sprawnego poruszania się po terminalu niezbędna jest znajomość komend oraz umiejętność zdobywania o nich informacji. Ten poradnik przedstawi Ci podstawowe komendy w terminalu Linux Ubuntu.

Oprócz wspierania interface’u graficznego (GUI) opanowanie komend jest często niezbędne do uruchomienia własnego Linux Servera. Obecnie większość serwerów jest oparte o jądro Linux’a. Takie serwery mogą zostać użyte, np. do hostowania stron internetowych i aplikacji.

Jak uruchomić terminal w Linux?

Sposobów na uruchomienie terminala jest wiele i zależą one często od dystrybucji Linuxa, jaką wybraliśmy. Poniżej przestawiam uniwersalne sposoby na uruchomienie Terminala Linux.
[!] W przypadku Linux serwera terminal jest jedynym, co wyświetla system.

1# Najszybszą metodą jest wciśnięcie skrótu klawiszowego: Ctrl + Alt + T

2# Inną prostą metodą jest wyszukanie Terminala Linux na liście aplikacji. W tym celu:

  1. Kliknij przycisk Windows (lub Super – w przypadku klawiatur Linux).
  2. Zajdź Linux terminal na liście aplikacji poprzez wyszukanie frazy „Terminal” w wyszukiwarce aplikacji.

[!] Przeciągając ikonę Terminala do paska zadań możesz zapisać skrót na potem.

Skróty klawiszowe w terminalu i Linux serwerze

Poniższe skróty klawiszowe terminala Linux ułatwią Ci poruszanie się, które na początku może wydawać się bardzo trudne.

Skrót klawiszowy Linux Działanie
Ogólne
(SHIFT +) Page Up / DownPrzewijanie terminala Linux
CTRL + LCzyści ekran terminala (równoważne z komendą Linux clear)
CTRL + DWychodzi z obecnej sesji terminala
CTRL + CNatychmiast kończy aktualne działajace polecenia, np. ping
CTRL + ZWstrzymuje aktualnie działający proces
Edycja poleceń
CTRL + APrzenosi kursor na początek linii
CTRL + EPrzenosi kursor na koniec linii
ALT + BPrzesuwa kursor do tyłu o jedno słowo
ALT + FPrzesuwa kursor do przodu o jedno słowo
CTRL + KWycina tekst od kursora do końca linii
CTRL + UWycina tekst od początku linii do kursora
CTRL + WWycina słowo będące przed kursorem
CTRL + YWkleja wcześniej wycięty tekst z terminala Linux
Historia poleceń
CTRL + RRozpoczyna wszukiwanie w historii poleceń terminala Linux
CTRL + GAnuluje wyszukiwanie w historii poleceń
CTRL + P
lub strałka w górę
Wstawia poprzednio użyte polecenia
CTRL + N
lub strzałka w dół
Wstawia następne polecenia

Ogólne komendy Linux Terminal

Komendy LinuxOpisPrzykład
man [nazwa polecenia]Otwiera program z instrukcją (manualem) korzystania dla wybranego polecenia.man usermod
help / -h / –helpLżejsza wersja pomocy. Nie otwiera całego manuala. Wyświetli opcje dla wybranego polecenia lub listę wszystkich poleceń, gdy jest użyte samo.help

ping –h
sudo [polecenie]Wykonuje wybrane polecenie na prawach administratora (wymaga wpisania hasła + posiadania uprawnień).sudo
whoamiKomenda „Kim jestem?” wyświetla nazwę zalogowanego użytkownika – przydatne, gdy pracujemy na kilku kontach. whoami
clearCzyści okno terminalaclear
exitWychodzi z aktualnego programu / wylogowuje z terminalaexit
logoutWyloguje aktualnego użytkownikalogout
pingSprawdza czy połączenie może być zrealizowane / czy inny serwer odpowiada, np. strony internetowej. Pokazuje również czas wysłania pakietu do serwera aż do jego powrotu w milisekundach (ping internetu).ping smartmob.pl
chmodZarządzanie uprawnieniami użytkowników do plików i katalogów.chmod 777 nazwa_pliku
usermodZarządzanie użytkownikami (zawieszanie kont, zmiana folderów, zmiana loginów, preferencji itp.)sudo usermod –lock UŻYTKOWNIK

– Zablokuje konto dowolnego użytkownika.
netplanPrzedstawia i aktualizuje konfigurację kart sieciowych.
netplan apply
– Aktualizuje konfigurację na podstawie wpisów w pliku konfiguracyjnym znajdującym się w /etc/netplan/plik.yaml (nowsze linuxy)

netplan get ethernets.NAZWA_karty_sieciowej.addresses
– wyświetla adresy IP wybranej karty sieciowej
echoWyświetla komunikat tekstowy, może wyświetlać aktualne wartości zmiennych.echo KOMUNIKAT
systemctlPozwala zarządzać oraz sprawdzać status usług.systemctl status ssh

– Sprawdza status usługi Secure Shell do zdalnych połączeń (jeśli jest zainstalowana).
adduserDodaje nowego użytkownika.sudo adduser UŻYTKOWNIK
nanoUruchamia wbudowany w Linux Ubuntu edytor tekstu.nano

Komendy Linux do zarządzania plikami

Z poziomu terminala Linux można sukcesywnie i szybko zarządzać plikami za pomocą poniższych komend.

Polecenie / komenda LinuxOpisPrzykład zastosowania
lsWyświetla listę plików oraz katalogów.ls
pwdUkazuje aktualną ścieżkę.pwd
cd [folder]Zmienia aktualny katalog (folder) na wskazany.cd /folder
mkdir [nazwa]Tworzy nowy katalog w aktualnej lokalizacji.mkdir folder2
rm [lokalizacja][nazwa_pliku]Usuwa wskazany plik lub katalog.rm /folder/folder2
cp [plik][lokalizacja_docelowa]Kopiuje wskazany plik lub katalog do wybranej lokalizacji.cp plik.txt /folder/folder2
mvDwa zastosowania:
1) Zmiana nazwy pliku
2) Przeniesienie pliku
1) mv plik.txt nowa_nazwa.txt
2) mv plik.txt /nowa_lokalizacja
cat [plik]Wyświetla zawartość wskazanych plików tekstowych.

W połączeniu z operatorem przekierowującym może zostać użyte do łączenia dwóch plików w jeden.
cat plik1.txt
Wyświetli zawartość pliku

cat plik1.txt plik2.txt > plik3.txt
Połaczy dwa pliki w jeden o nazwie plik 3.txt.
grep [atrybut] [„fraza”] [plik]Komenda wyszukująca dane słowo w plikach.
Może wyszukiwać w wielu plikach jednocześnie.
Domyślnie wyświetla linie zawierające wyszukiwaną frazę. Obsługuje wyrażenia regularne.
grep „slowo” plik.txt

grep -r „slowo” nazwa_katalogu/
Poszuka frazy „slowo” w plikach znajdujących się w całym katalogu.
tar [opcja] [PLIK]Komenda służąca do rozpakowywania skompresowanych plików.

Przydatne opcje:
-xvf dla rozszerzeń .tar
-zxvf dla .tar.gz
-jxvf dla .tar.bz2
-Jxf dla .tar.xz

Komenda obsługuje jedynie archiwa tar działające w systemie Linux
tar -xvf paczka.tar

Polecenie rozpakuje archiwum o nazwie paczka.tar
find [opcje] [nazwa]Wyszukuje lokalizację wskazanych plików i katalogów.

Opcja:
-name wyszukuje po nazwie
-type f wyszukuje tylko pliki
-type d wyszukuje tylko foldery

Opcje można łączyć ze sobą oraz z wyrażeniami regularnymi.
find -name nazwa.txt
Wyszuka lokalizację pliku o wskazanej nazwie

find -type f -name nazwa*
Komenda wyszuka tylko pliki o wskazanej nazwie i dowolnym rozszerzeniu

find -type d -name nazwa
Polecenie znajdzie tylko katalogi o wkazanej nazwie

Komend do zarządzania plikami można używać wraz z wieloma z wyrażeniami regularnymi.

Komendy Linux do zarządzania pakietami

Pakiety w systemie Linux służą do instalacji dodatków systemowych oraz programów. Pakiety to nic innego jak zbiory z plikami programu lub pliki z danymi. Linuxowe pakiety są dostępne w internetowych repozytoriach. Zarządzanie pakietami jest więc zarządzaniem programami z poziomu teminala Linux.

Polecenie apt (Advanced Package Tool) inicjuje menedżer pakietów, dzięki któremu Linux jest w stanie wyszukać dany pakiet po krótkiej nazwie, np. firefox to przeglądarka Firefox. Nie potrzeba do tego żadnego linka do pobrania ani skomplikowanych komend. Wystarczy jedynie nazwa pakietu, aby menedżer pakietów przeszukał repozytoria.

Większość komend do zarządzania pakietami wymaga dodania „sudo” przed komendą, ponieważ w systemie Linux muszą być wykonywane przy użyciu uprawnień administratora.

Komendy LinuxOpisPrzykład zastosowania
apt updateAktualizuje listę dostępnych pakietów, aby była zgodna z aktualnymi wersjami.sudo apt update
apt upgradeAktualizuje zainstalowane pakiety do najnowszych dostępnych wersji.sudo apt upgrade
apt install [nazwa]Instaluje wskazany pakiet oraz jego przynależności.sudo apt install gimp
apt remove [nazwa]Usuwa zainstalowany pakiet.sudo apt remove gimp
apt purgeUsuwa zainstalowany pakiet wraz z pozostałościami (np. plikami konfiguracyjnymi).sudo apt purge gimp
apt autoremoveAutomatycznie usuwa pozostałości po odinstalowanych pakietach.sudo apt autoremove
apt search [nazwa]Wyszukuje dostępne w repozytoriach pakiety o wskazanych nazwach.apt search text editor
apt show [nazwa]Wyświetla informacje na temat danego pakietuapt show firefox

Uruchamianie programów i skryptów w terminalu Linux

Oto instrukcja jak uruchomić dany program lub skrypt za pomocą terminala Linux.

Uruchamianie programu: [nazwa_programu]
Przykład:
nano

Uruchamianie skryptu: .[lokalizacja][nazwa_skryptu]
Przykład:
./folder/skrypt.sh

Uruchamianie skryptu lub programu w tle: [powyższe składnie] &
Przykład:
nano &

Komendy do zarządzania procesami w Linux

Zbiór przydatnych komend Linux terminal do zarządzania procesami.

Komenda LinuxOpisPrzykład zastosowania
freeWyświetla poziom zużycia pamięci RAM. Warto dodać -m lub -g, aby wyświetlał się w MB lub GB.
Dodanie -s[liczba] sprawi, że zużycie będzie odświeżane co ustaloną liczbę sekund.
free -m
psWyświetla listę działających procesów w obecnej sesji terminala. Dodanie -el spowoduje wyświetlenie wszystkich procesów ps
topMenedżer procesów, wyświetla listę aktualnie aktywnych procesów i ukazuje zużycie zasobów w czasie rzeczywistymtop
htopZaawansowana forma manedżera procesów, prezentuje listę procesów w interaktywnej tabeli.htop
kill [PID]Zatrzymuje proces wskazany za pomocą numeru PID (numer identyfikacyjny procesu – każdy takowy posiada i może być ukazany w menedżerze procesów)kill 1234
killall [nazwa]Zatrzymuje wszystkie procesy o określonej nazwie.killall firefox
pkill [argument] [wzorzec]Wyszukuje i zabija procesy pasujące do podanego wzorca w argumencie.pkill -f „firefox”
pgrepWyszukuje numery PID procesów
bgPrzenosi zatrzymany proces proces do tła, dzięki czemu okno terminala może się zająć innymi procesami. top
[CTRL + Z]
bg

Przenosi menedżer procesów do tła, dzięki czemu okno terminala jest w pełni funkcyjne.
.[lokalizacja][skrypt] &Dodatek & na końcu umożliwia uruchomienie skryptu w tle, pozostawiając teminal pełni funkcyjnym (nie listuje działania skryptu)../skrypt.sh &
fg [%numer_zadania]Przenosi zatrzymany proces z powrotem na pierwszy plan.
Jeśli sesja terminala zawiera wiele procesów w tle, możemy wskazać numer konkretnego zadania (za pomocą komendy jobs wyświetlimy numery zadań).
top
[CTRL + Z]
bg
fg
jobsWyświetla listę zadań wykonywanych w tle lub będących wstrzymanymi. Wyświetla numery zadań. Status „Stopped” oznacza, że proces został wstrzymany, a „Running”, że aktualnie działa w tle.jobs
nice [argument][priorytet] [komenda]Uruchamia proces z określonym priorytetem. Czym niższy numer tym większy jest priorytet. Zazwyczaj dostępny jest zakres od -20 do 19, gdzie zejście poniżej 0 może wymagać uprawnień.nice -n 10 nano plik.txt

Uruchamia notanik nano z normalnym priorytetem.

Wyrażenia regularne w Linux Ubuntu

Wyrażenia regularne (Regular Expressions/regex/regexp) umożliwiają zaawansowane wyszukiwanie oraz zaawansowaną manipulację poleceniami. Pozwalają na ustalenie wzorców, według których polecenia mają się wykonywać.

Przykładowe zastosowania wyrażeń regularnych w systemie Linux i Linux server to: wprowadzenie warunkowości, wyszukiwanie, filtracja, zastępowanie fragmentów teksu na inne, walidacja danych – czyli sprawdzanie, czy spełniają one warunki co do formatu.

WyrażenieOpisPrzykład
*Wildcard – dzika karta/wyrażenie wieloznaczne. Symbolizuje dowolne znaki w dowolnej ilości (również brak znaku) w systemie Linux.cp w*.txt /folder/folder2
Kopiuje wszystkie pliki do wskazanej lokazliacji, które posiadają na początku nazwy literę „w” oraz rozszerzenie .txt
. lub ?Wyrażenie odpowiada dowolnemu pojedynczemu znakowi (Wildcard dla jednego znaku).grep tek.t plik.txt
Kropka symbolizuje dowolną literę, grep wyszuka podobne słowa.

ls pl?k.*
Wyrażenie listuje pliki zaczynające się na pl, a kończące nazwę na k. Z dowolnym roszszerzeniem.
^[znaki]Znak symbolizujący początek linii.grep „^[0-9]” plik.txt
Użyty do wyszukiwania cyfr wylistuje linie zaczynające się od cyfr.
[^znaki]Negacja wyrażenia dla niektórych komend w terminalu Linuxgrep „[^0-9]” plik.txt
Grep wyszuka wszystko oprócz cyfr
$Znak symbolizujący koniec liniigrep koniec$ plik.txt
Wyszuka w pliku linię kończącą się na „koniec”
[ZNAKI]Zaznacza obecność wymienionych znaków.ls [pl]*
Wyrażenie poszuka plików zaczynających się na litery „pl”
[0-9]Wyrażenie regularne symbolizujące wszystkie cyfry.grep „[0-9]” plik.txt
Użyte do wyszukiwania wylistuje linie zawierające cyfry.
[a-z]Wyrażenie symbolizujące tylko wszystkie małe literygrep [a-z] plik.txt
[A-Z]Wyrażenie symbolizujące tylko wszystkie duże literygrep [A-Z] plik.txt
[a-zA-Z0-9]Wyrażenie symbolizujące pełen zakres znaków alfabetu oraz cyfr (przykład łączenia).grep [a-zA-Z0-9] plik.txt
znakOdpowiada dokładnemu dopasowaniu, unika specjalnego znaczenia znaków, np. znaku dolara „$” lub „^”.ls '$’*
Wyświetli pliki, które posiadają znak dolara w nazwie.

Wyrażenia regularne świetnie sprawdzają się w połączeniu z operatorami Linux.

Operatory Linux w terminalu

Operatory w terminalach Linux umożliwiają interakcję z poleceniami oraz strumieniami wejścia/wyjścia (dostarczania lub eksportowania) danych. Istnieje kilka rodzajów operatorów dla komend Linux:

  • Przekierowanie wejścia w Linux umożliwia wstawianie zawartości pliku, bez konieczności kopiowania jej do okna terminala. Przydatne w przypadku konieczności posortowania danych lub wstawienia licznych komend do wykonania.
  • Przekierowania wyjścia pozwalają na zapisanie rezultatów komend/skryptów w plikach (zamiast wyświetlania ich w terminalu). Mogą okazać się bardzo przydatne, gdy potrzebujemy gromadzić logi.
  • Operatory logiczne podobnie jak w programowaniu, umożliwiają wprowadzenie warunkowości przy wykonywaniu poleceń w systemie Linux.

OperatorOpisPrzykład
<Przekierowanie wejścia (input) z plikusort < plik.txt
[Komenda] << [Trigger]Czerpie dane bezpośrednio z terminala i przekazujeje komendzie.grep „tekst” << KONIEC
Przykładowy „tekst” wpisany do terminala.
KONIEC

Operator wejścia po wpisaniu KONIEC do terminala odnotuje, że ma dostarczyć cały tekst komendzie grep, która znajdzie w nim słowo „tekst”.
[komenda1] | [komenda2]Operator potoku. Przekazanie wyników pierwszej komendy jako input następnej komendyls | grep .txt
[komenda1] |& [komenda2]Zaawansowany operator potoku przekazujący również wyniki potoku błędów Linux.ls |& grep .txt
>Przekierowanie wyjścia do pliku i nadpisanie zawartości (jeśli plik istnieje, w przeciwnym razie się utworzy)ls > log.txt
>>Przekierowanie wyjścia do pliku i dopisanie wyników na końcu pliku (jeśli plik istnieje, w przeciwnym razie się utworzy)ls >> log.txt
2>Przekierowanie tylko strumień błędów do pliku z nadpisaniemls 2> error-log.txt
2>>Przekierowuje tylko strumień błędów do pliku z dopisaniemls 2>> error-log.txt
2>&1Umożliwia gromadzenie strumieni błędów wraz ze strumieniami wyników.ls katalog > wynik.txt 2>&1

Komenda sprawdzi czy katalog istnieje, następnie zapisze wynoki w wynik.txt, a jeśli wystąpi kominikat błędu, wówczas zostanie również zapisany w tym samym pliku.

[Komenda] < [PLIK] > [PLIK]
Operator przekierowania wejścia i wyjścia. Połączenie obu operatorów w jednej komendzie. Wstawia input z pliku, następnie zwraca wynik do drugiego plikusort < plik.txt > wynik.txt

Sortuje dane z plik.txt i zwraca wynik sortowania do wynik.txt
{ [komendy] }Operator grupujący wiele komendy i wykonuje je razem. Umożliwia łatwe grupowanie komend do przekierowania wyjścia.{echo „komunikat1” ; echo „komunikat2” } > log.txt

Wyświetla oba komunikaty oraz zapisuje je w pliku log.txt
!!Powoduje ponowne wykonanie ostatniej komenty wpisanej w terminalu.!!
[proces] &Operator uruchamiający proces w tle.firefox &
[komenda 1] && [komenda2]Operator logiczny „AND”. Jeśli pierwsza komenda zostanie wykonana, wówczas kowykona się druga komenda.ls plik.txt && cat plik.txt
[komenda 1] || [komenda 2]Operator logiczny „OR”. Wykonuje kolejną komendę tylko wtedy, gdy pierwsza zakończyła się niepowodzeniem.rm plik.txt || echo „Nie udało się usunąć pliku”

Przydatne komendy administracyjne w Linux terminal

Poniżej prezentuję przydatne komendy umożliwiające sprawne poruszanie się po Linux w dystrybucji Ubuntu (+Ubuntu Server):

Komendy LinuxDziałanie
whoUkazuje litę aktualnie zalogowanych użytkowników. Dodaje adres IP użytkownika, jeśli połączenie odbywa się po SSH.
mv plik1.txt plik2.txt [LOKALIZACJA]Przenoszenie wielu plików do wskazanego katalogu.
ls *.txtListuje tylko pliki z rozszerzeniem .txt, dzięki zastosowaniu wyrażenia wieloznacznego (wildcard).
mv *.txt [LOKALIZACJA]Przenoszenie wszystkich plików o rozszerzeniu .txt do wskazanej lokalizacji.
sudo suSprawia, że wszystkie komendy będą wykonywane z uprawnieniami administratora (bez konieczności dodawania „sudo” i wpisywania hasła).
sudo nano /etc/passwdWyświetla zawartość pliku, w którym są zapisane informacje o wszystkich użytkownikach w systemie.
sudo adduser [UŻYTKOWNIK]Tworzy konto nowego użytkownika.
sudo chage -l [UŻYTKOWNIK]Wyświetla informacje o haśle danego użytkownika.
sudo chage -d 0 [UŻYTKOWNIK]Wygasa hasło wybranego użytkownika i wymusza zmianę hasła przy następnej próbie zalogowania.
sudo chage -E 2023-07-22 -M 90 -W 5 UŻYTKOWNIKUstala datę wygaśnięcia konta (-E 2023-07-22), ilość dni do wygasania hasła (-M 90) i okres czasu na zmianę hasła (-W 5 = 5 dni).

Posiadasz lepsze opisy/przykłady komend Linux lub czegoś brakuje?
Zgłoś się do mnie poprzez formularz kontaktowy.
Pozdrawiam Tomek