Linux

Dogadać się z Linuksem. Konsola, podstawy cz.1

Terminal/konsola w systemie Linux spełnia tą samą rolę co wiersz poleceń w systemach Windows. Za pomocą poleceń mamy możliwość zarządzania systemem. Pierwsze uruchomienie konsoli nie zachęca nas do dalszej pracy no, bo cóż ciekawego może być w oknie z migającym kursorem.  Wielu z Was zada pytanie – Do czego ta wiedza mi się przyda? Przecież wszystko mogę sobie wyklinać w interfejsie graficznym (GUI). No niestety, nie zawsze tak jest. W systemach z rodziny Windows jest łatwiej zaś w przypadku systemu Linux (szczególnie wersje serwerowe) jest to umiejętność nad al niezbędna. Umiejętne posługiwanie się konsolą zwiększa szybkość i skuteczność prowadzonej konfiguracji a także (dzięki skryptom) pozwala na automatyzację wykonywanych zadań.

Artykuł ten jest częścią większą cyklu, w którym będę chciał pokazać jak za pomocą konsoli komunikować się z systemem Linux. Zrealizujemy szereg praktycznych ćwiczeń, samodzielne ich wykonanie sprawi, że powłoka nie będzie miała przed Tobą tajemnic. W tym wpisie zaczniemy od początku i przedstawię podstawowe polecenia, których opanowanie jest niezbędne, aby pójść dalej. Poligonem doświadczalnym (dla tego artykułu jak i pozostałych) będzie system Ubuntu Serwer w wersji 22.04 Zaczynamy.

Konsola pierwsze spojrzenie.

Pierwsze spotkanie z konsolą systemu Linux w szczególności dla użytkownika, który dopiero co poznaje system Linux nie jest zachęcające, ale wystarczy trochę samo zaparcia, ćwiczeń i obycia by stwierdzić, że korzystanie z tej formy komunikacji z systemem ma swoje zalety.

Po uruchomieniu konsoli system powita nas znakiem zachęty, zapraszającym do wydawania poleceń.

Znak zachęty w przypadku zwykłego użytkownika przyjmuje postać $ natomiast gdy użytkownikiem jest root (odpowiednik administratora w systemie Windows) znak zachęty zostaje zamieniony na #

Rozpoczniemy od czegoś prostego i za pomocą poleceń sprawdzimy wersję systemu Linux jak i wersję jądra.

