Podstawowe komendy powłoki systemu Linux


Inne

System Linux zdobywa coraz większą popularność. Wraz z jej wzrostem coraz bardziej jest dopracowywana możliwość graficznej konfiguracji systemu, bez konieczności ręcznej edycji plików konfiguracyjnych, czy też korzystania z systemowego terminala. Niemniej znajomość podstawowych komend może okazać się przydatna w przypadku braku dostępu do środowiska graficznego np. na zdalnym serwerze.

W przypadku, gdy nie korzystasz obecnie z żadnego systemu Linux, a nie chcesz instalować nowego systemu na komputerze, to możesz skorzystać z jednego z wielu systemów (np. Ubuntu, Fedora), które mają możliwość uruchomienia systemu w tzw. trybie live, gdzie system wczytywany jest z nośnika do pamięci RAM, bez zapisywania żadnych zmian na dysku twardym. Należy jednak pamiętać, że wszelkie zmiany wprowadzone w tak uruchomionym systemie zostaną utracone przy ponownym rozruchu komputera.

Jeżeli masz hosting na AttHost, to możesz skorzystać z dostępnego SSH, które umożliwia dostęp do powłoki systemu linux. Dane do połączenia się z serwerem możesz odnaleźć w panelu klienta AttHost, w zakładce SSH. Do połączenia z serwerem w systemie Windows możesz wykorzystać np. program PuTTY. Wystarczy uzupełnić adres serwera i numer portu, a po rozpoczęciu połączenia wpisać login oraz hasło.

Zaczynamy!

Po uruchomieniu terminala, bądź po połączeniu się poprzez SSH z serwerem powinien ukazać się nam widok podobny do poniższego.

terminal

Widzimy tutaj nasz login, adres hosta oraz naszą lokalizację. Znak “~” oznacza katalog domowy użytkownika. Jeżeli chcemy sprawdzić konkretnie w jakim katalogu jesteśmy możemy skorzystać z komendy “pwd”.

terminal - pwd

Jak widzimy znajdujemy się obecnie w katalogu “/home/moj-login”. Sprawdźmy teraz zawartość katalogu, posłużymy się poleceniem “ls”.

terminal - ls

W katalogu “/home/moj-login” znajdują się trzy katalogi: logs, sockets, websites. W jaki sposób możemy teraz przejść do innego katalogu? Nic prostszego, wystarczy użyć polecenia “cd”, po którym należy wpisać nazwę katalogu do którego chcemy przejść:

cd nazwa-katalogu

Spróbujmy, więc przejść do katalogu “websites”.

terminal - cd

Możemy zauważyć, że katalog został zmieniony na “~/websites”, czyli “/home/moj-login/websites”. Sprawdźmy teraz zawartość katalogu websites.

terminal - ls2

Widzimy tutaj katalog wp_1, możemy teraz do niego przejść ponownie używając komendy “cd”.

cd wp_1

Nie ma jednak konieczności przechodzenia tylko o jeden katalog. Można od razu wpisać ścieżkę do konkretnego katalogu. Wróćmy więc do naszego głównego katalogu. W tym celu wpisujemy samo polecenie “cd”. Następnie przejdziemy od razu do katalogu wp_1.

terminal - cd2

Ścieżki względne i bezwzględne

Przy wpisywaniu ścieżek do katalogów lub plików należy zwrócić uwagę na znak “/” lub jego brak na początku wpisywanej ścieżki, tj. czy jest to ścieżka bezwzględna, czy względna. W przypadku ścieżek bezwzględnych wpisywany jest pełen adres ścieżki np.

/home/moj-login/websites/wp_1

lub

~/websites/wp_1

Natomiast w przypadku ścieżek względnych wpisujemy tylko ścieżkę względem miejsca w którym obecnie przebywamy, np.

websites/wp_1

Odwołania do ścieżek bezwzględnych mogą się odbywać niezależnie od katalogu, w którym obecnie się znajdujemy. W przypadku ścieżek względnych ma to jednak istotne znaczenie. Przykładowo znajdując się w katalogu “/home/moj-login/websites”  po wydaniu polecenia:

