Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Rozglądanie się w wierszu poleceń

Moduł 1: Pierwszy serwer · Czas czytania: 11 min

Cel lekcji: Po tej lekcji będą Państwo potrafili poruszać się po serwerze Linux: przechodzić między katalogami, czytać i edytować pliki, sprawdzać, ile jest wolnego miejsca na dysku i pamięci, oraz samodzielnie szukać pomocy do polecenia.

Kluczowe pojęcia: shell, prompt, katalog i ścieżka, ścieżka bezwzględna i względna, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, uzupełnianie klawiszem Tab, uname, df, free, uptime, potok (pipe), grep

Shell i prompt

Po zalogowaniu rozmawiają Państwo z shellem: programem, który odczytuje i wykonuje Państwa polecenia. W Debianie i Ubuntu jest to zazwyczaj bash. Na lewo od kursora widać prompt (znak zachęty):

anna@web1:~$
root@web1:~#

Informuje on o trzech rzeczach: kim Państwo są (anna lub root), na jakim serwerze (web1) i w jakim katalogu się znajdują (~ to Państwa katalog domowy). Ostatni znak jest ważny: $ oznacza zwykłego użytkownika, # oznacza roota. Jeśli widzą Państwo #, każde polecenie wykonuje się ze wszystkimi uprawnieniami. Prosimy wtedy pisać spokojnie i uważnie.

Katalogi i ścieżki

Wszystko w Linuksie wisi na jednym drzewie, które zaczyna się od / (katalog główny, którego nie należy mylić z użytkownikiem root). Kilka katalogów będzie się w tym kursie stale pojawiać:

KatalogCo zawiera
/etcKonfiguracja: SSH (/etc/ssh), serwer WWW (/etc/nginx), użytkownicy (/etc/passwd)
/var/logPliki logów (obok journala, lekcja 6.2)
/var/libDane programów, na przykład baz danych i Dockera
/homeKatalogi domowe zwykłych użytkowników, takie jak /home/anna
/rootKatalog domowy roota
/usrZainstalowane programy i biblioteki
/tmpPliki tymczasowe, katalog jest czyszczony
/srv lub /var/wwwTypowe miejsce na strony internetowe i usługi

Ścieżka bezwzględna zaczyna się od /, na przykład /etc/ssh/sshd_config. Ścieżka względna zaczyna się tam, gdzie Państwo właśnie są: jeśli znajdują się Państwo w /etc, to ssh/sshd_config oznacza ten sam plik. .. to katalog nadrzędny, . to bieżący katalog.

anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli  ssh_config  ssh_config.d  sshd_config  sshd_config.d  ssh_host_ed25519_key  ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$

cd bez żadnego argumentu przenosi Państwa z powrotem do katalogu domowego.

Przeglądanie plików

ls -l pokazuje więcej niż same nazwy:

anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root  399 Nov  2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root   91 Nov  2 14:20 ssh_host_ed25519_key.pub

Od lewej do prawej: uprawnienia, liczba dowiązań, właściciel, grupa, rozmiar w bajtach, data i nazwa. Proszę zwrócić uwagę na różnicę: tajny klucz hosta (-rw-------) może czytać tylko root, publiczny (-rw-r--r--) każdy. W lekcji 3.1 nauczą się Państwo dokładnie odczytywać te uprawnienia. ls -la pokazuje także pliki ukryte: nazwy zaczynające się od kropki, takie jak .ssh.

Aby przeczytać zawartość:

  • cat bestand: cały plik naraz, wygodne przy krótkich plikach;
  • less bestand: przewijanie strzałkami i spacją, wyszukiwanie przez /woord, wyjście przez q;
  • head -n 20 bestand i tail -n 20 bestand: pierwsze lub ostatnie wiersze; tail -f śledzi plik na bieżąco, gdy dochodzą nowe wiersze.

Edycja pliku w nano

Konfigurację zmienia się w edytorze tekstu. nano jest najprostszy:

root@web1:~# nano /etc/hosts

Na dole widać skróty klawiszowe; ^ oznacza Ctrl. Zapisanie to Ctrl+O i Enter, wyjście Ctrl+X, wyszukiwanie Ctrl+W. Kto już pracuje z vim, może go używać; vim nie zawsze jest w pełni dostępny w minimalnej instalacji.

Trzy nawyki, które później oszczędzą wielu kłopotów:

  1. Najpierw proszę zrobić kopię: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Proszę przetestować konfigurację przed ponownym uruchomieniem usługi. Wiele programów ma do tego własne polecenie: sshd -t, nginx -t (lekcje 2.2 i 7.2).
  3. Proszę zmieniać jedną rzecz naraz, aby wiedzieć, co spowodowało błąd.

W jakim stanie jest Państwa serwer?

Kilka poleceń, z których korzysta się w każdej sytuacji:

anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
 10:12:44 up 3 days,  2:10,  1 user,  load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G  3.1G   35G   9% /
anna@web1:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.9Gi       1.0Mi       720Mi       3.4Gi
Swap:             0B          0B          0B
  • uname -a: jakie jądro (kernel) jest uruchomione.
  • uptime: jak długo serwer już działa oraz load average (średnie obciążenie) z 1, 5 i 15 minut. W przybliżeniu: obciążenie, które przez dłuższy czas przekracza liczbę rdzeni procesora, oznacza, że procesy czekają.
  • df -h: wolne miejsce na dysku (-h oznacza "human readable", z G i M). Pełny dysk to jedna z najczęstszych przyczyn, dla których serwer "nagle" przestaje działać.
  • free -h: pamięć. Proszę patrzeć na kolumnę available, nie free: Linux wykorzystuje wolną pamięć jako pamięć podręczną (buff/cache) i oddaje ją, gdy program jej potrzebuje.

A sieć, z lekcji 1.2: ip -brief address.

Szukanie pomocy

Nie trzeba pamiętać wszystkich opcji. Trzeba jednak wiedzieć, gdzie ich szukać:

  • man ssh otwiera podręcznik (manual page) polecenia. Przewija się go jak w less, wyszukuje przez /. man sshd_config opisuje każde ustawienie, które można wpisać w tym pliku.
  • ls --help wyświetla w przypadku większości poleceń krótką listę opcji.
  • Klawisz Tab uzupełnia nazwy poleceń i plików. Dwukrotne naciśnięcie Tab pokazuje możliwe opcje. To pozwala uniknąć literówek w długich ścieżkach.
  • Strzałka w górę przywołuje wcześniejsze polecenia; history pokazuje je wszystkie.

W minimalnej instalacji podręczników czasem brakuje. W Debianie i Ubuntu instaluje się je poleceniem apt install man-db (moduł 4).

Potoki i grep

Polecenia można łączyć za pomocą potoku (pipe, |): wyjście jednego staje się wejściem następnego. grep filtruje wiersze zawierające dane słowo:

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Wiersze zaczynające się od # to komentarze: nic nie robią i często pokazują wartość domyślną. W lekcji 2.2 zobaczą Państwo, dlaczego w przypadku SSH może to być mylące.

Pułapki

  • Wklejanie bez czytania. Polecenia z internetu robią dokładnie to, co jest w nich napisane, nawet jeśli różni się to od tego, co obiecuje tytuł artykułu. Prosimy przeczytać każde polecenie przed jego wykonaniem, zwłaszcza jako root.
  • rm nie ma kosza. Co usunięte, to usunięte. Prosimy zachować szczególną ostrożność przy rm -r (katalog z całą zawartością) i przy symbolach wieloznacznych, takich jak *.
  • Wielkość liter ma znaczenie. /etc/SSH nie istnieje; /etc/ssh owszem.
  • Spacje w ścieżkach trzeba ująć w cudzysłów: cat "/srv/mijn site/index.html". Lepiej: na serwerze nie używać spacji w nazwach.

Podsumowanie

  • Prompt mówi, kim Państwo są, na jakim serwerze i gdzie; # oznacza roota.
  • Konfiguracja znajduje się w /etc, logi w /var/log, dane programów w /var/lib, katalogi domowe w /home.
  • Do czytania służą cat, less, head i tail; edytuje się w nano, po zrobieniu kopii, a konfigurację testuje się przed ponownym uruchomieniem.
  • df -h, free -h, uptime i ip -brief address pokazują, w jakim stanie jest Państwa serwer.
  • Pomoc znajduje się w man i --help; Tab uzupełnia; za pomocą | i grep filtruje się wyjście.

Quiz

1. Państwa prompt to root@web1:/var/log#. Co już Państwo wiedzą?



2. Znajdują się Państwo w /etc. Która ścieżka wskazuje ten sam plik co /etc/nginx/nginx.conf?



3. free -h pokazuje free 120Mi i available 2.9Gi. Czy serwer ma za mało pamięci?



4. Co jest najrozsądniejsze przed zmianą /etc/ssh/sshd_config?



5. Gdzie sprawdzą Państwo, jakie ustawienia obsługuje sshd_config?



Zadanie

Zadanie O1.4: Poznanie serwera. Prosimy wykonać polecenia z lekcji na własnym serwerze i uzupełnić: dystrybucję i wersję, jądro, wolne miejsce na dysku, dostępną pamięć, obciążenie, IPv4 i IPv6 oraz to, które pliki w /etc/ssh może czytać tylko root. Następnie prosimy odpowiedzieć na dwa pytania dotyczące tego, co Państwo zobaczyli.

Zadanie O1.4: Poznanie serwera

To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.



Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.

Przeczytaj więcej

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…