top of page

Śledź nasze wpisy w social media

  • Instagram
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube
  • Zdjęcie autoraPiotr Kośka

10 poleceń związanych z obsługą jądra w systemie Linux - part 4

Hej zapraszam do kolejnego artykułu z cyklu polecenia Linux. Na początek szybki opis 10 poleceń zwiazanych/powiązanych z obsługa jądra systemu linux (lub narzędzi które komunikując się z jądrem)



System operacyjny Linux, znany ze swojej elastyczności i stabilności, jest szeroko stosowany zarówno w systemach serwerowych, jak i osobistych. W centrum systemu Linux znajduje się jądro, które zarządza wszystkimi podstawowymi funkcjami systemu. W tym artykule omówimy 10 niezbędnych poleceń związanych z obsługą jądra w systemie Linux, które pomogą Ci monitorować, konfigurować i aktualizować jądro, a także zdiagnozować potencjalne problemy. Na początek szybki przegląd tych poleceń a potem szczegółowy opis każdego z nich wraz z przykładami użycia - Zapraszam.


Poprzednie części:


Szybka lista 10 poleceń


1. uname


Polecenie 'uname' pozwala na wyświetlenie podstawowych informacji o jądrze systemu Linux. Można je wykorzystać do sprawdzenia wersji jądra, nazwy hosta, architektury sprzętowej i innych informacji.


Przykład użycia:

uname -a

2. dmesg


Polecenie 'dmesg' pozwala na wyświetlenie komunikatów jądra, które mogą być przydatne podczas diagnozowania problemów z urządzeniami sprzętowymi czy sterownikami.


Przykład użycia:

dmesg | grep -i error

3. lsmod


Polecenie 'lsmod' służy do wyświetlania listy aktualnie załadowanych modułów jądra. Moduły te odpowiadają za różne funkcje, takie jak obsługa sprzętu czy systemu plików.


Przykład użycia:

lsmod

4. modprobe


Polecenie 'modprobe' umożliwia ładowanie i usuwanie modułów jądra. Jest to przydatne, gdy chcesz dodać nowe funkcje do systemu lub usunąć nieużywane moduły, aby zaoszczędzić zasoby.


Przykład użycia:

sudo modprobe -v <module_name>
sudo modprobe -r <module_name>

5. modinfo


Polecenie 'modinfo' pozwala na wyświetlenie informacji o modułach jądra, takich jak opis, parametry, zależności i autora.


Przykład użycia:

modinfo <module_name>

6. sysctl


Polecenie 'sysctl' służy do konfiguracji i odczytywania parametrów jądra systemu Linux. Pozwala to na zmianę ustawień systemowych w czasie rzeczywistym.


Przykład użycia:

sudo sysctl -a
sudo sysctl -w <parameter>=<value>

7. lspci


Polecenie 'lspci' umożliwia wyświetlanie informacji o urządzeniach PCI, takich jak karty graficzne, kontrolery sieciowe i kontrolery dźwięku.


Przykład użycia:

lspci -v

8. lsusb


Polecenie 'lsusb' służy do wyświetlania informacji o podłączonych urządzeniach USB. Pozwala to na zidentyfikowanie urządzeń oraz ich producentów, co może być przydatne podczas diagnozowania problemów.


Przykład użycia:

lsusb
lsusb -v

9. vmstat


Polecenie 'vmstat' pozwala na monitorowanie wydajności jądra, w tym użycia procesora, pamięci RAM, dysku twardego i innych zasobów systemowych.


Przykład użycia:

vmstat
vmstat 1 10

10. kexec


Polecenie 'kexec' umożliwia szybkie przeładowanie jądra systemu Linux bez konieczności przechodzenia przez cały proces uruchamiania. Jest to przydatne, gdy chcesz szybko zaktualizować jądro lub przetestować nową wersję.


Przykład użycia:

sudo kexec -l /boot/vmlinuz-<kernel_version> --initrd=/boot/initrd.img-<kernel_version> --command-line="$(cat /proc/cmdline)"
sudo kexec -e



Od ogółu do szczegółu - polecenia linux.


1. uname


Polecenie uname w systemie Linux to niezwykle pomocne narzędzie służące do wyświetlania informacji o systemie, takich jak wersja jądra, nazwa hosta, architektura sprzętowa oraz inne. W tym artykule przyjrzymy się temu poleceniu w szczegółach, omówimy dostępne przełączniki oraz pokażemy różne przykłady użycia.



Czym jest polecenie uname?

Polecenie uname (skrót od unix name) to standardowe narzędzie dostępne w systemach Unix i Unix-podobnych, takich jak Linux. Umożliwia ono wyświetlanie informacji na temat jądra systemu operacyjnego oraz sprzętu komputera. W praktyce jest często wykorzystywane do szybkiego sprawdzenia informacji o systemie podczas rozwiązywania problemów, diagnozowania awarii czy konfiguracji oprogramowania.



Przełączniki polecenia uname

Polecenie uname posiada kilka przełączników, które umożliwiają precyzyjne wyświetlanie informacji na temat systemu. Oto lista najważniejszych przełączników oraz ich funkcje:

  • -a lub --all: Wyświetla wszystkie dostępne informacje na temat systemu, takie jak nazwa hosta, wersja jądra, architektura sprzętowa, nazwa systemu operacyjnego, itp.

  • -s lub --kernel-name: Wyświetla nazwę jądra systemu operacyjnego.

  • -n lub --nodename: Wyświetla nazwę hosta (nazwę sieciową) komputera.

  • -r lub --kernel-release: Wyświetla wersję jądra systemu operacyjnego.

  • -v lub --kernel-version: Wyświetla dodatkowe informacje na temat wersji jądra, takie jak data kompilacji czy opis.

  • -m lub --machine: Wyświetla informacje na temat architektury sprzętowej komputera.

  • -p lub --processor: Wyświetla informacje na temat procesora. W przypadku niektórych systemów może być tożsame z wynikiem przełącznika -m.

  • -i lub --hardware-platform: Wyświetla informacje na temat platformy sprzętowej komputera. W przypadku niektórych systemów może być tożsame z wynikiem przełącznika -m.

  • -o lub --operating-system: Wyświetla nazwę systemu operacyjnego.



Przykłady użycia polecenia uname

Teraz, gdy znamy dostępne przełączniki, możemy przejść do omówienia różnych przykładów użycia polecenia uname.


Wyświetlanie wszystkich informacji na temat systemu:
uname -a

To polecenie wyświetli wszystkie dostępne informacje na temat systemu, takie jak nazwa hosta, wersja jądra, architektura sprzętowa, nazwa systemu operacyjnego, itp. Wynik może wyglądać mniej więcej tak:

Linux myhostname 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Wyświetlanie wersji jądra:
uname -r

To polecenie wyświetli tylko wersję jądra systemu operacyjnego, np.:

5.4.0-73-generic

Wyświetlanie nazwy hosta:
uname -n

To polecenie wyświetli nazwę hosta (nazwę sieciową) komputera, np.:

myhostname

Wyświetlanie architektury sprzętowej:
uname -m

To polecenie wyświetli informacje na temat architektury sprzętowej komputera, np.:

x86_64

Wyświetlanie informacji na temat procesora:
uname -p

To polecenie wyświetli informacje na temat procesora. W przypadku niektórych systemów może być tożsame z wynikiem przełącznika -m. Wynik może wyglądać tak:

x86_64

Wyświetlanie informacji na temat platformy sprzętowej:
uname -i

To polecenie wyświetli informacje na temat platformy sprzętowej komputera. W przypadku niektórych systemów może być tożsame z wynikiem przełącznika -m. Wynik może wyglądać tak:

x86_64

Wyświetlanie nazwy systemu operacyjnego:
uname -o

To polecenie wyświetli nazwę systemu operacyjnego, np.:

GNU/Linux


Zastosowanie polecenia uname w praktyce