cd websites/wp_1

Otrzymamy komunikat o nieistniejącym katalogu, gdyż wewnątrz katalogu “/home/moj-login/websites” nie ma kolejnego katalogu “websites” (czyli “/home/moj-login/websites/websites”).

Ukryte pliki

Wróćmy teraz katalogu “~/websites/wp_1”. Jest to katalog zawierający pliki strony internetowej, a konkretnie WordPressa. Wyświetlmy, więc zawartość katalogu poleceniem “ls”.

terminal - ls - wp

Strony internetowe zazwyczaj zawierają plik “.htaccess”, w którym możemy konfigurować dodatkowe dyrektywy i parametry serwera www. W systemach UNIX (np. Linux, MacOS) pliki i katalogi rozpoczynające się od kropki oznaczają tzw. ukryte pliki i katalogi. Aby wyświetlić również ukryte pliki i katalogi należałoby użyć polecenia “ls” wraz z parametrem “a”, czyli

ls -a

Otrzymamy wówczas:

terminal - ls-a - wp

Jak widać plik .htaccess jest teraz widoczny.

Przeglądanie i edycja plików

Spróbujmy teraz sprawdzić jego zawartość za pomocą komendy “cat”.

terminal - cat - wp

Ukazała się nam standardowa zawartość pliku .htaccess. Spróbujmy teraz przejrzeć jakiś dłuższy plik tekstowy np. plik konfiguracyjny WordPressa.

cat wp-config.php

Przy większych plikach takie przeglądanie może być uciążliwe. Z pomocą przychodzi jednak nam kolejne polecenie “less”. Otwórzmy plik wp-config.php za pomocą tego polecenia:

less wp-config.php

Otworzy się nam początek dokumentu, który możemy swobodnie przeglądać klawiszami strzałek.

terminal - less -wp

Jeżeli chcemy przerwać przeglądnie dokumentu, wystarczy, że naciśniemy klawisz “q”.

Co jednak zrobić, gdy chcemy edytować dokument tekstowy? Z pomocą przychodzą wówczas konsolowe edytory tekstu. Najpopularniejsze z nich to nano oraz vim. My skorzystamy z programu nano. Otwórzmy, więc nasz plik “wp-config.php” w programie nano.

nano wp-config.php

Naszym oczom ukaże się wówczas okno edytora.

terminal - nano - wp

Obsługa programu jest dość intuicyjna, po dokumencie nawigujemy strzałkami, a zmiany w dokumencie wprowadzamy po prostu wpisując je na klawiaturze. Zmiany w dokumencie można zapisać naciskając klawisze CTRL+O, natomiast wyjść z programu za pomocą kombinacji CTRL+X.

Tworzenie plików i katalogów

Wywołanie programu nano z nazwą nieistniejącego pliku np.

nano moj-plik.txt

i zapisanie dowolnych danych w tym pliku, spowoduje utworzenie nowego pliku o takiej nazwie.

Innym sposobem na utworzenie pustego pliku jest komenda “touch”. Wystarczy wpisać:

touch inny-plik.txt

A zostanie utworzony pusty plik o nazwie “inny-plik.txt”.

Co w przypadku, gdy chcemy utworzyć nowy katalog? Możemy wykorzystać w tym celu polecenie mkdir. Utwórzmy katalog o nazwie “zdjecia” w bieżącym katalogu za pomocą następującego polecenia.

mkdir zdjecia

Jak możemy zauważyć pojawił się nowy katalog oraz dwa pliki utworzone wcześniej.

terminal - ls - wp2

Kopiowanie, przenoszenie i usuwanie

Spróbujmy teraz skopiować plik. Wykorzystamy w tym celu komendę “cp”. Użycie wygląda następująco:

cp sciezka/do/pliku sciezka/do/skopiowanego/pliku2

Skopiujemy plik “wp-config.php” do pliku “wp-config-backup.php”:

cp wp-config.php wp-config-backup.php

Możemy sprawdzić czy plik został faktycznie skopiowany podglądając jego zawartość:

less wp-config-backup.php

