Linux Professional Institute Learning Logo.
Przejdź do głównej treści
  • Strona Główna
    • Wszystkie Zasoby
    • Materiały Dydaktyczne LPI
    • Zostań Współautorem
    • Partnerzy Wydawniczy
    • Zostań Partnerem Wydawniczym
    • FAQ
    • Współautorzy
    • Harmonogram
    • Kontakt
  • LPI.org
4.3 Lekcja 1
Temat 1: Społeczność Linuxa i kariera w środowisku Open Source
1.1 Ewolucja Linuksa i popularne systemy operacyjne
  • Wkrótce...
1.2 Najważniejsze aplikacje Open Source
  • 1.2 Lekcja 1
1.3 Oprogramowanie i licencje typu open source
  • 1.3 Lekcja 1
1.4 Umiejętności ICT i praca w systemie Linux
  • 1.4 Lekcja 1
Temat 2: Poruszanie się po systemie Linux
2.1 Podstawy wiersza poleceń
  • 2.1 Lekcja 1
2.2 Korzystanie z wiersza poleceń w celu uzyskania pomocy
  • 2.2 Lekcja 1
2.3 Korzystanie z katalogów i listy plików
  • 2.3 Lekcja 1
  • 2.3 Lekcja 2
2.4 Tworzenie, przenoszenie i usuwanie plików
  • 2.4 Lekcja 1
Temat 3: Siła wiersza poleceń
3.1 Archiwizacja plików za pomocą wiersza poleceń
  • 3.1 Lekcja 1
3.2 Wyszukiwanie i wyodrębnianie danych z plików
  • 3.2 Lekcja 1
  • 3.2 Lekcja 2
3.3 Przekształcanie poleceń w skrypt
  • 3.3 Lekcja 1
  • 3.3 Lekcja 2
Temat 4: System operacyjny Linux
4.1 Wybór systemu operacyjnego
  • Wkrótce...
4.2 Zrozumienie sprzętu komputerowego
  • 4.2 Lekcja 1
4.3 Gdzie są przechowywane dane
  • 4.3 Lekcja 1
  • 4.3 Lekcja 2
4.4 Komputer w sieci
  • 4.4 Lekcja 1
Temat 5: Bezpieczeństwo i uprawnienia do plików
5.1 Podstawy bezpieczeństwa i identyfikacja typów użytkowników
  • 5.1 Lekcja 1
5.2 Tworzenie użytkowników i grup
  • 5.2 Lekcja 1
5.3 Zarządzanie uprawnieniami do plików i prawami własności plików
  • 5.3 Lekcja 1
5.4 Katalogi i pliki specjalne
  • 5.4 Lekcja 1
How to get certified
  1. Temat 4: System operacyjny Linux
  2. 4.3 Gdzie są przechowywane dane
  3. 4.3 Lekcja 1

4.3 Lekcja 1

Certyfikat:

Linux Essentials

Wersja:

1.6

Temat:

4 System operacyjny Linux

Cel nauki:

4.3 Gdzie są przechowywane dane

Lekcja:

1 z 2

Wstęp

W systemie operacyjnym wszystko jest traktowane jako dane. W przypadku Linuxa za plik uważa się wszystko: programy, zwykłe pliki, katalogi, urządzenia blokowe (dyski twarde itp.), urządzenia znakowe (konsole itp.), procesy jądra, gniazda, partycje, łącza itp. Struktura katalogów Linuxa, rozpoczynająca się od katalogu głównego (nazywanego również root i oznaczona symbolem /), jest zbiorem plików z danymi. Fakt, że wszystko jest w jednym pliku, jest potężną cechą Linuxa, ponieważ pozwala na optymalizację praktycznie każdego obszaru systemu.

