Někdy je nutné rychle zjistit podrobnosti, jako je název jádra, verze, název hostitele atd. v linuxovém boxu, který používáte.
I když všechny tyto podrobnosti můžete najít v příslušných souborech přítomných v souborovém systému proc, je jednodušší použít nástroj uname pro rychlé získání těchto informací.
Základní syntaxe příkazu uname je :
uname [OPTION]...
Nyní se podívejme na několik příkladů, které demonstrují použití příkazu ‚uname‘.
uname bez možnosti
Když je příkaz „uname“ spuštěn bez jakékoli možnosti, vytiskne pouze název jádra. Takže výstup níže ukazuje, že se jedná o ‚linuxové‘ jádro, které tento systém používá.
$ uname Linux
Můžete také použít uname -s, které také zobrazí název jádra.
$ uname -s Linux
Získejte název hostitele síťového uzlu pomocí volby -n
Použijte volbu uname -n k načtení názvu hostitele síťového uzlu vašeho linuxového boxu.
$ uname -n dev-server
Výše uvedený výstup bude stejný jako výstup příkazu hostname.
Získejte vydání jádra pomocí volby -r
Příkaz uname lze také použít k načtení informací o vydání jádra. K tomuto účelu lze použít volbu -r.
$ uname -r 2.6.32-100.28.5.el6.x86_64
Získejte verzi jádra pomocí volby -v
Příkaz uname lze také použít k načtení informací o verzi jádra. K tomuto účelu lze použít volbu -v.
$ uname -v #1 SMP Wed Feb 2 18:40:23 EST 2011
Získejte název hardwaru počítače pomocí volby -m
Příkaz uname lze také použít k načtení názvu hardwaru počítače. K tomuto účelu lze použít volbu -m. To znamená, že se jedná o 64bitový systém.
$ uname -m x86_64
Získejte typ procesoru pomocí volby -p
Příkaz uname lze také použít k načtení informací o typu procesoru. K tomuto účelu lze použít volbu -p. Pokud příkaz uname není schopen načíst informace o typu procesoru, pak na výstupu vytvoří „neznámý“.
$ uname -p x86_64
Někdy můžete vidět „neznámý“ jako výstup tohoto příkazu, pokud uname nebyl schopen načíst informace o typu procesoru.
Získejte hardwarovou platformu pomocí volby -i
Příkaz uname lze také použít k načtení informací o hardwarové platformě. K tomuto účelu lze použít volbu -i. Pokud příkaz uname není schopen načíst informace o hardwarové platformě, pak na výstupu vytvoří „neznámý“.
$ uname -i x86_64
Někdy můžete vidět „neznámý“ jako výstup tohoto příkazu, pokud uname nebyl schopen načíst informace o platformě.
Získejte název operačního systému pomocí volby -o
Příkaz uname lze také použít k načtení názvu operačního systému. K tomuto účelu lze použít volbu -o.
Například:
$ uname -o GNU/Linux
Získejte všechny informace pomocí volby uname -a
Všechny informace, ke kterým jsme se dosud naučili přistupovat pomocí různých příznaků, lze získat najednou. K tomuto účelu lze použít volbu -a.
$ uname -a Linux dev-server 2.6.32-100.28.5.el6.x86_64 #1 SMP Wed Feb 2 18:40:23 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
Neznámá hodnota ve výstupu uname
Při psaní tohoto článku jsem byl trochu zvědavý, proč nástroj uname vrací „neznámý“ pro typ procesoru (-p) a hardwarovou platformu (-i) na mém notebooku, na kterém běží Ubuntu. Trochu jsem tento problém zkoumal.
Jedno vysvětlení, které jsem našel, bylo, že příkaz uname používá funkci uname() (man 2 uname), která čte všechny informace z následující struktury jádra:
struct utsname { char sysname[]; /* Operating system name (e.g., "Linux") */ char nodename[]; /* Name within "some implementation-defined network" */ char release[]; /* OS release (e.g., "2.6.28") */ char version[]; /* OS version */ char machine[]; /* Hardware identifier */ #ifdef _GNU_SOURCE char domainname[]; /* NIS or YP domain name */ #endif };
Vzhledem k tomu, že informace o typu procesoru a hardwarové platformě nejsou v této struktuře přítomny, příkaz uname pro ně vrací „neznámé“.
Další vysvětlení, které jsem našel, bylo, že uvnitř uname.c je zpracování volby -p jako :
... ... ... char const *element = unknown; #if HAVE_SYSINFO && defined SI_ARCHITECTURE { static char processor[257]; if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) element = processor; } #endif ... ... ...
Makra HAVE_SYSINFO a SI_ARCHITECTURE nejsou nikde v jádře definována, a proto je vráceno neznámé. Totéž by mohlo platit pro volbu -i.
Nejsem si jistý přesným problémem, ale můžeme s jistotou předpokládat, že volby -p a -i nejsou standardní a pouze rozšíření, a proto je třeba se jim vyhnout při používání příkazu uname ve skriptu.