
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
Marcin
Czekam na ciąg dalszy.