W praktyce polecenie uname jest często używane do szybkiego sprawdzenia informacji o systemie podczas rozwiązywania problemów, diagnozowania awarii czy konfiguracji oprogramowania. Na przykład, jeśli będziesz musiał zainstalować sterowniki dla swojego sprzętu, możesz użyć polecenia uname, aby sprawdzić, jaka jest architektura sprzętowa komputera. Następnie możesz pobrać odpowiednią wersję sterowników dla swojego systemu.

Polecenie uname jest także użyteczne podczas diagnozowania problemów z jądrem systemu. Jeśli wystąpią problemy związane z jądrem, być może będziesz musiał zaktualizować lub zainstalować nowszą wersję. W takim przypadku polecenie uname pozwoli Ci sprawdzić aktualną wersję jądra, co ułatwi wybór właściwej wersji do aktualizacji.


Dodatkowo, polecenie uname może być użyte w skryptach lub automatyzacji. Możesz na przykład stworzyć skrypt, który będzie zbierał informacje na temat różnych systemów w sieci i tworzył raport na podstawie tych informacji. Polecenie uname jest więc nie tylko przydatne dla administratorów systemu, ale także dla programistów i innych osób pracujących z systemami Linux.


Polecenie uname w systemie Linux to niezwykle pomocne narzędzie do wyświetlania informacji o systemie, takich jak wersja jądra, nazwa hosta, architektura sprzętowa oraz inne. Dzięki różnym przełącznikom możemy precyzyjnie wyświetlić tylko te informacje, które są nam w danym momencie potrzebne. Polecenie uname jest często wykorzystywane podczas rozwiązywania problemów, diagnozowania awarii czy konfiguracji oprogramowania.

Mając świadomość wszystkich możliwości polecenia uname, będziesz mógł efektywniej korzystać z systemów Linux i lepiej zarządzać swoimi maszynami. Warto poświęcić czas na naukę tego polecenia, gdyż jest to jedno z podstawowych narzędzi, które każdy użytkownik systemu Linux powinien znać.




2. dmesg


Polecenie dmesg (diagnostic message) w systemie Linux jest kluczowym narzędziem do analizy dzienników jądra, które ułatwia rozwiązywanie problemów i diagnozowanie potencjalnych zagrożeń. W tym artykule przyjrzymy się temu poleceniu w szczegółach, omówimy dostępne przełączniki oraz pokażemy różne przykłady użycia.



Czym jest polecenie dmesg?

Polecenie dmesg służy do wyświetlania i analizowania dzienników jądra systemu Linux. Jądro systemu operacyjnego generuje dzienniki, które zawierają informacje na temat działania sprzętu, sterowników, systemu plików oraz innych komponentów. Polecenie dmesg umożliwia dostęp do tych informacji, co pomaga administratorom i programistom w diagnozowaniu problemów i monitorowaniu działania systemu.



Przełączniki polecenia dmesg

Polecenie dmesg posiada wiele przełączników, które umożliwiają filtrowanie i formatowanie wyjścia, co pozwala na łatwiejsze analizowanie dzienników jądra. Oto lista najważniejszych przełączników oraz ich funkcje:

  • -C lub --clear: Czyści bufor dzienników jądra.

  • -c lub --read-clear: Wyświetla bufor dzienników jądra, a następnie czyści go.

  • -D lub --console-off: Wyłącza kierowanie wiadomości jądra do konsoli.

  • -d lub --show-delta: Wyświetla informacje o czasie trwania pomiędzy kolejnymi wiadomościami dzienników jądra.

  • -E lub --console-on: Włącza kierowanie wiadomości jądra do konsoli.

  • -F lub --file: Czyta dzienniki jądra z określonego pliku zamiast z bufora jądra.

  • -H lub --human: Wyświetla wyjście w czytelnym dla człowieka formacie.

  • -k lub --kernel: Wyświetla tylko wiadomości związane z jądrem systemu.

  • -L lub --color=always: Używa kolorów do podkreślenia różnych poziomów ważności wiadomości.

  • -n lub --console-level: Ustawia poziom ważności wiadomości, które mają być kierowane do konsoli.

  • -P lub --nopager: Nie używa stronicowania wyjścia (np. less).

  • -p lub --facility: Filtruje wiadomości według określonego poziomu ważności (facility).

  • -r lub --raw: Wyświetla surowe dane dzienników jądra, bez dodatkowego formatowania.

  • -S lub --syslog: Wyświetla tylko wiadomości związane z systemem.

  • -T lub --ctime: Wyświetla czas wystąpienia wiadomości w czytelnym formacie.

  • -t lub --notime: Nie wyświetla czasu wystąpienia wiadomości.

  • -u lub --userspace: Wyświetla tylko wiadomości związane z przestrzenią użytkownika.

  • -W lub --follow: Aktualizuje wyświetlane wiadomości na bieżąco, podobnie jak polecenie tail -f.

  • -w lub --decode: Próbuje zdekodować wiadomości zawierające wartości szesnastkowe.

  • -x lub --hex: Wyświetla dane w formacie szesnastkowym.

  • -l lub --level: Filtruje wiadomości na podstawie poziomu ważności (level).



Przykłady użycia polecenia dmesg

Teraz, gdy znamy dostępne przełączniki, możemy przejść do omówienia różnych przykładów użycia polecenia dmesg.


Wyświetlanie wszystkich wiadomości dzienników jądra:

dmesg

To polecenie wyświetli wszystkie wiadomości z bufora dzienników jądra. Wynik może być bardzo długi, dlatego warto użyć stronicowania, np.:


dmesg | less

Wyświetlanie tylko wiadomości związanych z jądrem systemu:

dmesg -k

To polecenie wyświetli tylko wiadomości związane z jądrem systemu, co pozwoli na łatwiejsze zidentyfikowanie problemów związanych z jądrem.


Wyświetlanie wiadomości z ostatnich 10 sekund:

dmesg --since "10 seconds ago"

To polecenie pozwala na wyświetlenie wiadomości, które pojawiły się w ciągu ostatnich 10 sekund, co ułatwia monitorowanie bieżących zdarzeń w systemie.


Wyszukiwanie konkretnych wiadomości:

dmesg | grep "usb"

To polecenie pozwala na wyszukanie wiadomości zawierających frazę "usb", co może być przydatne przy rozwiązywaniu problemów związanych z urządzeniami USB.


Wyświetlanie wiadomości w czytelnym dla człowieka formacie:

dmesg -H

To polecenie ułatwia odczytanie wyjścia dzięki dodatkowemu formatowaniu i użyciu kolorów.



Zastosowanie polecenia dmesg w praktyce

W praktyce polecenie dmesg jest często używane do diagnozowania problemów sprzętowych i systemowych, zarówno przez administratorów systemów, jak i programistów. Na przykład, jeśli użytkownik napotka problem z dyskiem twardym, może użyć polecenia dmesg, aby zidentyfikować błędy związane z kontrolerem dysku lub samym dyskiem. Podobnie, jeśli wystąpią problemy z kartą sieciową, polecenie dmesg może dostarczyć informacji na temat błędów sterownika lub konfiguracji karty sieciowej.


Dodatkowo, polecenie dmesg jest użyteczne podczas analizy zagrożeń bezpieczeństwa. Jeśli system jest narażony na atak, dmesg może zawierać informacje na temat prób dostępu do zasobów systemowych, błędów związanych z autoryzacją czy dziwnego zachowania jądra. Dzięki temu administratorzy mogą szybko zidentyfikować i zabezpieczyć system przed potencjalnymi zagrożeniami.


Polecenie dmesg może być także wykorzystywane w automatyzacji i skryptach. Można na przykład stworzyć skrypt, który monitoruje bieżące wiadomości jądra i wysyła powiadomienia e-mail, gdy wystąpią określone zdarzenia lub błędy. W ten sposób administratorzy mogą być na bieżąco z sytuacją w systemie i szybko reagować na ewentualne problemy.



