Lab 01 - Rozszerzone wprowadzenie do Linuksa

Rozszerzone wprowadzenie do Linuksa

Przypomnienie podstawowych ułatwień pracy

W ramach pracy z terminalem warto przypomnieć sobie kilka przydatnych "sztuczek":


Pomoc systemowa

W systemie Linux dla każdego polecenia dostępna jest pomoc systemowa opisująca różne aspekty i zastosowania danego narzędzia oraz dostępne przełączniki. Jednym z mechanizmów pozwalających na wyświetlenie plików pomocy jest wywołanie polecenia z przełącznikiem --help, np:

ls --help

powoduje wyświetlenie opisu działania wszystkich przełączników, odniesień do dokumentcji zewnętrznej i innych przydatnych informacji.

Bardziej rozbudowaną dokumentację poleceń można uzyskać poprzez wywołanie:

man nazwa_polecenia

Powoduje to uruchomenie interaktywnej przeglądarki plików pomocy dla podanego programu lub usługi. Pomoc systemowa wyświetlana jest za pomocą przeglądarki more, którą obsługuje się za pomocą następujących poleceń klawiszowych:

Informacje o sieci

Polecenie ip pozwala uzyskać informacje o aktualnym statusie interfejsów sieciowych (w tym o adresie IP komputera).


🛠🔥 Zadanie 1 🛠🔥

Zapoznaj się z pomocą dla polecenia ip. Korzystając szczególnie z sekcji "EXAMPLES" wyświetl aktualne adresy interfejsów sieciowych komputera.


Obsługa plików

Podstawowe operacje obsługi plików można realizować z wykorzystaniem następujących poleceń:

Przydatnym przełącznikiem polecenia cp jest przełącznik -r, który służy do kopiowania całych struktur katalogów.

Przydatnym przełącznikiem polecenia rm jest przełącznik -r, który służy do usuwania całych struktur katalogów.

Polecenia dotyczące plików (i katalogów) można także wydawać z wykorzystaniem tzw. wzorców uogólniających, które tworzy się z zastosowaniem następujących operatorów:

* - zastępuje dowolny ciąg znaków (także pusty),

? - zastępuje dokładnie jeden dowolny znak,

[<znaki>] - zastępuje dokładnie jeden znak z podanego zakresu, np.: [xyz]

[^<znaki>] - znak ^ na początku oznacza dopełnienie zbioru, czyli dla przykładu [^xyz], oznacza dowolny znak nie będący literą x, y i z.

Oto przykładowe polecenia z wykorzystaniem wzorców uogólniających:

