Víte, že linuxové jádro načte několik ovladačů zařízení při startu systému? Ve skutečnosti, když je váš systém v provozu a připojíte hardwarové zařízení, načte se také odpovídající ovladač zařízení. Jádro samozřejmě dělá i spoustu dalších věcí. Co když chcete vědět informace související s těmito aktivitami jádra?
Existuje příkaz - dabovaný dmesg - který můžete použít, pokud chcete získat přístup ke zprávám vytištěným jádrem. V tomto tutoriálu na několika snadno srozumitelných příkladech pochopíme, jak nástroj dmesg funguje.
Příkaz dmesg pro Linux
Příkaz dmesg vám umožňuje tisknout nebo ovládat vyrovnávací paměť jádra. Následuje jeho syntaxe:
dmesg [options]
A zde je návod, jak to vysvětluje manuálová stránka nástroje:
dmesg is used to examine or control the kernel ring buffer. The default action is to display all
messages from the kernel ring buffer.
Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak příkaz dmesg funguje.
O1. Jak používat příkaz dmesg?
Můžete začít používat příkaz dmesg bez možnosti příkazového řádku.
dmesg
Zde je například malá část výstupu, který příkaz vytvořil v mém případě:
Q2. Jak omezit výstup pouze na chyby a varování?
Pokud na svém systému spustíte dmesg, uvidíte, že vydává spoustu informací. V závislosti na tom, co hledáte, možná budete chtít filtrovat nebo omezit výstup. dmesg vám tuto schopnost nabízí prostřednictvím 'úrovní'. Následuje úplný seznam úrovní (spolu s jejich vysvětlením):
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
Pokud tedy například chcete omezit výstup pouze na chyby a varování, můžete to udělat následujícím způsobem:
dmesg --level=err,warn
V mém případě je zde část výstupu vytvořeného výše uvedeným příkazem:
Q3. Jak přimět dmesg produkovat časová razítka na výstupu?
Někdy můžete chtít, aby bylo časové razítko spojeno se zprávami, které dmesg vytváří. To lze provést pomocí volby příkazového řádku -T, která vytváří časová razítka čitelná pro člověka.
dmesg -T
Následuje příklad výstupu:
Můžete tedy vidět, že u každé zprávy je přednastaveno časové razítko.
4. Jak zajistit, aby dmesg zobrazoval informace specifické pro zařízení?
Předpokládejme, že chcete, aby dmesg zobrazoval pouze informace související s rozhraním eth0. Můžete to udělat takto:
dmesg | grep -i eth0
Následuje příklad výstupu:
O5. Jak zajistit, aby dmesg zobrazoval pouze zprávy v uživatelském prostoru?
Pokud chcete omezit výstup dmesg pouze na zprávy v uživatelském prostoru, použijte volbu -u příkazového řádku.
dmesg -u
Závěr
Souhlasím, dmesg není druh příkazu, který budete potřebovat každý den. Ale toto je nástroj, na který se můžete obrátit, když vás někdo (koho jste požádali o pomoc v určitém tématu) požádá o poskytnutí zpráv jádra. Tento případ jsem většinou viděl na online uživatelských fórech, kde zkušení uživatelé žádali o výstup jádra.
Zde, v tomto tutoriálu, jsme probrali příkaz dmesg z pohledu začátečníků (jen pro začátek). Jakmile si procvičíte vše, co jsme zde probrali, přejděte na manuálovou stránku nástroje.