Przykładowy skrypt


Aby stworzyć skrypt analizujący logi z polecenia dmesg i wysyłający powiadomienia na kanał Slack, należy wykonać następujące kroki:

  • Utwórz plik o nazwie disk_monitor.sh i nadaj mu uprawnienia do wykonywania:


touch disk_monitor.sh
chmod +x disk_monitor.sh
  • Otwórz plik disk_monitor.sh w edytorze tekstowym, a następnie wklej poniższy kod:


#!/bin/bash
# Zmień wartość na swój webhook URL Slacka
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZ"
# Definiujemy funkcję wysyłającą powiadomienia na Slackafunction send_to_slack() {
  local message="$1"
  curl -s -X POST --data-urlencode "payload={\"text\": \"${message}\"}" "${SLACK_WEBHOOK_URL}"
}

# Wyszukujemy niepokojące informacje w logach dmesg
DMESG_OUTPUT=$(dmesg | grep -iE "I/O error|bad block|EXT4-fs error|device-mapper")

if [ -n "$DMESG_OUTPUT" ]; then
  MESSAGE=":warning: Znaleziono niepokojące informacje dotyczące dysku:\n\`\`\`${DMESG_OUTPUT}\`\`\`"
  send_to_slack "${MESSAGE}"
else
  echo "Wszystko w porządku, nie znaleziono niepokojących informacji."
fi
  1. Zastąp wartość SLACK_WEBHOOK_URL swoim adresem webhooka dla kanału Slack. Aby utworzyć webhooka, postępuj zgodnie z instrukcjami Slacka.

  2. Uruchom skrypt, aby sprawdzić jego działanie:


./disk_monitor.sh

Skrypt analizuje logi dmesg, szukając fraz takich jak "I/O error", "bad block", "EXT4-fs error" oraz "device-mapper", które mogą świadczyć o problemach z dyskiem. Jeśli skrypt znajdzie takie informacje, wyśle powiadomienie na kanał Slack z wykorzystaniem webhooka.

Aby uruchamiać skrypt automatycznie, możesz dodać go do crontaba, co pozwoli na cykliczne wykonywanie skryptu w określonym interwale czasowym. Na przykład, jeśli chcesz uruchamiać skrypt co godzinę, dodaj następującą linię do crontaba (uruchom crontab -e):


0 * * * * /ścieżka/do/skryptu/disk_monitor.sh

Pamiętaj, aby zastąpić /ścieżka/do/skryptu/ rzeczywistą ścieżką do pliku disk_monitor.sh.


Teraz, gdy skrypt jest gotowy i zaplanowany do cyklicznego wykonywania, warto poznać inne funkcje, które możemy dodać lub zmodyfikować, aby jeszcze lepiej monitorować dyski w systemie.

  • Monitorowanie wielu fraz: W aktualnym skrypcie wyszukujemy tylko kilka fraz, które mogą świadczyć o problemach z dyskiem. Jeśli chcesz monitorować więcej fraz, możesz dodać je do wyrażenia regularnego w funkcji grep:


DMESG_OUTPUT=$(dmesg | grep -iE "I/O error|bad block|EXT4-fs error|device-mapper|nowa_fraza1|nowa_fraza2")
  • Monitorowanie specyficznych dysków: Jeśli chcesz monitorować tylko konkretne dyski, możesz dodać nazwę dysku do wyrażenia regularnego:


DMESG_OUTPUT=$(dmesg | grep -iE "sda.*(I/O error|bad block|EXT4-fs error|device-mapper)")

W powyższym przykładzie skrypt będzie monitorował tylko dysk o nazwie "sda". Aby monitorować więcej dysków, dodaj ich nazwy do wyrażenia regularnego.

  • Zwiększenie częstotliwości monitorowania: W przypadku gdy chcesz monitorować logi dmesg częściej niż co godzinę, możesz zmienić wpis w crontabie. Na przykład, jeśli chcesz uruchamiać skrypt co 15 minut, wprowadź następującą zmianę:


*/15 * * * * /ścieżka/do/skryptu/disk_monitor.sh

Podsumowując, skrypt disk_monitor.sh jest prostym, lecz użytecznym narzędziem do monitorowania logów dmesg w celu wykrycia problemów z dyskami. Dzięki temu, że wysyła powiadomienia na kanał Slack, administratorzy mogą szybko reagować na potencjalne zagrożenia i awarie. Poprzez dalsze modyfikacje skryptu, możemy dostosować go do własnych potrzeb i monitorować różne aspekty działania dysków w systemie Linux.


Polecenie dmesg w systemie Linux to potężne narzędzie służące do analizy dzienników jądra. Pozwala na szybkie zidentyfikowanie problemów sprzętowych, systemowych oraz potencjalnych zagrożeń. Dzięki wielu przełącznikom można dostosować wyjście polecenia do własnych potrzeb, co ułatwia analizę i monitorowanie systemu.

Znajomość polecenia dmesg i jego zastosowań jest niezbędna dla każdego administratora systemu Linux, a także dla programistów i innych osób pracujących z systemami opartymi na jądrze Linux. Dlatego warto poświęcić czas na naukę tego polecenia i na praktykowanie różnych przypadków użycia, aby opanować jego możliwości i skutecznie zarządzać systemem Linux.





3. lsmod


W świecie Linuksa, wiedza na temat poleceń terminala jest kluczowa dla efektywnego zarządzania systemem. Jednym z takich poleceń jest lsmod, które jest często używane przez administratorów systemów, programistów i pasjonatów Linuksa. W tym artykule przyjrzymy się bliżej poleceniu lsmod, jego przełącznikom oraz kilku praktycznym przykładom użycia tego narzędzia.



Co to jest polecenie lsmod?

Polecenie lsmod to narzędzie służące do wyświetlania informacji na temat załadowanych modułów jądra systemu Linux. Moduły te, znane również jako sterowniki, są odpowiedzialne za zarządzanie różnymi podzespołami sprzętowymi, jak karty graficzne, sieciowe, dźwiękowe itp. Dzięki modułom jądra system operacyjny może pracować z różnymi urządzeniami.



Przełączniki polecenia lsmod

Polecenie lsmod jest narzędziem o prostym interfejsie, bez dodatkowych przełączników. Wystarczy wpisać lsmod w terminalu i otrzymać listę załadowanych modułów. Oto składnia polecenia:


lsmod

Polecenie lsmod nie ma żadnych dodatkowych przełączników, ponieważ jego głównym celem jest prostota. Jeśli chcesz uzyskać więcej informacji o modułach, możesz skorzystać z innych poleceń, takich jak modinfo, które dostarczy szczegółowych informacji na temat danego modułu.



Jak używać polecenia lsmod?

Oto kilka praktycznych przykładów, jak możemy użyć polecenia lsmod w systemie Linux:


a) Wyświetlanie listy załadowanych modułów

Aby wyświetlić listę załadowanych modułów, wystarczy wpisać lsmod w terminalu:


$ lsmod

W wyniku otrzymasz listę załadowanych modułów jądra wraz z ich rozmiarami i liczbą zależności.


b) Wyszukiwanie konkretnego modułu

Jeśli chcesz sprawdzić, czy określony moduł jądra został załadowany, możesz użyć polecenia grep w połączeniu z lsmod:


$ lsmod | grep nazwa_modulu

Na przykład, aby sprawdzić, czy moduł snd_hda_intel jest załadowany, wpisz:


$ lsmod | grep snd_hda_intel

Jeśli moduł jest załadowany, polecenie zwróci informacje na jego temat. W przeciwnym razie nie otrzymasz żadnych wyników.


c) Sortowanie listy modułów według rozmiaru

Jeśli chcesz posortować załadowane moduły według rozmiaru, możesz skorzystać z poleceń sort i awk:


$ lsmod | awk 'NR>1 {print $0}' | sort -k2 -n -r