Wydaj polecenie: cat /etc/*-release (pkt. 1) aby sprawdzić wersję systemu Linux. Wersję jądra wyświetlisz za pomocą komend: uname -r (pkt. 2) lub cat /proc/version (pkt. 3)

Tu pozwolę sobie na małą uwagę na tym etapie przedstawione polecenia z pewnością wydadzą Ci się „pokrętne” i skomplikowane, ale po przeczytaniu tego wpisu do końca jak i kolejnych wiele rzeczy się wyjaśni. Nie zrażaj się, idziemy dalej :-).

Poruszanie się po strukturze katalogów

Dir, ls, ll oraz tree – zawartość katalogu

Wyświetlenie plików i katalogów znajdujących się w bieżącej lokalizacji następuje po wydaniu polecenia: dir (podobnie jak w systemie Windows).

Wyświetlenie zawartości katalogu może również odbyć się z wykorzystaniem polecenia: ls

Polecenia dir i ls zawierają szereg opcji (zobacz pomoc) lecz te najczęściej używane warianty polecenia to:

Polecenie, które dostarczy bardziej szczegółowe informacje o plikach/katalogach to: ll (dwie litery l jak lalka). Już niebawem będziemy korzystać z niego często, gdy przejdziemy do omówienia praw do plików/katalogów. Wydanie polecenia pokazuje pliki ukryte – zaczynające się od znaku . (kropki).

Dodatkowo fajnym poleceniem, którego użycie spowoduje wyświetlenie drzewa katalogów i plików jest komenda: tree (w niektórych systemach trzeba doinstalować niezbędne pakiety – sudo apt-get install tree)

Dodatkowe parametry polecenia tree:

-d – pokaż tylko katalogi,

-f – pokaż ścieżkę dostępu,

-a – pokaż wszystko,

-L <poziom> – poziom listowania katalogów,

-H – eksport do HTML-a,

-X – eksport do XML-a.

Cd – poruszanie się pomiędzy katalogami

Przejście pomiędzy katalogami realizujemy za pomocą polecenia: cd <ścieżka_do_katalogu> możliwe jest wpisanie tylko pierwszych liter nazwy katalogu i dopełnienie reszty za pomocą klawisza TAB (wielkość liter ma znaczenie). Przejście do katalogu wyżej następuje po wydaniu polecenia: cd ..

Użycie samego polecenia cd przeniesie nas do katalogu aktualnie zalogowanego użytkownika.

Struktura plików systemu Linux rozpoczyna się od „korzenia drzewa” (ang. root), który reprezentowany jest znakiem: / (slash, prawy ukośnik) – od tego znaku rozpoczynamy budowę ścieżki do danego pliku. Spójrz jeszcze raz na rysunek ilustrujący efekt wydania polecenia tree – użyty znak / nakazuje wyświetlenie wszystkich katalogów które znajdują się w głównym katalogu.   Wydanie np. polecenia: cd / spowoduje przejście do katalogu głównego (o przeznaczeniu poszczególnych katalogów powiemy sobie szerzej w innym wpisie).

Część z Was z pewnością zapyta o znak tyldy (~), który obecny jest np. przy poleceniu: ll znak ten symbolizuje katalog domowy użytkownika. Zazwyczaj użytkownik systemu Linux posiada swój własny katalog, w którym przechowuje pliki – domyślna ścieżka do katalogu to: /home/<nazwa_użytkownika> użycie polecenia: cd ~ spowoduje przejście do tego folderu.

Pliki, katalogi i operacje na nich

Mkdir – tworzenie folderu

Aby utworzyć katalog/katalogi należy użyć polecenie: mkdir <nazwa_katalogu> Jak widać poniżej za jednym zamachem można wiele katalogów (nazwy katalogów zapisujemy po spacji).

Aby utworzyć katalog, w nazwie którego zawarta jest spacja należy nazwę umieścić w cudzysłowie. Choć spacja w nazwie jest dozwolona to nie używaj jej, gdyż jest to źródłem wielu problemów – o spacji w systemie Linuks zapominamy :-)) Lepszym pomysłem jest zastąpienie jej znakiem „podłogi” (_)

Do utworzenia pliku wykorzystujemy polecenie: ls > <nazwa_pliku> (symbol > – znak przekierowania) – pkt.1 . Podobnie jak w przypadku tworzenia katalogu, nazwę pliku zawierającego spację umieszczamy w cudzysłowie .

Plik utworzymy również za pomocą polecenia: touch <nazwa_pliku>(pkt. 2). Plik ukryty tworzy się umieszczając przed jego nazwą znak kropki – np. touch .ukryty

Cp – kopiowanie plików

Kopiowanie plików pomiędzy katalogami wykonamy za pomocą komendy: cp <element_kopiowany> <lokalizacja> Na przykładzie poniżej, utworzony wcześniej plik o nazwie plik1 został skopiowany do katalogu o nazwie katalog1.

Wydanie komendy: cp <nazwa_pliku> <nazwa_pliku> spowoduje utworzenie kopii danego pliku.

Inne przydatne wariacje polecenia cp poniżej:

cp tes* podkatalog/ – skopiuje wszystkie pliki zaczynające się na tes do ./podkatalog/

cp -r katalog1 ~ – wydanie polecenia spowoduje skopiowanie katalogu wraz z całą zawartością do katalogu domowego (/home/nazwa użytkownika)

cp * katalog1 – kopiowanie wszystkich plików z bieżącej lokalizacji do folderu katalog1 (dodanie -r skopiuje również podkatalogi)

Mv – przenoszenie plików

Za pomocą polecenia: mv przeniesiemy plik bądź zmienimy jego nazwę. Wydanie komendy: mv <bieżąca_nazwa_pliku> <nowa_nazwa_pliku> zmieni nam nazwę pliku. Polecenia możemy również używać do operacji, które odnoszą się do katalogów.

Użyj następującej składni: mv <przenoszone_pliki> <miejsce_docelowe>, aby zmienić lokalizację plików/katalogów. Poniżej przeniesienie pliku: plik1 z katalogu domowego do folderu katalog1

Przy przenoszeniu plików warto do plecenia dodać parametr: -u, użycie go sprawi, że plik zostanie przeniesiony, gdy źródło jest nowsze od celu lub brak celu.

Rm – kasowanie plików/katalogów

Aby skasować pliki należy posłużyć się poleceniem: rm <nazwa_pliku> Poniżej przykład usunięcia pliku: plik1_kopia

Dostępne są również przełączniki:

rm -r katalog – kasuje wszystko w zdefiniowanym katalogu tj. wszystkie pliki wraz z podkatalogami (–recursive)

rm -f plik – brak pytania o potwierdzenie kasowanych danych (–force)

Aby usunąć pusty katalog należy skorzystać z komendy: rmdir <nazwa_katalogu>

Katalogu, który zawiera pliki w ten sposób nie skasujemy w powyższy sposób.

Aby usunąć cały katalog wraz z zawartością posłuż się poleceniem: rm -rf <nazwa_katalogu> Flaga -f wyłącza pytanie o potwierdzenie kasowania zaś -r nakazuje wykonanie polecenia rm na wszystkich elementach znajdujących się w kasowanym folderze.

Historia poleceń

Wszystkie polecenia, które wydaliśmy są zapamiętywane, istniej więc możliwość odwołania się do już wydanego polecenia. Klawisze: strzałka góra oraz dół wyświetlą ostatnie wydane polecenia.

Aby wyświetlić listę wydanych poleceń użyj komendy: history Po wydaniu polecenia zostanie wyświetlona ponumerowana lista wydanych komend.

Poniżej kilka przykładów wykorzystania polecenia: history:

history <liczba> – wyświetlenie zdefiniowanej liczby ostatnio wydanych poleceń,

history -c – wyczyszczenie historii,

!! – ostatnio wydane polecenie,

!<liczba> – wywołanie polecenia o danym numerze,

Pamiętaj o pomocy

Na początku zmagań z konsolą systemu Linux będzie czekać na Ciebie wiele wyzwań pamiętaj, że zawsze możesz sięgnąć do pomocy.

Pierwszą opcją jest użycie przełącznika: –help użycie go w połączeniu z danym poleceniem wyświetli pomoc – np. po wydaniu komendy: cd –help system wyświetli opis użycia polecenia wraz z dostępnymi przełącznikami a czasem i gotowymi przykładami. 

Drugą opcją jest użycie polecenia: man (od ang. manual) Polecenie łączymy z komendą – np. wydanie polecenia: man cp wyświetli instrukcję użycia polecenia kopiowania.

Na koniec podpowiedź – prędzej czy później spotykasz się z sytuacją, w której wydanie danego polecenia spowoduje wyświetlenie dużej ilości informacji nie mieszczących się na ekranie. Aby temu zapobiec dodaj do polecenia: | more (w kolejnym wpisie dokładniej wytłumaczę przeznaczenie pionowej kreski). Np. użycie polecenia: history | more spowoduje zatrzymanie wyświetlania po zapełnieniu ekranu. Spacja wyświetla kolejny ekran zaś Enter linię.

Zapraszam do lektury kolejnej części.

Jeden komentarz

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *