Dystrybucje Linux są obecnie powszechnie stosowane w różnych sferach działalności i staje się to coraz częstsze. Ostatnio spotykam się z osobami, które mają sporą wiedzę techniczną, dotyczącą serwerów, jak i samej administracji jednak ich głównym zadaniem było administrowanie urządzeniami z systemem Windows. Często słyszę, że w planach ich organizacje, firmy czy też działalności planują przejść na Linux, a niektóre już przeszły. Z rozmów, które przeprowadziłem wynika, że osoby, które są obeznane, w powershellu nie mają takich problemów z korzystaniem z terminala dystrybucji Linux, jednak są przyzwyczajeni do używania innych poleceń. W związku z powyższym postanowiłem przygotować artykuł z najważniejszymi poleceniami z jakich korzystam w wierszu poleceń linuksa . By uniknąć pewnym nieporozumień, niektóre z tych poleceń są dostępne również w Windows. Pomimo tego zamierzam je tutaj umieścić, by materiał był kompletny. Poznaj polecenia powłoki Linux.
Promocja na kursy z Cyberbezpieczeństwa!
Zapisy przyjmujemy do 13 listopada do 23:59! . Skorzystaj z promocji: https://asdevops.pl/nis2-promocja/
Polecenia powłoki Linux – podstawowe polecenia do nawigacji i zarządzania plikami
Do jednych z najważniejszych poleceń w konsoli należą takie, które umożliwią poruszanie się po systemie plików. Wiadomo, gdy nie posiadamy graficznego interfejsu, nie korzystamy z kursora i przycisków myszki, by wskazać systemowi, co ma wykonać. Musimy do tego użyć odpowiedniego polecenia. W systemie Linux występuje ich spora ilość. Ja na łamach tego artykułu chcę przedstawić kilka, z których sam bardzo często korzystam.
Wyświetlanie listy plików
Do tego celu służy polecenie ls. Najczęściej korzysta się z niego w formie:
- ls – wyświetla zawartość bieżącego katalogu;
- ls -l – wyświetla zawartość bieżącego katalogu ze szczegółowymi informacjami takimi jak uprawnienia, właścicielem i grupie;
- ls -a – wyświetla zawartość bieżącego katalogu z ukrytymi plikami;
- ls -la – wyświetla zawartość bieżącego katalogu ze szczegółowymi informacjami takimi jak uprawnienia, właścicielem i grupie, oraz ukrytymi plikami;
- ls ścieżka/do/katalogu – wyświetla zawartość określonego katalogu.
Zmiana bieżącego katalogu
Do tego celu służy, polecenie cd. Najczęściej korzysta się z niego w formie:
- cd – przenosi do katalogu roboczego zalogowanego użytkownika;
- cd ścieżka/do/katalogu – przenosi do wskazanego katalogu;
- cd .. – przenosi do katalogu nadrzędnego;
- cd ~ – dzięki ~ znajduje się już ścieżka do naszego katalogu roboczego dlatego cd /home/uzytkownik/Dokumenty to samo co cd ~/Dokumenty.
Tworzenie nowego katalogu
Do tego celu służy polecenie mkdir. Najczęściej korzysta się z niego w formie:
- mkdir nazwa_katalogu – tworzy nowy katalog o określonej nazwie;
- mkdir dir1 dir2 dir3 – tworzy wiele katalogów jednocześnie;
- mkdir -p ścieżka/do/katalogu – tworzy nowy katalog, w tym wszelkie pozostałe katalogi, które nie istnieją;
- mkdir -m 755 nazwa_katalogu – tworzy nowy katalog z określonymi uprawnieniami;
Tworzenie nowego pliku
Do tego celu służy polecenie touch. Najczęściej korzysta się z niego w formie:
- touch nazwa_pliku – tworzy nowy pusty plik o określonej nazwie;
- touch plik1 plik2 plik3 – tworzy jednocześnie wiele pustych plików;
- touch -t RRRRMMDDDHHMM nazwa_pliku – tworzy nowy pusty plik o określonej nazwie i ustawia czas jego modyfikacji na określoną datę i godzinę;
- touch -c nazwa_pliku – tworzy nowy pusty plik o określonej nazwie tylko wtedy, gdy taki nie istnieje.
Usuwanie plików
Do tego celu służy polecenie rm. Najczęściej korzysta się z niego w formie:
- rm nazwa_pliku – usuwa określony plik;
- rm plik1 plik2 plik3 – usuwa wiele plików jednocześnie;
- rm -r nazwa_katalogu – rekurencyjnie usuwa określony katalog i jego całą zawartość;
- rm -f nazwa_pliku – usuwa określony plik bez pytania o potwierdzenie;
- rm -rf nazwa_katalogu – rekursywnie usuwa określony katalog i jego zawartość bez pytania o potwierdzenie.
Pamiętaj, że w systemie Linux usunięcie pliku jest nieodwracalne.
Kopiowanie plików
Do tego celu służy polecenie cp. Najczęściej korzysta się z niego w formie:
- cp plik_źródłowy miejsce_docelowe – kopiuje plik źródłowy do wskazanego miejsca docelowego;
- cp -r katalog_źródłowy miejsce_docelowe – kopiuje zawartość katalogu źródłowego do wskazanego miejsca docelowego;
- cp plik1 plik2 plik3 katalog_docelowy – kopiuje wiele plików do wskazanego katalogu;
- cp -a katalog_źródłowy miejsce_docelowe – kopiuje katalog źródłowy i jego zawartość, zachowując wszystkie atrybuty, takie jak znaczniki czasu i uprawnienia;
- cp -n plik_źródłowy miejsce_docelowe – kopiuje plik źródłowy do wskazanego miejsca docelowego tylko wtedy, gdy plik docelowy jeszcze nie istnieje;
Przenoszenie i zmiana nazwy
Do tego celu służy polecenie mv. Najczęściej korzysta się z niego w formie:
- mv plik_źródłowy miejsce_docelowe – przenosi plik źródłowy do wskazanego miejsca docelowego. Tak samo wykorzystuje się to polecenie w stosunku do katalogów;
- mv plik1 plik2 plik3 katalog_docelowy – przenosi wiele plików do wskazanego katalogu;
- mv nazwa_pliku nowa_nazwa_pliku – zmienia nazwę pliku.
Polecenia powłoki Linux – wyszukiwanie i przetwarzanie tekstu
W przypadku braku myszki i możliwości klikania oraz braku pola, w które możemy wpisać poszukiwaną frazę, może być problemem. W wierszy poleceń nie ma takich opcji, dlatego do tego celu należy wykorzystać polecenia. Poniżej prezentuje kilka najczęściej używanych przeze mnie narzędzi.
Wyszukiwanie określonego wzorca
Do tego celu służy polecenie grep. Najczęściej korzysta się z niego w formie:
- grep 'fraza’ nazwa_pliku – szuka określonej frazy we wskazanym pliku;
- grep 'fraza’ nazwa_pliku1 nazwa_pliku2 nazwa_pliku3 – szuka wskazanej frazy w wielu plikach;
- grep -i 'fraza’ nazwa_pliku – szuka określonej frazy we wskazanym pliku, ignorując wielkość liter;
- grep 'fraza’ nazwa_katalogu – szuka określonej frazy we wszystkich plikach ze wskazanego katalogu;
- grep -r 'fraza’ nazwa_katalogu – rekursywnie wyszukuje określoną frazę we wszystkich plikach ze wskazanego katalogu i jego podkatalogach.
Przetwarzanie tekstu
Narzędzie sed
Do tego celu służy polecenie sed. Najczęściej korzysta się z niego w formie:
- sed 's/stary_tekst/nowy_tekst/’ nazwa_pliku – zastępuje pierwsze wystąpienie „starego_tekstu” przez „nowy_tekst”’;
- sed 's/stary_tekst/nowy_tekst/g’ nazwa_pliku – zastępuje wszystkie wystąpienia „stary_tekst” przez „nowy_tekst”;
- sed 's/^stary_tekst/nowy_tekst/’ nazwa_pliku – zastępuje pierwsze wystąpienie „starego_tekstu” na początku każdej linii na „nowy_tekst;
- sed 's/stary_tekst$/nowy_tekst/’ nazwa_pliku – zastępuje pierwsze wystąpienie „stary_tekst” na końcu każdego wiersza przez „nowy_tekst”;
- sed ’10s/stary_tekst/nowy_tekst/’ nazwa_pliku – zastępuje pierwsze wystąpienie „stary_tekst” przez „nowy_tekst” w wierszu 10 określonego pliku;
- sed '10,20s/stary_tekst/nowy_tekst/’nazwa_pliku – zastępuje pierwsze wystąpienie „starego_tekstu” przez „nowy_tekst” w wierszach od 10 do 20 określonego pliku.
Narzędzie awk
Do tego celu służy polecenie awk. Jest o wiele bardziej rozbudowanym narzędziem, dlatego przykłady jego zastosowania będą adekwatne do tego.
- awk 'END{print NR}’ nazwa_pliku.txt – liczba wierszy w pliku;
- awk '{print $1, $3}’ nazwa_pliku.txt – wyodrębnianie kolumn z pliku;
- awk '{print $1, $3}’ nazwa_pliku.txt | sortować – sortowanie zawartości pliku;
- awk '/search_term/ {print $0}’ nazwa_pliku.txt – wyszukiwanie określonego tekstu w pliku;
- awk '{gsub(„stary_tekst”, „nowy_tekst”); print $0}’ nazwa_pliku.txt > nowy_plik.txt – zamiana tekstu w pliku;
- awk '{suma+=1$} KONIEC{drukuj sumę}’ nazwa_pliku.txt – sumowanie wartości w kolumnie;
- awk '{suma+=$1; liczba++} END{drukuj sumę/liczbę}’ nazwa_pliku.txt – obliczanie średniej wartości w kolumnie;
- awk '{liczba[$1]++} KONIEC{for (wartość w liczbie) {drukuj wartość, liczba[wartość]}}’ nazwa_pliku.txt – grupowanie i zliczanie wystąpień unikalnych wartości.
Wyszukiwanie plików i katalogów
Do tego celu użyjemy polecenia find. Zalicza się do dość rozbudowanych, dlatego postanowiłem, aby polecenia również takie były.
- find /ścieżka/do/katalogu -name „nazwa_pliku.exe” – wyszukiwanie plików o określonej nazwie;
- find /ścieżka/do/katalogu -mmin -60 – znajdowanie plików zmodyfikowanych w ciągu ostatniej godziny;
- find /ścieżka/do/katalogu -size +100M – znajdowanie plików większych niż określony rozmiar;
- find /ścieżka/do/katalogu -type f -name '*.txt’ – wyszukiwanie plików określonego typu;
- find /ścieżka/do/katalogu \( -name '*.txt’ -or -name '*.md’ \) -and -size +100M – wyszukiwanie plików spełniających wiele kryteriów;
- find /ścieżka/do/katalogu -name '*.txt’ -exec chmod 644 {} + – wykonywanie polecenia na pasujących plikach;
- find /ścieżka/do/katalogu -user nazwa_użytkownika – wyszukiwanie plików należących do określonego użytkownika;
- find ścieżka/do/katalogu -name '*.txt’ -exec grep -H 'wyszukiwana fraza’ {} + – wyszukiwanie plików zawierających określony tekst.
Archiwizacja i kompresja
Są to dwie dość często wykonywane czynności, jeżeli chcemy zabezpieczyć swoje dane, a także zwolnić nieco miejsca na dysku. W przypadku gdy nie korzystamy z oprogramowania do wykonywania kopii zapasowych, w wielu przypadkach używamy ręcznie wymienionych poniżej poleceń. Taka sytuacja często ma miejsce na komputerach domowych. Jednak Linux posiada wiele narzędzi, które mogą służyć temu celowi.
Archiwizacja plików
Tworzenie archiwum tar. Dzięki poniższemu poleceniu określone pliki zostaną zgrupowane w jedno archiwum.
tar -cvf archiwum.tar plik1.txt plik2.txt
Zastosowane opcje to:
- -c – utwórz nowe archiwum;
- -v – wyświetla postęp i nazwy plików podczas tworzenia archiwum;
- -f – określ nazwę archiwum.
Wyodrębnianie plików z archiwum tar. Powyższe polecenie pakowało, to rozpakowuje archiwum.
tar -xvf archiwum.tar
Zastosowane opcje to:
- -x – wypakuj pliki z archiwum;
- -v – wyświetla postęp i nazwy plików podczas rozpakowywania plików;
- -f – określ nazwę archiwum.
Kompresowanie archiwum tar za pomocą gzip. Dzięki dodatkowej opcji z przy pomocy jednego polecenia jesteśmy w stanie grupować elementy w jedno archiwum, a także je skompresować. Polecenie gzip zostanie omówione poniżej.
tar -zcvf archiwum.tar.gz plik1.txt plik2.txt
Zastosowane opcje to:
- -z – skompresuj archiwum za pomocą gzip;
- -c – utwórz nowe archiwum;
- -v – wyświetla postęp i nazwy plików podczas tworzenia archiwum;
- -f – określ nazwę archiwum.
Wyodrębnianie i dekompresowanie archiwum tar.gz. Wcześniej archiwizowaliśmy i kompresowaliśmy, teraz wykonujemy odwrotną czynność.
tar -zxvf archiwum.tar.gz
Zastosowane opcje to:
- -z – rozpakuj archiwum za pomocą gzip;
- -x – wypakuj pliki z archiwum;
- -v – wyświetla postęp i nazwy plików podczas rozpakowywania plików;
- -f – określ nazwę archiwum.
Kompresja plików
Kompresowanie pliku za pomocą gzip. Dzięki temu plik zostanie skompresowany i utworzony nowy noszący nazwę file.txt.gz:
gzip plik.txt
Dekompresowanie pliku za pomocą gunzip. W powyższy sposób kompresowaliśmy plik, aby wykonać odwrotną czynność, musimy użyć narzędzia gunzip.
gunzip plik.txt.gz
Kompresowanie wielu plików za pomocą gzip. Z każdego wprowadzonego pliku zostanie utworzony nowy skompresowany plik o takich samych nazwach z rozszerzeniem .gz.
gzip plik1.txt plik2.txt
Dekompresowanie wielu plików za pomocą gunzip. Adekwatnie do poprzedniego polecenia w ten sposób jesteśmy w stanie zdekompresować pliki.
gunzip plik1.txt.gz plik2.txt.gz
Kompresja wszystkich plików w katalogu. Dzięki poniższemu poleceniu możemy poddać kompresji wszystkie pliki znajdujące się w katalogu, w którym się znajdujemy:
gzip *
Gdy chcemy poddać kompresji pliki z określonym rozszerzeniem, wpisujemy:
gzip *.txt
W identyczny sposób korzystamy z gunzip w celu dekompresji plików.
W przypadku bzip2 i bunzip2 działają one w identyczny sposób jak przedstawiony przed chwilą gzip. Różnica jest w poziomie kompresji plików. Polecenie gzip kompresuje znacznie szybciej, natomiast bzip2 sprawi, że pliki będą lepiej skompresowane, jednak taka kompresja będzie wykonana wolniej.
Polecenia zarządzania uprawnieniami i prawami własności
W systemie Linux bardzo istotnymi narzędziami są przedstawione poniżej. To dzięki nim niektórzy określają dystrybucje Linux za bezpieczne, jak i również przez nie niektórzy określają go jako bardzo trudny do opanowania. Niezależnie od tego będziesz zmuszony zapoznać się z tymi uprawnieniami. Poniżej wskazuje narzędzia, które do tego służą.
Zmiana uprawnień do plików i katalogów
Zmiana uprawnień do pliku dla właściciela. Po ustawieniu poniższych uprawnień właściciel pliku będzie miał pełne uprawnienia, natomiast wszystkie uprawnienia zostaną usunięte dla innych użytkowników:
chmod 700 plik.txt
Zmiana uprawnień do plików dla grupy. Właściciel i grupa otrzymają pełne prawa, wszyscy pozostali nie mają żadnych:
chmod 770 plik.txt
Pełne prawa ma właściciel, pozostali tylko do odczytu:
chmod 744 plik.txt
Właściciel i grupa uprawnienia do odczytu, a także zapisu, pozostali użytkownicy uprawnienia tylko do odczytu:
chmod 664 plik.txt
Używanie symbolu + do nadawania uprawnień. Wszyscy użytkownicy będą mieli prawo do wykonywania pliku:
chmod +x plik.txt
Użycie symbolu – do usunięcia uprawnień. Zostaną odebrane wszystkim użytkownikom uprawnienia do wykonywania pliku.
chmod -x plik.txt
Polecenia powłoki Linux – zmiana właściciela i grupy plików oraz katalogów
Zmiana właściciela pliku:
chown użytkownik plik.txt
Zmiana właściciela i grupy pliku:
chown właściciel:nowa-grupa plik.txt
Rekurencyjna zmiana właściciela wszystkich plików w katalogu:
chown -R właściciel nazwa-katalogu
Zmiana właściciela pliku na właściciela pliku referencyjnego:
chown --reference=reference_file plik.txt
Polecenia powłoki Linux – zmiana grupy dla plików i katalogów
Zmiana grupy pliku:
chgrp grupa plik.txt
Rekurencyjna zmiana grupy wszystkich plików w katalogu:
chgrp -R katalog grupa
Zmiana grupy pliku na grupę pliku referencyjnego:
chgrp --reference=plik_referencji plik.txt
Monitorowanie poleceń zasobów systemowych
Choć do zaawansowanego monitoringu zalecane jest korzystanie z bardziej zaawansowanych narzędzi, to jednak system Linux posiada kilka poleceń, dzięki którym możemy przeanalizować co się w nim dzieje.
Monitorowanie wydajności i zasobów systemowych
Podstawowe użycie spowoduje wyświetlenie bieżącego wykorzystania zasobów. Co ważne automatycznie aktualizuje dane.
top
Sortowanie według procent zużycia procesora.
top -o %CPU
Sortowanie według procent zużycia pamięci:
top -o %PAM - w języku polskim
top -o %MEM - w języku angielskim.
Wyświetlanie tylko procesów należących do określonego użytkownika:
top -u nazwa-użytkownika
Wyświetlanie informacji o aktualnie uruchomionych procesach
Podstawowe użycie spowoduje wyświetlenie informacji o uruchomionych procesach.
ps
Wyświetlanie wszystkich procesów:
ps -ef
Wyjaśnienie użytych opcji:
-e określa wyświetlanie wszystkich procesów;
-f zapewnia pełną listę.
Wyświetlanie informacji dla określonego identyfikatora procesu:
ps -p <id>
Wyświetlanie informacji o procesach użytkownika:
ps -u użytkownik
Polecenia powłoki Linux – wyświetlanie informacji o wykorzystaniu pamięci
Podstawowe użycie, które spowoduje wyświetlenie o używanej i dostępnej pamięci RAM w systemie i pamięci wymiany.
free
Wyświetlanie informacji o pamięci w formacie bardziej czytelnym dla człowieka:
free -h
Wyświetlanie informacji o pamięci co 5 sekund:
free -s 5
Polecenia powłoki Linux – wyświetlanie informacji o wykorzystanej przestrzeni dyskowej
Podstawowe użycie wyświetli informacje o wykorzystanym miejscu na dysku dla wszystkich zamontowanych systemów plików:
df
Bardziej czytelna wersja powyższego polecenia:
df -h
Wyświetlanie wykorzystanej przestrzeni dyskowej dla określonego systemu plików:
df -h /dev/sda1
Spowoduje to wyświetlenie informacji o wykorzystaniu miejsca na dysku dla systemu plików znajdującego się w /dev/sda1.
Edytory tekstów
W systemie Linux istnieje bardzo dużo edytorów, dzięki którym możemy wykonać tytułową czynność. Niektóre są bardziej rozbudowane, niektóre służą do prostej edycji, niektóre posiadają także bardziej zaawansowane funkcje. Wszystko zależy od naszych potrzeb.
Prosty edytor tekstu
Nano jest prostym edytorem tekstu, który alternatywnie jest używany dla tych bardziej zaawansowanych. Jest jednym z pierwszych, z jakiego początkujący użytkownicy Linuksa korzystają. Ma prosty interfejs z dokładnym opisem funkcji znajdujący się na dole ekranu. W celu jego uruchomienia posługujemy się po prostu jego nazwą i określamy plik, który chcemy poddać edycji.
Rozbudowany edytor tekstu
Do edytorów używanych przez profesjonalistów należą vi oraz vim. Są one bardzo rozbudowane dlatego omijane przez początkujących użytkowników. W nich sam zapis, a także edycja tekstu nie polega na tym, do czego większość z nas jest przyzwyczajona. Wykonywanie wielu podstawowych czynności wiąże się z naciśnięciem odpowiedniego przycisku klawiatury lub z wprowadzeniem odpowiedniego polecenia. Jednak atutem edytora vim jest to, że posiada ogromną liczbę wtyczek oraz możliwość automatyzacji niektórych zadań. Dlatego też niektórzy twierdzą, że po nauczeniu się jego obsługi nie korzysta się już z żadnego innego. Edytor vim, a także wyżej omawiany nano w wielu wypadkach nie jest instalowany standardowo, w środowiskach gdzie wymagana jest minimalna ilość oprogramowania. Natomiast vi jest narzędziem wbudowanym w jądro systemu i występuje zawsze. Różnica pomiędzy vi a vim jest taka, że vim jest edytorem ciągle rozbudowanym, natomiast vi posiada podstawowe funkcje. Dlatego korzystanie z jednego i drugiego jest identyczne.
Podsumowanie – polecenia powłoki Linux
Choć może się wydawać dla większości lista znana to jednak dla osób, które nie są obeznane w poleceniach powłoki Linux, mogą okazać się przydatne. O większości z nich można napisać artykuły, dlatego informacje tutaj przekazane są w zakresie podstawowym. Mają na celu ukierunkowanie poszukiwań odpowiedniego polecenia w zależności od naszych potrzeb. Pamiętajcie, że podstawowym narzędziem informacyjnym wbudowanym w każdą dystrybucję Linux są dzienniki man. Wystarczy, że w konsoli wprowadzisz man <nazwa-polecenia> a otrzymasz kompletną informację, jakie są dostępne opcje oraz dokładny opis polecenia.
Chcesz wiedzieć więcej na temat administracji? Przeczytaj nasze artykuły, a także weź udział w kursach!