Wynik przedstawi listę modułów posortowaną malejąco według rozmiaru. Możesz również zmienić kolejność sortowania na rosnącą, usuwając -r z polecenia:


$ lsmod | awk 'NR>1 {print $0}' | sort -k2 -n

d) Wyświetlanie liczby załadowanych modułów

Aby zobaczyć, ile modułów jest obecnie załadowanych, można połączyć polecenie lsmod z wc:


$ lsmod | wc -l

Pamiętaj, że wynik zawiera również nagłówek, więc aby uzyskać rzeczywistą liczbę załadowanych modułów, odejmij 1 od wyświetlonej wartości.



Inne powiązane polecenia

Jak wspomniano wcześniej, lsmod jest używane w połączeniu z innymi narzędziami, takimi jak modinfo, modprobe, insmod i rmmod, aby uzyskać więcej informacji i zarządzać modułami jądra.

  • modinfo: wyświetla szczegółowe informacje na temat modułu jądra, takie jak autor, wersja, opis, parametry itp. Składnia to modinfo nazwa_modulu.

  • modprobe: automatycznie ładuje i rozwiązuje zależności modułów jądra. Polecenie to jest używane do ładowania, usuwania i konfigurowania modułów.

  • insmod: ładuje moduł jądra bezpośrednio, bez rozwiązywania zależności. Zazwyczaj modprobe jest preferowane, ale insmod może być używane w przypadku, gdy musisz załadować moduł, który nie ma zależności.

  • rmmod: usuwa moduł jądra, o ile nie ma innych modułów, które go wymagają. Jeśli chcesz usunąć moduł z zależnościami, użyj modprobe -r.


Mimo że lsmod nie ma dodatkowych przełączników, jego prostota sprawia, że jest niezwykle użytecznym narzędziem do monitorowania i diagnozowania modułów jądra w systemie Linux. Dzięki połączeniu z innymi powiązanymi narzędziami, takimi jak modinfo, modprobe, insmod i rmmod, można uzyskać pełną kontrolę nad modułami jądra oraz zarządzać nimi efektywnie.


Pamiętaj, że praca z modułami jądra może wpływać na stabilność i wydajność systemu, dlatego zawsze zachowuj ostrożność i dokładnie sprawdzaj, co robisz, zwłaszcza gdy działasz jako użytkownik root. W przypadku wątpliwości warto skonsultować się z dokumentacją systemu lub poszukać pomocy wśród społeczności Linuksa.


W praktyce, polecenie lsmod jest często używane przez administratorów systemów i programistów do rozwiązywania problemów związanych z kompatybilnością sprzętu, identyfikowania modułów powodujących problemy, a także do analizy wydajności systemu. Nawet jeśli nie jesteś ekspertem, znajomość tego narzędzia może być cenna w sytuacjach, gdy musisz rozwiązać problemy ze sterownikami lub konfiguracją sprzętu w systemie Linux.

Miejmy nadzieję, że ten artykuł pomógł Ci zrozumieć, co to jest polecenie lsmod, jak z niego korzystać oraz jakie są jego praktyczne zastosowania. W miarę jak będziesz coraz bardziej zaznajamiać się z różnymi aspektami systemu Linux, z pewnością docenisz siłę i elastyczność, jaką oferują te narzędzia. Teraz, gdy znasz polecenie lsmod, jesteś gotowy, aby kontynuować swoją przygodę z systemem Linux i odkrywać kolejne potężne narzędzia i techniki.




4. modprobe


W systemie operacyjnym Linux, moduły jądra są niezbędne do zarządzania sprzętem i funkcjami systemu. Moduły jądra pozwalają na dynamiczne dodawanie i usuwanie funkcjonalności jądra, co sprawia, że system staje się bardziej elastyczny i łatwiejszy w utrzymaniu. Polecenie modprobe jest jednym z narzędzi pozwalających zarządzać modułami jądra. W niniejszym artykule omówimy działanie polecenia modprobe, jego przełączniki oraz przykłady zastosowań.



Co to jest modprobe?

Polecenie modprobe służy do dodawania i usuwania modułów jądra oraz ich zależności w systemie Linux. modprobe może automatycznie rozwiązywać zależności między modułami, co oznacza, że podczas ładowania modułu, wszystkie wymagane inne moduły zostaną również załadowane.



Główne przełączniki polecenia modprobe

modprobe posiada wiele przełączników, które pozwalają na kontrolowanie jego działania. Oto niektóre z nich:

  • -a, --all: ładowanie wielu modułów jednocześnie;

  • -c, --showconfig: wyświetlanie konfiguracji modprobe;

  • -d, --dirname: ustawianie katalogu z modułami;

  • -f, --force: wymuszanie operacji na modułach pomimo błędów;

  • -l, --list: wyświetlanie listy modułów;

  • -r, --remove: usuwanie modułów;

  • -v, --verbose: wyświetlanie szczegółowych informacji.



Przykłady zastosowań modprobe


a) Ładowanie modułu

Aby załadować moduł jądra, wystarczy użyć polecenia modprobe z nazwą modułu jako argumentem. Na przykład, aby załadować moduł nf_conntrack, wpisz:


sudo modprobe nf_conntrack

modprobe automatycznie załaduje wszystkie wymagane zależności modułu.


b) Usuwanie modułu

Aby usunąć załadowany moduł, użyj przełącznika -r lub --remove. Na przykład, aby usunąć moduł nf_conntrack, wpisz:


sudo modprobe -r nf_conntrack

Jeśli moduł posiada zależności, będą one również usunięte, o ile nie są używane przez inne moduły.


c) Wyświetlanie informacji o modułach

Aby uzyskać listę dostępnych modułów jądra, użyj przełącznika -l lub --list. Na przykład:


modprobe -l

Aby wyświetlić informacje o konfiguracji modprobe, użyj przełącznika -c lub --showconfig. Na przykład:


modprobe -c

d) Wymuszanie operacji na modułach

Czasami może być konieczne wymuszenie operacji na modułach, nawet jeśli wystąpią błędy lub konflikty. Aby to zrobić, użyj przełącznika -f lub --force. Przykładowo, aby wymusić załadowanie modułu nf_conntrack pomimo ewentualnych błędów, wpisz:



sudo modprobe -f nf_conntrack

Uwaga: Używanie przełącznika -f może prowadzić do niestabilności systemu. Używaj go ostrożnie i tylko wtedy, gdy jest to absolutnie konieczne.


e) Ładowanie wielu modułów jednocześnie

Aby załadować wiele modułów naraz, użyj przełącznika -a lub --all. Na przykład, aby załadować moduły nf_conntrack i nf_nat, wpisz:


sudo modprobe -a nf_conntrack nf_nat



Dodawanie modułów do autostartu

W niektórych przypadkach może być konieczne, aby moduł był załadowany automatycznie podczas uruchamiania systemu. Aby to zrobić, dodaj nazwę modułu do pliku /etc/modules lub, w przypadku niektórych dystrybucji, /etc/modules-load.d.

Na przykład, aby załadować moduł nf_conntrack podczas uruchamiania systemu, otwórz plik /etc/modules za pomocą dowolnego edytora tekstowego:


sudo nano /etc/modules

Dodaj nazwę modułu nf_conntrack do pliku i zapisz zmiany.


Polecenie modprobe jest niezbędnym narzędziem do zarządzania modułami jądra w systemie Linux. Dzięki niemu możemy łatwo załadować, usunąć i wyświetlać informacje o modułach oraz ich zależności. W niniejszym artykule omówiliśmy podstawowe przełączniki i zastosowania polecenia modprobe, które pozwolą na efektywne zarządzanie modułami jądra w systemie Linux.




5. modinfo


Systemy operacyjne z rodziny Linux są znane z szerokiej gamy poleceń, które ułatwiają zarządzanie systemem i jego komponentami. Jednym z takich poleceń jest modinfo, które pozwala na uzyskanie informacji na temat modułów jądra. W tym artykule przyjrzymy się poleceniu modinfo, jego przełącznikom oraz przykładom zastosowania tego polecenia.