cp ./*.txt ~ - kopiowanie wszystkich plików z rozszerzeniem .txt z katalogu bieżącego do katalogu domowego użytkownika,

rm ~/[0-9]* - usunięcie wszystkich plików z katalogu domowego, których nazwa rozpoczyna się od cyfry.

Edytory tekstu nano, vim

W pracy z systemami, które nie posiadają środowiska graficznego lub poprzez zdalny terminal często zachodzi konieczność edycji plików tekstowych z poziomu terminala. Sprawna edycja plików tekstowych możliwa jest dzięki konsolowym edytorom takim jak Emacs, Vim czy Nano.

Osoby posługujące się takimi edytorami na co dzień znają mnóstwo skrótów i trików, które powodują, że praca z takim programem może być sprawniejsza niż z edytorem graficznym.

Nano

Na potrzeby sporadycznej edycji plików, np. konfiguracyjnych, najprostszy w użyciu jest program Nano. Oferuje on quasi-graficzny interfejs z podpowiedziami skrótów klawiszowych.

Przykładowe użycie (jeśli plik nie istnieje, zostanie utworzony):

nano plik.txt

Najważniejsze skróty:

Vim/Neovim

Bardziej sprawna (aczkolwiek wymagająca pewnej wstępnej wiedzy) edycja plików jest możliwa w edytorze Vim. Istnieje też jego alternatywna wersja: Neovim.

Przykładowe użycie (jeśli plik nie istnieje, zostanie utworzony):

vim plik.txt

lub dla wersji Neovim:

nvim plik.txt

Najważniejsze skróty klawiszowe:

Komendy (zatwierdzane enterem):


🛠🔥 Zadanie 2 🛠🔥

Korzystając z Vim-a wyedytuj dowolny plik tekstowy.

🛠🔥 Zadanie 3 🛠🔥

Zmierz czas edycji dowolnego pliku używając polecenia time:

time vim plik.txt

Wyłączanie, ponowne uruchamianie i wstrzymywanie pracy komputera

W systemach bez graficznego interfejsu użytkownika (tzw. systemy headless) przyda się znajomość komend służących do bezpiecznego zarządzania pracą urządzenia.

Zdecydowana większość dystrybucji systemu Linux używa demona systemowego systemd. W związku z tym warto poznać komendy:

Usypianie urządzenia jest wspierane na komputerach osobistych, ale może nie być zaimplementowane na komputerach jednopłytkowych (na przykład RaspberryPi).

Dla wspomnianych głównych poleceń istnieją wersje skrótowe (tak zwane aliasy):


🛠🔥 Zadanie 4 🛠🔥

Przetestuj działanie polecenia systemctl suspend.


Instalacja pakietów

W dystrybucjach systemu Linux oprogramowanie instaluje się z centralnych repozytoriów. Należy unikać "zaśmiecania" systemu za pomocą zewnętrznych instalatorów pobieranych ze stron internetowych (na przykład w postaci plików .run).

W dystrybucji Ubuntu do instalowania paczek służy narzędzie apt. Część programów (zazwyczaj okienkowych) jest również dostępna jako pakiety snap. Ubuntu posiada graficzny "sklep" z aplikacjami o nazwie Software.


🛠🔥 Zadanie 5 🛠🔥

Wykonaj polecenie apt --help. Zapoznaj się z dostępnymi opcjami. Spróbuj wyszukać dowolny pakiet (na przykład neovim).


Zdalny dostęp do urządzeń

System Linux jest wyposażony w narzędzia umożliwiające zdalny dostęp do konsoli innego urządzenia oraz transfer plików.

Polecenie ssh

Polecenie ssh służy do uzyskiwania zdalnego dostępu do innego urządzenia. Składnia polecenia wygląda następująco:

ssh <user>@<address>

na przykład:

ssh [email protected]

podłączy nas do naszego własnego komputera.

Jeśli nazwa użytkownika na zdalnym urządzeniu jest identyczna z naszą nazwą użytkownika możemy ją pominąć w komendzie:

ssh 127.0.0.1

🛠🔥 Zadanie 6 🛠🔥

Zapytaj kolegów z sąsiedniego stanowiska o ich adres IP. Podłącz się do ich komputera i wyłącz go.

UWAGA 1: hasło do konta to put.

UWAGA 2: przy zdalnym dostępie może występować konieczność uruchomienia komendy wyłączającej komputer jako administrator - można poprzedzić ją poleceniem sudo.


Transfer plików pomiędzy urządzeniami

Podstawowym poleceniem służącym do transferu plików między urządzeniami jest scp. Składnia jest połączeniem cp oraz ssh:

scp <local_file> <user>@<address>:<target_directory>
scp -r <local_directory> <user>@<address>:<target_directory>

scp <user>@<address>:<remote_file> <local_directory>
scp -r <user>@<address>:<remote_directory> <local_directory>

🛠🔥 Zadanie 7 🛠🔥

Pobierz z innego komputera dowolny plik oraz katalog. Zmień jego zawartość i prześlij z powrotem.


Narzędzie rsync

Narzędzie rsync służy do przyrostowego (umożliwia wznawianie) przesyłania plików i/lub katalogów. Bardzo dobrze nadaje się do transferu dużej ilości danych. Istnieje bardzo wiele opcji jego konfiguracji, jednak w większości przypadków do transferu sprawdzi się następująca składnia:

rsync -PHAXphax <local_directory> <user>@<address>:<target_directory>
rsync -PHAXphax <user>@<address>:<remote_file> <local_directory>

🛠🔥 Zadanie 8 🛠🔥

Sprawdź co oznaczają powyższe flagi narzędzia rsync. Wykorzystaj polecenie do transferu wybranego katalogu.