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
lubip
. /bin
-
Zawiera niezbędne pliki binarne dla wszystkich użytkowników, takie jak
ls
,mv
lubmkdir
. /usr/sbin
-
Zawiera pliki binarne do administrowania systemem, takie jak
deluser
lubgroupadd
. /usr/bin
-
Zawiera większość plików wykonywalnych - takich jak
free
,pstree
,sudo
lubman
- 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 |
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 |
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 kataloglogrotate.conf
, ale również kataloglogrotate.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 |
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
wvmlinuz
;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 |
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 ( |
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
-
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
-
Gdzie można znaleźć następujące pliki?
Plik /etc
~
.bashrc
bash.bashrc
passwd
.profile
resolv.conf
sysctl.conf
-
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
-
Jakiego polecenia użyłbyś, aby wyświetlić listę wszystkich dysków twardych i partycji w katalogu
/dev
?
Ćwiczenia eksploracyjne
-
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)?
-
-
Spójrz na plik
/proc/meminfo
. Porównaj zawartość tego pliku z danymi wyjściowymi poleceniafree
i określ, który klucz z/proc/meminfo
odpowiada następującym obszarom danych wyjściowych w wyniku poleceniafree
: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ć katalogibin
orazsbin
. -
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
-
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
-
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
-
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
-
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
-
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*
-
-
Spójrz na plik
/proc/meminfo
. Porównaj zawartość tego pliku z danymi wyjściowymi poleceniafree
i określ, który klucz z/proc/meminfo
odpowiada następującym obszarom danych wyjściowych w wyniku poleceniafree
:Wynik free
Obszar /proc/meminfo
total
MemTotal
/SwapTotal
free
MemFree
/SwapFree
shared
Shmem
buff/cache
Buffers
,Cached
andSReclaimable
available
MemAvailable