Czym jest modinfo?

Polecenie modinfo jest narzędziem dostarczanym przez pakiet 'module-init-tools' w systemach Linux. Jego głównym zadaniem jest wyświetlanie informacji na temat modułów jądra systemu Linux, takich jak wersja, autor, opis, parametry oraz zależności między modułami. Modinfo jest szczególnie przydatne dla administratorów systemów oraz programistów, którzy pracują z modułami jądra.



Składnia polecenia modinfo

Polecenie modinfo ma następującą składnię:


modinfo [opcje] moduł

Gdzie 'opcje' to przełączniki polecenia, a 'moduł' to nazwa modułu, którego informacje chcemy wyświetlić.



Przełączniki polecenia modinfo

Polecenie modinfo posiada kilka przełączników, które pozwalają na zmianę jego zachowania oraz sposobu prezentacji informacji. Oto niektóre z nich:

  1. -a, --author: Wyświetla autora modułu.

  2. -d, --description: Wyświetla opis modułu.

  3. -F, --field: Wyświetla wartość określonego pola.

  4. -l, --list: Wyświetla listę modułów.

  5. -p, --parameters: Wyświetla parametry modułu.

  6. -V, --version: Wyświetla wersję polecenia modinfo.



Przykłady zastosowania polecenia modinfo


Wyświetlanie informacji o module:

Aby wyświetlić informacje na temat konkretnego modułu, wystarczy podać jego nazwę jako argument polecenia modinfo. Na przykład, aby uzyskać informacje na temat modułu 'e1000', wykonaj następujące polecenie:


modinfo e1000

W wyniku otrzymasz informacje na temat modułu, takie jak: ścieżkę, wersję, autora, opis, licencję, parametry, zależności i inne.


Wyświetlanie autora modułu:

Jeśli chcesz poznać tylko autora danego modułu, użyj przełącznika '-a' lub '--author'. Na przykład:


modinfo -a e1000

Wyświetlanie opisu modułu:

Aby wyświetlić opis modułu, użyj przełącznika '-d' lub '--description'. Na przykład:


modinfo -d e1000

Wyświetlanie wartości określonego pola:

Jeśli chcesz wyświetlić wartość określonego pola dla modułu, użyj przełącznika '-F' lub '--field'. Na przykład, aby wyświetlić licencję modułu 'e1000', wykonaj następujące polecenie:


modinfo -F license e1000

Wyświetlanie parametrów modułu:

Aby wyświetlić dostępne parametry dla modułu, użyj przełącznika '-p' lub '--parameters'. Na przykład:


modinfo -p e1000

Wyświetlanie listy modułów:

Aby wyświetlić listę wszystkich dostępnych modułów, użyj przełącznika '-l' lub '--list'. Ten przełącznik działa tylko w połączeniu z opcją '--all'. Na przykład:


modinfo --all --list

Wyświetlanie wersji polecenia modinfo:

Aby sprawdzić wersję polecenia modinfo, użyj przełącznika '-V' lub '--version':


modinfo --version

Polecenie modinfo jest niezwykle przydatnym narzędziem w systemach Linux, które pozwala uzyskać informacje na temat modułów jądra. Jego różnorodne przełączniki umożliwiają dostosowanie wyjścia do potrzeb użytkownika oraz uzyskanie tylko tych informacji, które są faktycznie potrzebne. Modinfo jest niezbędnym narzędziem dla administratorów systemów oraz programistów pracujących z modułami jądra Linux.


W tym artykule przedstawiliśmy polecenie modinfo, jego przełączniki oraz przykłady zastosowania tego polecenia. Dzięki tym informacjom powinieneś być teraz bardziej kompetentny w zarządzaniu modułami jądra w systemie Linux oraz lepiej zrozumieć ich funkcjonowanie. Polecenie modinfo to tylko jeden z wielu potężnych poleceń dostępnych w systemach Linux, które razem tworzą elastyczne i wydajne narzędzia zarządzania systemem.




6. sysctl


Polecenie sysctl to potężne narzędzie, które pozwala administratorom systemów Linux kontrolować i konfigurować wiele parametrów jądra w czasie rzeczywistym. W tym artykule szczegółowo omówimy to polecenie, jego zastosowanie, wszystkie dostępne przełączniki oraz jak jest ono powiązane z jądrem systemu Linux.



Czym jest polecenie sysctl i jakie ma zastosowania


Czym jest polecenie sysctl

Polecenie sysctl to narzędzie używane w systemach Linux, które pozwala na odczyt i modyfikację parametrów jądra na bieżąco. Obejmuje to zarówno wartości konfiguracyjne, jak i statystyki systemowe. Polecenie sysctl działa, komunikując się z jądrem za pomocą interfejsu sysctl, który jest dostępny w katalogu /proc/sys. W rzeczywistości sysctl to jedynie interfejs między użytkownikiem a plikami w /proc/sys.


Zastosowania polecenia sysctl

Polecenie sysctl ma wiele zastosowań. Oto niektóre z nich:

  • Optymalizacja wydajności systemu: sysctl pozwala na dostosowanie wielu parametrów związanych z zarządzaniem pamięcią, buforowaniem, planistą procesów i innymi funkcjami systemu Linux. Dzięki temu administratorzy mogą dostosować system do swoich potrzeb, zmniejszając opóźnienia i zwiększając wydajność.

  • Bezpieczeństwo systemu: sysctl może być używane do zabezpieczania systemu przed różnymi zagrożeniami, takimi jak ataki DDoS, ataki SYN flood czy usługi odmowy dostępu. Można to osiągnąć, regulując limity połączeń, parametry sieciowe i inne ustawienia.

  • Diagnostyka i rozwiązywanie problemów: sysctl pozwala na monitorowanie różnych parametrów systemowych, co może być przydatne w przypadku diagnozowania i rozwiązywania problemów związanych z wydajnością, siecią czy innymi funkcjami systemu.



Przełączniki polecenia sysctl i ich zastosowanie


Przełączniki polecenia sysctl

Polecenie sysctl oferuje wiele przełączników, które pozwalają na różnorodne operacje. Oto najważniejsze z nich:

  • -a lub --all: Wyświetla wszystkie dostępne parametry jądra.

  • -A lub --values: Wyświetla wszystkie dostępne parametry jądra wraz z ich wartościami.

  • -e lub --ignore: Ignoruje błędy związane z nieistniejącymi parametrami jądra

  • -f lub --load: Ładuje ustawienia z pliku konfiguracyjnego.

  • -N lub --names: Wyświetla tylko nazwy parametrów jądra bez ich wartości.

  • -n lub --values-only: Wyświetla tylko wartości parametrów jądra, bez ich nazw.

  • -p lub --pattern: Wyszukuje parametry jądra, które pasują do podanego wzorca.

  • -q lub --quiet: Wykonuje polecenie w trybie cichym, nie wyświetlając żadnych informacji.

  • -w lub --write: Zapisuje zmiany do jądra.


Przykłady zastosowania przełączników polecenia sysctl

Oto kilka przykładów, jak można użyć przełączników polecenia sysctl w praktyce:

  • Wyświetlanie wszystkich dostępnych parametrów jądra:


sysctl -a

  • Wyświetlanie parametrów jądra związanych z siecią:


sysctl -a | grep net 

  • Zmiana wartości parametru jądra (np. liczby otwartych plików):


sysctl -w fs.file-max=100000

  • Ładowanie ustawień z pliku konfiguracyjnego:


sysctl -f /etc/sysctl.conf 

  • Wyszukiwanie parametrów jądra pasujących do wzorca (np. wszystkich związanych z IPv4):


sysctl -a -p 'net.ipv4.*' 


Powiązanie polecenia sysctl z jądrem systemu Linux