W tej lekcji omówimy różne lokalizacje, w których przechowywane są ważne dane, zgodnie z definicją zawartą w standardzie Filesystem Hierarchy Standard (FHS) [http://refspecs.linuxfoundation.org/fhs.shtml]. Niektóre z tych lokalizacji to prawdziwe katalogi, które trwale przechowują dane na dyskach twardych, podczas gdy inne to pseudo-systemy plików, które są ładowane do pamięci i umożliwiają dostęp do danych podsystemu jądra, takich jak uruchomione procesy, użycie pamięci, konfiguracja sprzętu i tak dalej. Dane przechowywane w tych wirtualnych katalogach są używane przez szereg poleceń, które pozwalają je monitorować i zarządzać nimi.

Programy i ich konfiguracja

Ważnymi danymi w systemie Linux są - bez wątpienia - programy i ich pliki konfiguracyjne. Te pierwsze to pliki wykonywalne zawierające zestawy instrukcji do wykonania przez procesor komputera, podczas gdy te drugie to zazwyczaj dokumenty tekstowe, które sterują działaniem programu. Pliki wykonywalne mogą być plikami binarnymi lub plikami tekstowymi. Wykonywalne pliki tekstowe nazywane są skryptami. Dane konfiguracyjne w systemie Linux również były kiedyś tradycyjnie przechowywane w plikach tekstowych, chociaż obecnie istnieją różne sposoby przedstawiania danych konfiguracyjnych.

Gdzie przechowywane są pliki binarne ?

Podobnie jak wszystkie inne pliki, pliki wykonywalne znajdują się w katalogach poniżej katalogu głównego /. Mówiąc bardziej dokładnie, programy są rozmieszczone w strukturze trójwarstwowej: pierwsza warstwa (/) zawiera programy, które mogą być konieczne w trybie pojedynczego użytkownika, druga warstwa (/usr) zawiera większość programów dla wielu użytkowników, a trzecia warstwa (/usr/local) służy do przechowywania oprogramowania, które nie zostało dostarczone przez daną dystrybucję Linuxa i zostało skompilowane lokalnie.

Typowe lokalizacje programów obejmują:

/sbin

Zawiera niezbędne pliki binarne do administrowania systemem, takie jak parted lub ip.

/bin

Zawiera niezbędne pliki binarne dla wszystkich użytkowników, takie jak ls, mv lub mkdir.

/usr/sbin

Zawiera pliki binarne do administrowania systemem, takie jak deluser lub groupadd.

/usr/bin

Zawiera większość plików wykonywalnych - takich jak free, pstree, sudo lub man - z których mogą korzystać wszyscy użytkownicy.

/usr/local/sbin

Służy do przechowywania lokalnie zainstalowanych programów do administrowania systemem, którymi nie zarządza manager pakietów systemu.

/usr/local/bin

Służy do tego samego celu co /usr/local/sbin, ale przeznaczony jest dla programów zwykłych użytkowników.

Ostatnio w niektórych dystrybucjach Linuxa katalogi /bin oraz /sbin zostały zastąpione przez symboliczne dowiązania do /usr/bin oraz /usr/sbin.

Note

Katalog /opt jest czasami używany do przechowywania opcjonalnych aplikacji innych firm.

Oprócz tych katalogów zwykli użytkownicy mogą mieć swoje własne programy w następujących lokalizacjach:

  • /home/$USER/bin

  • /home/$USER/.local/bin

Tip

Możesz zobaczyć, z jakich katalogów można uruchamiać pliki binarne, odwołując się do zmiennej PATH za pomocą polecenia echo $PATH. Aby uzyskać więcej informacji na temat PATH, przejrzyj lekcje dotyczące zmiennych i dostosowywania powłoki.

Lokalizację programów można znaleźć za pomocą polecenia which:

$ which git
/usr/bin/git

Gdzie znajdują się pliki konfiguracyjne ?

Katalog /etc

We wczesnych latach Unixa istniał folder dla każdego typu danych, taki jak /bin na pliki binarne i /boot dla jednego lub kilku jąder (Kernel). Katalog /etc (co oznacza et cetera) został utworzony jako katalog typu catch-all do przechowywania wszystkich plików, które nie należały do ​​innych kategorii. Większość tych plików to pliki konfiguracyjne. Z biegiem czasu dodawano coraz więcej plików konfiguracyjnych, więc katalog /etc stał się głównym folderem dla plików konfiguracyjnych programów. Jak wspomniano wcześniej, plik konfiguracyjny jest zwykle lokalnym, zwykłym plikiem tekstowym (w przeciwieństwie do pliku binarnego), który kontroluje działanie programu.

W katalogu /etc możemy znaleźć różne wzorce dla nazw plików konfiguracyjnych:

  • Pliki z rozszerzeniem ad hoc lub bez rozszerzenia, np.

    group

    Baza danych grup systemowych.

    hostname

    Nazwa komputera (hosta).

    hosts

    Lista adresów IP i ich przekształcenie na nazwy hostów.

    passwd

    Baza danych użytkowników systemu - składa się z siedmiu pól oddzielonych dwukropkami, które zawierają informacje o użytkowniku.

    profile

    Ogólnosystemowy plik konfiguracyjny dla powłoki Bash.

    shadow

    Zaszyfrowany plik z hasłami użytkowników.

  • Pliki inicjalizacyjne z rozszerzeniem rc:

    bash.bashrc

    Ogólnosystemowy plik .bashrc dla interaktywnych powłok bash.

    nanorc

    Przykładowy plik inicjalizacyjny dla GNU nano (prostego edytora tekstu, który zwykle jest dołączany do każdej dystrybucji Linuxa).

  • Pliki z rozszerzeniem .conf:

    resolv.conf

    Plik konfiguracyjny resolvera (programu rozpoznawania nazw), który umożliwia dostęp do systemu nazw domen internetowych DNS (Domain Name System).

    sysctl.conf

    Plik konfiguracyjny do ustawiania zmiennych systemowych dla jądra.

  • katalogi z przedrostkiem (suffiksem) .d:

    Niektóre programy z unikalnym plikiem konfiguracyjnym (*.conf lub podobnym) rozwinęły się do ​​posiadania dedykowanego katalogu *.d, który umożliwia tworzenie modułowych, bardziej niezawodnych konfiguracji. Na przykład podczas konfigurowania logrotate znajdziesz katalog logrotate.conf, ale również katalog logrotate.d.

    Takie podejście jest szczególnie przydatne, gdy różne aplikacje wymagają konfiguracji dla tej samej określonej usługi. Takie podejście jest szczególnie przydatne, gdy różne aplikacje wymagają konfiguracji dla tej samej określonej usługi. Na przykład, jeśli pakiet serwera WWW zawiera konfigurację logrotate, wówczas ta konfiguracja może być teraz umieszczona w oddzielnym pliku w katalogu logrotate.d. Ten plik może być aktualizowany przez pakiet serwera WWW bez wpływu na resztę konfiguracji logrotate. Podobnie, pakiety mogą dodawać określone zadania poprzez umieszczanie plików w katalogu /etc/cron.d zamiast modyfikowania /etc/crontab.

    W Debianie - i pochodnych Debiana - takie podejście zostało zastosowane do listy zaufanych źródeł, odczytywanej przez narzędzie do zarządzania pakietami apt: oprócz klasycznego /etc/apt/sources.list, znajdziemy teraz katalog /etc/apt/sources.list.d.

    $ ls /etc/apt/sources*
    /etc/apt/sources.list
    /etc/apt/sources.list.d:
Pliki konfiguracyjne w katalogu domowym HOME (Dotfiles)

Na poziomie użytkownika programy przechowują swoje konfiguracje i ustawienia w ukrytych plikach w katalogu domowym użytkownika (pokazanym jako ~). Pamiętaj, że pliki ukryte zaczynają się od kropki (.) - stąd ich nazwa: dotfiles.

Niektóre z tych plików z kropkami (dotfiles) to skrypty Bash, które dostosowują sesję powłoki użytkownika i są odczytywane, gdy tylko użytkownik zaloguje się do systemu:

.bash_history

Przechowuje historię wiersza poleceń.

.bash_logout

Zawiera polecenia do wykonania przy opuszczaniu powłoki logowania.

.bashrc

Skrypt inicjalizacyjny Basha dla powłok niezalogowanych.

.profile

Skrypt inicjalizacyjny Basha dla powłok logowania.

Note

Zapoznaj się z lekcją “Podstawy wiersza poleceń”, aby dowiedzieć się więcej o Bash i jego plikach inicjujących.

Pliki konfiguracyjne innych programów specyficznych dla użytkownika są pobierane podczas uruchamiania odpowiednich programów: .gitconfig, .emacs.d, .ssh itp.

Jądro Linuxa (The Linux Kernel)

Przed uruchomieniem jakiegokolwiek procesu jądro musi najpierw zostać załadowane do chronionego obszaru pamięci. Następnie proces z numerem PID 1 (obecnie najczęściej systemd) uruchamia łańcuch procesów, to znaczy, że jeden proces uruchamia inny lub kilka innych procesów i tak dalej. Gdy tylko procesy są już aktywne, wówczas jądro Linuxa jest odpowiedzialne za przydzielanie im zasobów (klawiatura, mysz, dyski twarde, pamięć, interfejsy sieciowe itp.).

Note

Przed procesem systemd, to /sbin/init był zawsze pierwszym procesem w systemie Linux jako część System V Init menedżera systemu. W rzeczywistości nadal można znaleźć proces /sbin/init, ale obecnie jest on połączony z procesem /lib/systemd/systemd.

Gdzie przechowywane są jądra systemu: /boot

Jądro znajduje się w katalogu /boot, razem z innymi plikami związanymi z bootowaniem. Większość tych plików zawiera w nazwie części numeru wersji jądra (wersja jądra, wersja główna, wersja drugorzędna i numer poprawki).

Katalog /boot zawiera następujące typy plików, których nazwy odpowiadają odpowiedniej wersji jądra:

config-4.9.0-9-amd64

Ustawienia konfiguracji jądra, takie jak opcje i moduły, które zostały skompilowane wraz z jądrem.

initrd.img-4.9.0-9-amd64

Początkowy obraz dysku RAM, który pomaga w procesie uruchamiania, ładując do pamięci tymczasowy główny system plików.

System-map-4.9.0-9-amd64

Plik System-map (w niektórych systemach będzie nazywał się System.map) zawiera lokalizacje adresów pamięci dla nazw symboli jądra. Za każdym razem, gdy jądro jest odbudowywane, zawartość pliku będzie się zmieniać, ponieważ lokalizacje pamięci mogą być inne. Jądro używa tego pliku do wyszukiwania lokalizacji adresów pamięci dla określonego symbolu jądra lub odwrotnie.

vmlinuz-4.9.0-9-amd64

Jest to samo jądro w samorozpakowującym się, oszczędzającym miejsce, skompresowanym formacie (stąd z w vmlinuz; vm oznacza pamięć wirtualną i zaczęło być używane, gdy jądro po raz pierwszy otrzymało obsługę pamięci wirtualnej).

grub

Katalog konfiguracyjny grub2 dla programu bootloader.

Tip

Ponieważ jest to krytyczna cecha systemu operacyjnego, więcej niż jedno jądro i powiązane z nim pliki są przechowywane w katalogu /boot na wypadek uszkodzenia wersji domyślnej i musimy powrócić do wcześniejszej wersji, aby przynajmniej móc uruchomić system i go naprawić.

Katalog /proc

Katalog /proc jest jednym z tak zwanych wirtualnych lub pseudo-systemów plików, ponieważ jego zawartość nie jest zapisywana na dysku twardym, ale ładowana do pamięci. Jest zapełniany dynamicznie przy każdym uruchomieniu komputera i stale odzwierciedla aktualny stan systemu. Katalog /proc zawiera informacje o:

  • Uruchomionych procesach

  • Konfiguracji jądra

  • Sprzęcie systemowym

Oprócz wszystkich danych o procesach, które zobaczymy w następnej lekcji, w tym katalogu przechowywane są również pliki z informacjami o konfiguracji sprzętu i jądra systemu. Niektóre z tych plików obejmują:

/proc/cpuinfo

Przechowuje informacje o procesorze systemu:

$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 158
model name	: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
stepping	: 10
cpu MHz		: 3696.000
cache size	: 12288 KB
(...)
/proc/cmdline

Przechowuje ciągi (znaków) przekazane do jądra podczas rozruchu:

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=5216e1e4-ae0e-441f-b8f5-8061c0034c74 ro quiet
/proc/modules

Pokazuje listę modułów załadowanych do jądra:

$ cat /proc/modules
nls_utf8 16384 1 - Live 0xffffffffc0644000
isofs 40960 1 - Live 0xffffffffc0635000
udf 90112 0 - Live 0xffffffffc061e000
crc_itu_t 16384 1 udf, Live 0xffffffffc04be000
fuse 98304 3 - Live 0xffffffffc0605000
vboxsf 45056 0 - Live 0xffffffffc05f9000 (O)
joydev 20480 0 - Live 0xffffffffc056e000
vboxguest 327680 5 vboxsf, Live 0xffffffffc05a8000 (O)
hid_generic 16384 0 - Live 0xffffffffc0569000
(...)

Katalog /proc/sys

Ten katalog zawiera ustawienia konfiguracyjne jądra w plikach podzielonych na kategorie według podkatalogów:

$ ls /proc/sys
abi  debug  dev  fs  kernel  net  user  vm

Większość tych plików działa jak przełącznik i dlatego zawiera tylko jedną z dwóch możliwych wartości: 0 lub 1 (“on” lub “off”). Na przykład:

/proc/sys/net/ipv4/ip_forward

Wartość, która włącza lub wyłącza działanie naszej maszyny jako routera (tj. możliwość przekazywania pakietów):

$ cat /proc/sys/net/ipv4/ip_forward
0

Jest jednak kilka wyjątków:

/proc/sys/kernel/pid_max

Maksymalny dozwolony numer procesu PID:

$ cat /proc/sys/kernel/pid_max
32768
Warning

Zachowaj szczególną ostrożność podczas zmiany ustawień jądra, ponieważ nieprawidłowa wartość może prowadzić do niestabilności systemu.

Urządzenia sprzętowe

Pamiętaj, że w systemie Linux “wszystko jest plikiem”. Oznacza to, że informacje o urządzeniach sprzętowych, a także własne ustawienia konfiguracyjne jądra są także przechowywane w specjalnych plikach, które znajdują się w katalogach wirtualnych.

Katalog /dev

Katalog /dev (device, urządzenie) zawiera pliki urządzeń (lub węzły) dla wszystkich podłączonych urządzeń sprzętowych. Te pliki urządzeń tworzą interfejs między urządzeniami i procesami, które z nich korzystają. Każdy z tych plików należy do jednej z dwóch kategorii:

Urządzenia blokowe

Czyli takie, w których dane są odczytywane i zapisywane w blokach, które można indywidualnie adresować. Przykłady to: dyski twarde (i ich partycje, takie jak /dev/sda1), pamięci USB, płyty CD, DVD itp.

Urządzenia znakowe

Czyli takie, w których dane są odczytywane i zapisywane sekwencyjnie jeden po drugim, znak po znaku. Przykłady to: klawiatury, konsolę tekstową (/dev/console), porty szeregowe (takie jak /dev/ttyS0 i inne) Itd.

Podczas wyświetlania plików urządzeń upewnij się, że używasz ls z przełącznikiem -l, aby je rozróżnić. Możemy - na przykład - wyszukiwać dyski twarde i partycje:

# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 may 25 17:02 /dev/sda
brw-rw---- 1 root disk 8, 1 may 25 17:02 /dev/sda1
brw-rw---- 1 root disk 8, 2 may 25 17:02 /dev/sda2
(...)

Lub wyszukiwać po terminalach szeregowych (TeleTYpewriter):

# ls -l /dev/tty*
crw-rw-rw- 1 root tty     5,  0 may 25 17:26 /dev/tty
crw--w---- 1 root tty     4,  0 may 25 17:26 /dev/tty0
crw--w---- 1 root tty     4,  1 may 25 17:26 /dev/tty1
(...)

Zwróć uwagę, że pierwszym znakiem jest b dla urządzeń blokowych i c dla urządzeń znakowych.

Tip

Gwiazdka (*) jest globalnym znakiem, który oznacza 0 lub więcej znaków. Stąd jego znaczenie w powyższych poleceniach ls -l /dev/sd* oraz ls -l /dev/tty*. Aby dowiedzieć się więcej o tych znakach specjalnych, zapoznaj się z lekcją na temat globbingu.

Ponadto katalog /dev zawiera kilka specjalnych plików, które są bardzo przydatne do różnych celów programistycznych:

/dev/zero

Zapewnia tyle znaków null, ile zażądano.

/dev/null

Zwany także koszem na dane lub bit bucket. Odrzuca wszystkie przesłane do niego informacje.

/dev/urandom

Generuje liczby pseudolosowe.

Katalog /sys

Katalog sys filesystem (sysfs) jest zamontowany na /sys. Został wprowadzony wraz z pojawieniem się jądra o numerze 2.6 i był dużym ulepszeniem w stosunku do /proc/sys.

Procesy muszą współdziałać z urządzeniami w katalogu /dev, więc jądro potrzebuje katalogu, który zawiera informacje o tych urządzeniach sprzętowych. Ten katalog to /sys a jego dane są uporządkowane według kategorii. Na przykład, aby sprawdzić adres MAC swojej karty sieciowej (enp0s3), możesz wyświetlić następujący plik:

$ cat /sys/class/net/enp0s3/address
08:00:27:02:b2:74

Pamięć i typy pamięci

Aby program zaczął działać, musi zostać załadowany do pamięci. Ogólnie mówiąc o pamięci, mamy na myśli pamięć o dostępie swobodnym RAM (Random Access Memory) i - w porównaniu do mechanicznych dysków twardych - ma tę zaletę, że jest znacznie szybsza. Z drugiej strony jest to pamięć ulotna. Oznacza to, że po wyłączeniu komputera dane znikają.

Niezależnie od powyższego - jeśli chodzi o pamięć masową - w systemie Linux można wyróżnić dwa główne typy pamięci:

Pamięć fizyczna

Znana również jako RAM, Występuje w postaci chipów złożonych z układów scalonych zawierających miliony tranzystorów i kondensatorów. Te z kolei tworzą komórki pamięci (podstawowy budulec pamięci komputera). Każda z tych komórek ma przypisany kod szesnastkowy - adres pamięci - dzięki czemu można się do niego odwołać w razie potrzeby.

Swap

Znana również jako przestrzeń wymiany (swap space). Jest to część pamięci wirtualnej, która znajduje się na dysku twardym i jest używana, gdy nie ma już dostępnej pamięci RAM.

Z drugiej strony istnieje koncepcja pamięci wirtualnej, która jest abstrakcją całkowitej ilości użytecznej pamięci adresującej pamięć (jest to zarówno pamięć RAM, ale także miejsce na dysku twardym), widzianą przez aplikacje.

free analizuje /proc/meminfo i wyświetla ilość wolnej i używanej pamięci w systemie w bardzo przejrzysty sposób:

$ free
              total        used        free      shared  buff/cache   available
Mem:        4050960     1474960     1482260       96900     1093740     2246372
Swap:       4192252           0     4192252

Wyjaśnijmy znaczenie poszczególnych kolumn:

total

Całkowita ilość zainstalowanej pamięci fizycznej i pamięci wymiany (swap).

used

Ilość aktualnie używanej pamięci fizycznej i pamięci wymiany (swap).

free

Ilość aktualnie nieużywanej pamięci fizycznej i pamięci wymiany (swap).

shared

Ilość pamięci fizycznej używanej - głównie - przez tmpfs.

buff/cache

Ilość pamięci fizycznej aktualnie używanej przez bufory jądra oraz pamięć podręczną stron i płyt.

available

Szacuje, ile pamięci fizycznej jest dostępne dla nowych procesów.

Domyślnie opcja free wyświetla wartości w kibibajtach, ale pozwala na różne przełączniki, aby wyświetlać wyniki w różnych jednostkach miary. Niektóre z tych opcji obejmują:

-b

Bytes.

-m

Mebibytes.

-g

Gibibytes.

-h

Format czytelny dla człowieka.

Polecenie free z opcją -h wyświetla tekst, który jest zawsze przyjemny do czytania przez człowieka:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        1,4G        1,5G         75M        1,0G        2,2G
Swap:          4,0G          0B        4,0G
Note

Jeden kibibajt (KiB) odpowiada 1024 bajtom, a kilobajt (KB) to 1000 bajtów. To samo dotyczy mebibajtów, gibibajtów itp.

Ćwiczenia z przewodnikiem

  1. Użyj polecenia which, aby znaleźć lokalizację następujących programów i uzupełnij tabelę:

    Program polecenie which Ścieżka do pliku wykonywalnego (output) Czy użytkownik potrzebuje uprawnień root?

    swapon

    kill

    cut

    usermod

    cron

    ps

  2. Gdzie można znaleźć następujące pliki?

    Plik /etc ~

    .bashrc

    bash.bashrc

    passwd

    .profile

    resolv.conf

    sysctl.conf

  3. Wyjaśnij znaczenie elementów liczbowych dla pliku jądra vmlinuz-4.15.0-50-generic znajdującego się w katalogu /boot:

    Element liczbowy Znaczenie

    4

    15

    0

    50

  4. Jakiego polecenia użyłbyś, aby wyświetlić listę wszystkich dysków twardych i partycji w katalogu /dev?

Ćwiczenia eksploracyjne

  1. Pliki urządzeń dla dysków twardych są reprezentowane na podstawie kontrolerów, które z nich korzystają. Widzieliśmy /dev/sd* dla urządzeń używających SCSI (Small Computer System Interface) i SATA (Serial Advanced Technology Attachment). Dwa pytania to:

    • Jak były reprezentowane stare dyski IDE (Integrated Drive Electronics)?

    • Jak są reprezentowane nowoczesne urządzenia NVMe (Non-Volatile Memory Express)?

  2. Spójrz na plik /proc/meminfo. Porównaj zawartość tego pliku z danymi wyjściowymi polecenia free i określ, który klucz z /proc/meminfo odpowiada następującym obszarom danych wyjściowych w wyniku polecenia free:

    Wynik free Obszar /proc/meminfo

    total

    free

    shared

    buff/cache

    available

Podsumowanie

Podczas tej lekcji zapoznałeś się z lokalizacją programów i ich plikami konfiguracyjnymi w systemie Linux. Ważne fakty do zapamiętania to:

  • Zasadniczo programy można znaleźć w trójpoziomowej strukturze katalogów: /, /usr oraz /usr/local. Każdy z tych poziomów może zawierać katalogi bin oraz sbin.

  • Pliki konfiguracyjne są przechowywane w katalogach: /etc oraz ~.

  • Pliki z kropkami (dotfiles) to pliki ukryte, które zaczynają się od kropki (.).

Omówiliśmy również jądro Linuxa. Ważne fakty to:

  • W systemie Linux wszystko jest plikiem.

  • Jądro Linuxa znajduje się w katalogu /boot razem z innymi plikami związanymi z bootowaniem.

  • Aby procesy zaczęły się wykonywać, jądro musi zostać najpierw załadowane do chronionego obszaru pamięci.

  • Zadaniem jądra jest przydzielanie zasobów systemowych do procesów.

  • Katalog /proc to wirtualny (lub pseudo) system plików, który przechowuje ważne dane jądra i systemu w sposób ulotny.

Podobnie przyjrzeliśmy się urządzeniom sprzętowym i nauczyliśmy się następujących rzeczy:

  • Katalog /dev przechowuje specjalne pliki (tzw. węzły) dla wszystkich podłączonych urządzeń sprzętowych: block devices lub character devices. Te pierwsze przesyłają dane w blokach; drugie po jednym znaku na raz.

  • Katalog /dev zawiera również inne pliki specjalne, takie jak /dev/zero, /dev/null lub /dev/urandom.

  • Katalog /sys przechowuje informacje o urządzeniach sprzętowych, które są przypisane do kategorii.

Wreszcie omówiliśmy pamięć i nauczyliśmy się:

  • Program jest wykonywany po załadowaniu do pamięci.

  • Co to jest pamięć RAM (pamięć o dostępie swobodnym).

  • Co to jest swap.

  • Jak wyświetlić wykorzystanie pamięci.

Polecenia użyte w tej lekcji:

cat

Łączy lub wyświetla zawartość pliku.

free

Wyświetla ilość wolnej i używanej pamięci w systemie.

ls

Wyświetla zawartość katalogu.

which

Pokazuje lokalizację programu.

Odpowiedzi do ćwiczeń z przewodnikiem

  1. Użyj polecenia which, aby znaleźć lokalizację następujących programów i uzupełnij tabelę:

    Program polecenie which Ścieżka do pliku wykonywalnego (output) Czy użytkownik potrzebuje uprawnień root?

    swapon

    which swapon

    /sbin/swapon

    Tak

    kill

    which kill

    /bin/kill

    Nie

    cut

    which cut

    /usr/bin/cut

    Nie

    usermod

    which usermod

    /usr/sbin/usermod

    Tak

    cron

    which cron

    /usr/sbin/cron

    Tak

    ps

    which ps

    /bin/ps

    Nie

  2. Gdzie można znaleźć następujące pliki?

    Plik /etc ~

    .bashrc

    Nie

    Tak

    bash.bashrc

    Tak

    Nie

    passwd

    Tak

    Nie

    .profile

    Nie

    Tak

    resolv.conf

    Tak

    Nie

    sysctl.conf

    Tak

    Nie

  3. Wyjaśnij znaczenie elementów liczbowych dla pliku jądra vmlinuz-4.15.0-50-generic znajdującego się w katalogu /boot:

    Element liczbowy Znaczenie

    4

    Kernel version

    15

    Major revision

    0

    Minor revision

    50

    Patch number

  4. Jakiego polecenia użyłbyś, aby wyświetlić listę wszystkich dysków twardych i partycji w katalogu /dev?

    ls /dev/sd*

Odpowiedzi do ćwiczeń eksploracyjnych

  1. Pliki urządzeń dla dysków twardych są reprezentowane na podstawie kontrolerów, które z nich korzystają. Widzieliśmy /dev/sd* dla urządzeń używających SCSI (Small Computer System Interface) i SATA (Serial Advanced Technology Attachment). Dwa pytania to:

    • Jak były reprezentowane stare dyski IDE (Integrated Drive Electronics)?

      /dev/hd*

    • Jak są reprezentowane nowoczesne urządzenia NVMe (Non-Volatile Memory Express)?

      /dev/nvme*

  2. Spójrz na plik /proc/meminfo. Porównaj zawartość tego pliku z danymi wyjściowymi polecenia free i określ, który klucz z /proc/meminfo odpowiada następującym obszarom danych wyjściowych w wyniku polecenia free:

    Wynik free Obszar /proc/meminfo

    total

    MemTotal / SwapTotal

    free

    MemFree / SwapFree

    shared

    Shmem

    buff/cache

    Buffers, Cached and SReclaimable

    available

    MemAvailable

Linux Professional Insitute Inc. Wszelkie prawa zastrzeżone. Odwiedź stronę Learning Materials: https://learning.lpi.org
Dzieło jest udostępnione na licencji Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Następna lekcja

4.3 Gdzie są przechowywane dane (4.3 Lekcja 2)

Przeczytaj następną lekcję

Linux Professional Insitute Inc. Wszelkie prawa zastrzeżone. Odwiedź stronę Learning Materials: https://learning.lpi.org
Dzieło jest udostępnione na licencji Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

LPI jest organizacją non-profit.

© 2023 Linux Professional Institute (LPI) jest światowym standardem certyfikacji i organizacją wspierającą karierę profesjonalistów open source. Posiadając ponad 200 000 certyfikatów, LPI jest pierwszą i największą na świecie neutralną w stosunku do dostawców jednostką certyfikującą Linuksa i open source. LPI certyfikuje profesjonalistów w ponad 180 krajach, przeprowadza egzaminy w wielu językach i posiada setki partnerów szkoleniowych.

Naszym celem jest stworzenie ekonomicznych i kreatywnych możliwości dla każdego poprzez powszechny dostęp do wiedzy i umiejętności open source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Skontaktuj się z nami
  • Polityka prywatności i plików cookiey

Zauważyłeś błąd lub chcesz pomóc ulepszyć tę stronę? Prosimy daj nam znać.

© 1999–2023 The Linux Professional Institute Inc. Wszelkie prawa zastrzeżone.