Kolejną przydatną komendą jest “mv”, która pozwala na przenoszenie plików/katalogów, ale również jest używana do zmiany nazwy. Składnia jest podobna do komendy cp.

mv sciezka/do/pliku inna/sciezka/

lub

mv moj-plik nowa-nazwa-pliku

Przykładowo, zmieńmy nazwę pliku “inny-plik.txt” na “nowa-nazwa-pliku.txt”.

mv inny-plik.txt nowa-nazwa-pliku.txt

Jak widzimy poniżej, nazwa pliku została zmieniona.

terminal - mv - wp

Teraz spróbujmy usunąć ten plik za pomocą poniższej komendy:

rm nowa-nazwa-pliku.txt

Usunięcie będzie trzeba potwierdzić wpisując “t” lub “y”. Ewentualnie jeżeli chcemy usunąć plik od razu bez potwierdzania, to możemy dopisać parametr “-f”.

rm -f nowa-nazwa-pliku.txt

Spróbujemy teraz przekopiować nieco więcej niż pojedynczy plik. Wyobraźmy sobie, że chcemy wykonać kopię plików strony. Przejdźmy jeden katalog wyżej do katalogu “websites”, ale może być to również zupełnie inny katalog, istotne jest tylko, aby nie był pusty. Jeden katalog powyżej można przejść poleceniem:

cd ..

Znajdujemy się teraz w katalogu “websites”. Aby skopiować cały katalog wraz z całą zawartością, czyli ze wszystkimi podkatalogami i plikami, musimy dopisać parametr “R” do komendy “cp”.

cp -R wp_1 wp_1_backup

Po zakończeniu kopiowania powinny być już widoczne dwa katalogi. Podejrzyjmy zawartość nowego katalogu.

ls wp_1_backup

Zgodnie z oczekiwaniami zawartość skopiowanego katalogu jest taka sama jak katalowu “wp_1”.

terminal - ls - wp backup

Jeżeli katalog nie jest nam już potrzebny, to możemy go usunąć wraz z całą zawartością. Podobnie jak wyżej, dodajemy parametr “R”, aby usunąć całą zawartość katalogu oraz parametr “f”, aby pliki zostały usunięte bez konieczności każdorazowego potwierdzania:

rm -Rf wp_1_backup

 

Archiwum ZIP

Na koniec pokażemy jeszcze jak utworzyć archiwum ZIP, a następnie jak je rozpakować. Do kompresowania skorzystamy z programu “zip”. Jeżeli chcielibyśmy spakować tylko wybrane pliki, to składnia wygląda następująco.

zip archiwum.zip plik1 plik2 plik2

Jeżeli chcielibyśmy spakować natomiast katalog wraz z całą zawartością, to wygląda to jak poniżej.

zip -r archiwum.zip katalog1

Przykładowo skompresujemy katalog “wp_1”.

zip -r backup_wp_1.zip wp_1

Widzimy, że pojawił się nowy plik.

terminal - ls - zipped

Teraz pokażemy jak zdekompresować plik ZIP za pomocą programu “unzip”, uprzednio jednak usuniemy nasz katalog wp_1, aby sprawdzić czy zostanie odtworzony (jeżeli jest to dla nas istotny katalog, to próby bezpieczniej byłoby przeprowadzać na innym katalogu, aby nie utracić danych). Składnia jest dość prosta.

unzip archiwum.zip

Usuwamy katalog “wp_1”.

rm -Rf wp_1

I rozpakowujemy plik “backup_wp_1.zip”

unzip backup_wp_1.zip

W katalogu “websites” powinny bić widoczne katalog wp_1 oraz plik “backup_wp_1.zip”.

Podsumowanie

Na tym zakończymy artykuł. Pokazane zostały tutaj zaledwie podstawy, które wskazują w jaki sposób poruszać się po linuksowej konsoli i wykonać podstawowe czynności. Jest to jednak zaledwie ułamek dostępnych narzędzi. Zachęcam również do sięgnięcia do dokumentacji opisywanych narzędzi, aby poznać inne możliwości ich używania.