Jak polecenie sysctl komunikuje się z jądrem

Polecenie sysctl komunikuje się z jądrem systemu Linux za pomocą interfejsu sysctl, który jest dostępny w katalogu /proc/sys. Ten katalog zawiera pliki tekstowe reprezentujące różne parametry jądra. Polecenie sysctl odczytuje lub zmienia wartości tych plików, co wpływa na bieżącą konfigurację jądra.


Zmiany w czasie rzeczywistym

Jedną z kluczowych cech polecenia sysctl jest możliwość wprowadzania zmian w parametrach jądra w czasie rzeczywistym, bez konieczności restartowania systemu. Dzięki temu administratorzy mogą szybko dostosować system do swoich potrzeb i reagować na zmieniające się warunki.


Trwałe zmiany konfiguracji

Aby wprowadzić trwałe zmiany w konfiguracji sysctl, należy je zapisać w pliku konfiguracyjnym, zwykle /etc/sysctl.conf lub innym pliku w katalogu /etc/sysctl.d. Wtedy, po restarcie systemu, polecenie sysctl wczyta te ustawienia i zastosuje je.


Przedstawiliśmy różne zastosowania tego polecenia, takie jak optymalizacja wydajności systemu, zwiększenie bezpieczeństwa czy diagnozowanie i rozwiązywanie problemów. Przyjrzeliśmy się także dostępnym przełącznikom polecenia sysctl oraz omówiliśmy przykłady ich zastosowania.


Następnie wyjaśniliśmy, jak polecenie sysctl jest powiązane z jądrem systemu Linux. Polecenie sysctl komunikuje się z jądrem za pomocą interfejsu sysctl dostępnego w katalogu /proc/sys. Dzięki temu poleceniu możliwe jest wprowadzanie zmian w parametrach jądra w czasie rzeczywistym, bez konieczności restartowania systemu. Wreszcie omówiliśmy, jak wprowadzać trwałe zmiany w konfiguracji sysctl za pomocą plików konfiguracyjnych.


Mając te informacje, administratorzy systemów Linux będą mogli wykorzystać polecenie sysctl, aby zoptymalizować wydajność, zwiększyć bezpieczeństwo i lepiej diagnozować problemy w swoich systemach. Polecenie sysctl to niezbędne narzędzie dla każdego administratora systemu Linux, które pozwala na efektywną kontrolę i zarządzanie jądrem systemu.





7. lspci


Polecenie lspci to potężne narzędzie dostępne w większości dystrybucji systemu Linux, służące do wyświetlania informacji o urządzeniach PCI podłączonych do systemu. PCI (Peripheral Component Interconnect) to standard komunikacji między urządzeniami wewnętrznymi komputera, takimi jak karty graficzne, kontrolery dźwięku czy karty sieciowe.

W tym artykule przyjrzymy się bliżej poleceniu lspci, jak je używać, jakie przełączniki są dostępne oraz jak te przełączniki można wykorzystać w różnych przypadkach. Zapoznamy się również z kilkoma praktycznymi przykładami użycia lspci wraz z przełącznikami.



Podstawowe użycie polecenia lspci

Polecenie lspci może być używane bez żadnych przełączników, aby uzyskać podstawowe informacje na temat urządzeń PCI w systemie. Wystarczy wpisać lspci w terminalu i nacisnąć Enter:


$ lspci

Wynik polecenia zawiera listę urządzeń PCI, ich identyfikatory, nazwy oraz numery slotów. Na przykład:


00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)



Przełączniki polecenia lspci

lspci oferuje wiele przełączników, które pozwalają na wyświetlanie dodatkowych informacji oraz filtrowanie wyników. Poniżej znajduje się lista najbardziej przydatnych przełączników:

  • -n: Wyświetla identyfikatory numeryczne urządzeń i producentów zamiast nazw.

  • -k: Pokazuje jądro sterownika używane dla każdego urządzenia.

  • -t: Wyświetla wyniki w formie drzewa.

  • -i: Ładuje informacje o urządzeniach z alternatywnego pliku (np. -i foo.txt).

  • -v: Podaje szczegółowe informacje na temat urządzeń.

  • -vv: Podaje jeszcze bardziej szczegółowe informacje na temat urządzeń.

  • -vvv: Podaje najbardziej szczegółowe informacje na temat urządzeń.

  • -s: Filtruje wyniki według slotu urządzenia (np. -s 00:02.0).

  • -d: Filtruje wyniki według identyfikatora urządzenia (np. -d 8086:9d2f).



Przykłady użycia polecenia lspci wraz z przełącznikami

Aby lepiej zrozumieć, jak można wykorzystać różne przełączniki polecenia lspci, przyjrzyjmy się kilku praktycznym przykładom.



Przykład 1: Wyświetlanie identyfikatorów numerycznych

Aby wyświetlić identyfikatory numeryczne urządzeń i producentów zamiast nazw, użyj przełącznika -n:


$ lspci -n

Wynik może wyglądać tak:


00:00.0 0600: 8086:5914 (rev 07)00:02.0 0300: 8086:5917 (rev 07)00:14.0 0c03: 8086:9d2f (rev 21)00:16.0 0780: 8086:9d3a (rev 21)


Przykład 2: Wyświetlanie sterowników jądra

Aby sprawdzić, jakie sterowniki jądra są używane dla każdego urządzenia, użyj przełącznika -k:


$ lspci -k

Wynik może wyglądać tak:


00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)Subsystem: Lenovo Device 3801Kernel driver in use: skl_uncore00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)Subsystem: Lenovo Device 3801Kernel driver in use: i915Kernel modules: i915


Przykład 3: Wyświetlanie wyników w formie drzewa

Aby wyświetlić wyniki w formie drzewa, użyj przełącznika -t:


$ lspci -t

Wynik może wyglądać tak:


-[0000:00]-+-00.0
           +-02.0
           +-14.0
           +-16.0


Przykład 4: Wyświetlanie szczegółowych informacji o urządzeniach

Aby wyświetlić szczegółowe informacje na temat urządzeń, użyj przełącznika -v, -vv lub -vvv. Im więcej liter "v" użyjesz, tym więcej szczegółów uzyskasz:


$ lspci -v

Wynik może wyglądać tak:


00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)Subsystem: Lenovo Device 3801Flags: bus master, fast devsel, latency 0Capabilities: [e0] Vendor Specific Information: Len=10 <?>Kernel driver in use: skl_uncore


Przykład 5: Filtrowanie wyników według slot u urządzenia

Aby wyświetlić informacje tylko o urządzeniu podłączonym do określonego slotu, użyj przełącznika -s:


$ lspci -s 00:02.0

Wynik może wyglądać tak:

makefileCopy code
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)


Przykład 6: Filtrowanie wyników według identyfikatora urządzenia

Aby wyświetlić informacje tylko o urządzeniach z określonym identyfikatorem, użyj przełącznika -d:


$ lspci -d 8086:9d2f

Wynik może wyglądać tak:


00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)

Polecenie lspci jest niezwykle przydatnym narzędziem w środowisku Linux, które pozwala na szybkie i łatwe zdobycie informacji o urządzeniach PCI podłączonych do systemu. W artykule omówiliśmy podstawowe użycie lspci oraz różne przełączniki, które można wykorzystać do dostosowania wyników do potrzeb użytkownika.


Dzięki tym przełącznikom, polecenie lspci umożliwia szybkie zidentyfikowanie urządzeń, sterowników jądra, a także szczegółowych informacji na temat każdego urządzenia. Zaprezentowane przykłady pokazują różnorodność zastosowań polecenia lspci i podkreślają jego przydatność dla administratorów systemów, programistów oraz użytkowników Linuxa.




8. lsusb


Jednym z podstawowych narzędzi w systemie Linux, które pozwala na szybkie uzyskanie informacji o podłączonych urządzeniach USB, jest polecenie lsusb. Pozwala ono na wyświetlanie wszystkich urządzeń podłączonych do komputera za pośrednictwem portów USB. W tym artykule przedstawimy wszystkie przełączniki tego polecenia, a także pokażemy przykłady ich użycia.



Podstawowe użycie lsusb:

Polecenie lsusb bez żadnych przełączników wyświetla listę podłączonych urządzeń USB wraz z identyfikatorami producenta (vendor ID) i produktu (product ID). Przykład:


$ lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying ReceiverBus 002 Device 003: ID 17ef:602e Lenovo ThinkPad Ultra Dock



Przełącznik -v (verbose):

Przełącznik -v pozwala na wyświetlenie szczegółowych informacji na temat każdego z podłączonych urządzeń USB. Przykład:

rubyCopy code
$ lsusb -v

Przełącznik -s pozwala na wyświetlenie informacji tylko o wybranym urządzeniu. Przykład:


$ lsusb -s 001:003Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver

Przełącznik -d pozwala na wyświetlenie informacji o urządzeniach o określonym identyfikatorze producenta i produktu. Przykład:


$ lsusb -d 046d:c534
Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver

Przełącznik -t przedstawia strukturę drzewiastą urządzeń USB. Przykład:


$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M

Przełącznik -D pozwala na wyświetlenie informacji o urządzeniu na podstawie pliku urządzenia. Przykład:


$ lsusb -D /dev/bus/usb/001/003
Device: ID 046d:c534 Logitech, Inc. Unifying Receiver

Przełącznik -V wyświetla wersję polecenia lsusb. Przykład:


$ lsusb -V
lsusb (usbutils) 012

Przełącznik -h wyświetla krótką informację o dostępnych przełącznikach i ich działaniu. Przykład:

lessCopy code
$ lsusb -hUsage: lsusb [options]...
List USB devices-v, --verbose-s [[bus]:][devnum]-d vendor:[product]-t-D device-V, --version-h, --help


Przykłady użycia:


a) Wyświetlanie szczegółowych informacji o konkretnym urządzeniu:


$ lsusb -v -s 001:003

b) Wyszukiwanie urządzeń USB od konkretnego producenta:


$ lsusb -d 046d:

c) Wyświetlanie informacji o urządzeniu z określonym identyfikatorem produktu:


$ lsusb -d :c534

Polecenie lsusb jest niezwykle użytecznym narzędziem w systemie Linux, które pozwala na uzyskanie informacji o podłączonych urządzeniach USB. Dzięki licznym przełącznikom, można dostosować wyjście do własnych potrzeb, wybierając tylko te informacje, które są potrzebne. Warto zaznajomić się z tym poleceniem, aby szybko i skutecznie diagnozować problemy z urządzeniami USB oraz lepiej zrozumieć ich funkcjonowanie w systemie Linux.


vmstat


Systemy operacyjne Linux są szeroko stosowane na całym świecie jako serwery, systemy wbudowane i komputery osobiste. Jednym z kluczowych aspektów zarządzania takim systemem jest monitorowanie i analiza wydajności. W tym artykule omówimy narzędzie vmstat, które jest niezwykle przydatne w monitorowaniu wydajności systemu, a także wszystkie jego przełączniki wraz z przykładami użycia.


Czym jest vmstat?

Vmstat (skrót od Virtual Memory Statistics) to narzędzie dostarczane z pakietem procps w systemach Linux. Służy do monitorowania systemu w czasie rzeczywistym, pokazując statystyki dotyczące procesów, pamięci, bloków I/O, przełączania kontekstu, interwałów systemowych oraz innych informacji na temat pracy systemu.


Składnia vmstat

Podstawowa składnia polecenia vmstat wygląda następująco:


vmstat [opcje] [opóźnienie] [liczba próbek]

Opcje to przełączniki, które można wykorzystać, aby zmodyfikować wynik polecenia. Opóźnienie określa liczbę sekund między kolejnymi próbkami, a liczba próbek wskazuje, ile próbek chcesz uzyskać.


Przełączniki vmstat

  • Bez przełączników

Uruchomienie polecenia vmstat bez żadnych przełączników wyświetli podstawowe statystyki systemu:


vmstat

Przykład wyniku:


procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1022836  33624 524104    0    0     1     1    0    0  1  1 98  0  0
  • Przełącznik -a

Przełącznik -a (aktywna pamięć) dodaje kolumny "inact" i "active" do wyjścia:


vmstat -a
  • Przełącznik -d

Przełącznik -d (dysk) pokazuje statystyki dysków:


vmstat -d
  • Przełącznik -D

Przełącznik -D (dysk) pokazuje statystyki dysków dla wszystkich dostępnych dysków:


vmstat -D
  • Przełącznik -f

Przełącznik -f (fork) pokazuje łączną liczbę procesów utworzonych od ostatniego uruchomienia systemu:


vmstat -f

  • Przełącznik -h

Przełącznik -h (ludzkie) wyświetla statystyki w formacie czytelnym dla człowieka, z jednostkami takimi jak K, M, G:


vmstat -h
  • Przełącznik -i

Przełącznik -i (przerwania) pokazuje statystyki przerwań systemowych:


vmstat -i
  • Przełącznik -m

Przełącznik -m (pamięć) pokazuje informacje o alokacji pamięci przez jądro:


vmstat -m
  • Przełącznik -n

Przełącznik -n (bez zmiany) sprawia, że vmstat nie próbuje dostosować szerokości kolumn do szerokości ekranu:


vmstat -n
  • Przełącznik -p

Przełącznik -p (partycja) pokazuje statystyki dla określonej partycji dysku:


vmstat -p /dev/sda1
  • Przełącznik -s

Przełącznik -s (podsumowanie) wyświetla podsumowanie statystyk:


vmstat -s
  • Przełącznik -S

Przełącznik -S (rozmiar) pozwala wybrać jednostki dla wartości pamięci. Można użyć "k" (kilobajty), "K" (kibibajty), "m" (megabajty), "M" (mebibajty), "g" (gigabajty) lub "G" (gibibajty):


vmstat -S M
  • Przełącznik -t

Przełącznik -t (czas) dodaje kolumnę z czasem do wyniku:


vmstat -t
  • Przełącznik -V

Przełącznik -V (wersja) pokazuje informacje o wersji vmstat:


vmstat -V
  • Przełącznik -w

Przełącznik -w (szeroko) wyświetla wynik w szerokim formacie, aby zmieścić wszystkie kolumny na ekranie:


vmstat -w


Przykłady użycia vmstat

  • Monitorowanie systemu co 5 sekund

Aby monitorować wydajność systemu co 5 sekund, można użyć polecenia:


vmstat 5
  • Wyświetlanie 10 próbek statystyk systemu co 1 sekundę

Aby wyświetlić 10 próbek statystyk systemu co 1 sekundę, można użyć polecenia:


vmstat 1 10
  • Wyświetlanie statystyk partycji dysku

Aby wyświetlić statystyki partycji dysku (np. /dev/sda1), można użyć polecenia:


vmstat -p /dev/sda1
  • Monitorowanie przerwań systemowych

Aby monitorować przerwania systemowe w czasie rzeczywistym, można użyć polecenia:



vmstat -i

  • Wyświetlanie statystyk alokacji pamięci

Aby wyświetlić informacje o alokacji pamięci przez jądro systemu, można użyć polecenia:


vmstat -m

  • Podsumowanie statystyk

Aby wyświetlić podsumowanie statystyk, można użyć polecenia:


vmstat -s

  • Wyświetlanie statystyk w formacie czytelnym dla człowieka

Aby wyświetlić statystyki w formacie czytelnym dla człowieka, można użyć polecenia:


vmstat -h

Polecenie vmstat jest niezwykle przydatnym narzędziem do monitorowania wydajności systemu Linux. Umożliwia łatwy dostęp do ważnych statystyk, takich jak procesy, pamięć, I/O, przerwania systemowe i inne, co pozwala na szybkie zrozumienie stanu systemu i identyfikację ewentualnych problemów. Zapoznanie się z dostępnymi przełącznikami i ich użyciem pozwoli na efektywne korzystanie z tego narzędzia i utrzymanie zdrowego systemu.






kexec


System operacyjny Linux, będący jednym z najbardziej popularnych na świecie, oferuje szeroki wachlarz narzędzi i poleceń, które ułatwiają zarządzanie i kontrolowanie systemu. Jednym z takich poleceń jest kexec - narzędzie, które umożliwia szybkie przeładowanie jądra systemu operacyjnego bez konieczności pełnego uruchamiania systemu. W tym artykule przedstawimy dokładne działanie polecania kexec, omówimy jego przełączniki oraz pokażemy przykłady ich użycia.


Czym jest kexec?

Kexec (Kernel EXEC) to mechanizm dostępny w jądrze Linux, który pozwala na bezpośrednie uruchomienie nowego jądra z bieżącego jądra, pomijając BIOS/UEFI, bootloader oraz inicjalizację sprzętu. Kexec może być używany do szybkiego przeładowania systemu, testowania nowych konfiguracji jądra czy też jako narzędzie do odzyskiwania danych. Kexec może również przyspieszyć proces aktualizacji jądra Linux, gdyż nie wymaga pełnego restartu systemu.



Przełączniki kexec

Polecenie kexec oferuje różne przełączniki, które pozwalają na kontrolowanie jego działania. Poniżej przedstawiamy opis poszczególnych przełączników wraz z przykładami ich użycia:



Przełącznik -l (lub --load)

Przełącznik -l pozwala załadować nowe jądro do pamięci, przygotowując je do uruchomienia. Przykład użycia:


sudo kexec -l /boot/vmlinuz-5.4.0-80-generic --initrd=/boot/initrd.img-5.4.0-80-generic --command-line="root=/dev/sda1 ro quiet splash"

W powyższym przykładzie załadowane zostanie jądro o nazwie "vmlinuz-5.4.0-80-generic" z katalogu "/boot", wraz z obrazem initrd "initrd.img-5.4.0-80-generic". Dodatkowo, przekazane zostają parametry jądra za pomocą opcji --command-line.



Przełącznik -e (lub --exec)

Przełącznik -e służy do natychmiastowego uruchomienia wcześniej załadowanego jądra. Przykład użycia:


sudo kexec -e

Uruchomienie powyższego polecenia spowoduje natychmiastowe uruchomienie wcześniej załadowanego jądra za pomocą przełącznika -l.



Przełącznik -u (lub --unload)

Przełącznik -u pozwala na usunięcie wcześniej załadowanego jądra z pamięci, anulując tym samym planowane uruchomienie nowego jądra. Przykład użycia:


sudo kexec -u

W wyniku wykonania powyższego polecenia, wcześniej załadowane jądro zostanie usunięte z pamięci, a system będzie kontynuować działanie z aktualnym jądrem.



Przełącznik -p (lub --load-preserve-context)

Przełącznik -p pozwala załadować jądro do pamięci, zachowując jednocześnie bieżący kontekst systemu, co może być użyteczne podczas odzyskiwania danych lub diagnostyki systemu. Przykład użycia:


sudo kexec -p /boot/vmlinuz-5.4.0-80-generic --initrd=/boot/initrd.img-5.4.0-80-generic --command-line="root=/dev/sda1 ro single"

W powyższym przykładzie, załadowane zostanie jądro w trybie awaryjnym (single-user mode), zachowując bieżący kontekst systemu. W wyniku tego, użytkownik może uzyskać dostęp do systemu, nawet jeśli aktualne jądro nie działa poprawnie.



Przełącznik -f (lub --force)

Przełącznik -f wymusza wykonanie operacji, nawet jeśli wcześniej załadowane jądro nie jest kompatybilne z bieżącym systemem. Przykład użycia:


sudo kexec -f -l /boot/vmlinuz-5.4.0-80-generic --initrd=/boot/initrd.img-5.4.0-80-generic --command-line="root=/dev/sda1 ro quiet splash"

Przełącznik -f może być użyteczny podczas testowania nowych wersji jądra lub eksperymentowania z różnymi konfiguracjami systemu.



Przełącznik -t (lub --type)

Przełącznik -t pozwala określić typ obrazu jądra, który ma zostać załadowany. Dostępne typy to "bzImage", "multiboot", "multiboot2" i "elf". Przykład użycia:


sudo kexec -t bzImage -l /boot/vmlinuz-5.4.0-80-generic --initrd=/boot/initrd.img-5.4.0-80-generic --command-line="root=/dev/sda1 ro quiet splash"

W powyższym przykładzie, jądro zostanie załadowane jako obraz typu "bzImage". Opcja ta jest przydatna, gdy jądro nie jest domyślnie rozpoznawane przez kexec.



Przełącznik -v (lub --version)

Przełącznik -v wyświetla informacje o wersji programu kexec. Przykład użycia:


kexec -v

Po wykonaniu powyższego polecenia, zostanie wyświetlona informacja o wersji programu kexec, co pozwala na sprawdzenie, czy używana wersja jest aktualna.



Przełącznik -h (lub --help)

Przełącznik -h wyświetla krótki opis dostępnych przełączników oraz sposób ich użycia. Przykład użycia:


kexec -h

Po wykonaniu powyższego polecenia, zostanie wyświetlona pomoc zawierająca informacje o dostępnych przełącznikach i ich zastosowaniu. To przydatne narzędzie dla osób, które dopiero zaczynają korzystać z kexec lub potrzebują szybkiego przypomnienia.



Przykładowy scenariusz użycia kexec

Przedstawiamy poniżej przykład scenariusza, w którym kexec może okazać się przydatne. Załóżmy, że mamy system Linux zainstalowany na dysku "/dev/sda1" i chcemy przetestować nową wersję jądra. Postępujemy zgodnie z poniższymi krokami:

  1. Pobieramy i instalujemy nową wersję jądra (np. "vmlinuz-5.10.0-100-generic" oraz "initrd.img-5.10.0-100-generic").

  2. Za pomocą przełącznika -l, ładujemy nową wersję jądra do pamięci:


sudo kexec -l /boot/vmlinuz-5.10.0-100-generic --initrd=/boot/initrd.img-5.10.0-100-generic --command-line="root=/dev/sda1 ro quiet splash"

Wykonujemy polecenie z przełącznikiem -e, aby uruchomić nowe jądro:


sudo kexec -e

Po uruchomieniu nowego jądra, sprawdzamy jego działanie oraz poprawność konfiguracji. Jeśli wszystko działa poprawnie, możemy zaktualizować konfigurację bootloadera, aby nowa wersja jądra była uruchamiana podczas kolejnych restartów systemu.


Kexec to potężne narzędzie, które pozwala na szybkie przeładowanie jądra systemu operacyjnego, testowanie nowych konfiguracji oraz diagnozę i odzyskiwanie danych. Jego elastyczność i różnorodne możliwości sprawiają, że jest nieocenionym narzędziem dla administratorów systemów Linux.




Podsumowanie


Poleceń które współpracują lub operują w systemie linux z jądrem jest jeszcze kilkadziesiąt. Poznałeś tutaj w mojej ocenie najciekawsze oraz te najczęściej używane. Artykuł ten to nie koniec a jedynie początek naszej przygody z systemem linux. Pozdrawiam


Poprzednie części:

448 wyświetleń0 komentarzy

Ostatnie posty

Zobacz wszystkie

Śledź nasze wpisy w social media

  • Instagram
  • Facebook
  • Twitter
  • LinkedIn
  • YouTube

Poznaj terraform jedno z najepszych narzedzi do zarządzania infrastrukturą w kodzie (IaC) - w kursie tym przeprowadzam Cię przez proces instalacji i konfiguracji tego narzędzia.

bottom of page