Практические примеры использования uname
Oct 27, 2016 09:58 · 286 words · 2 minute read
Порой необходимо быстро узнать подробности (версию или имя ядра, разрядность, имя хоста) используемого дистрибутива Linux. Давайте разберемся с практическим применением утилиты uname
!
Синтаксис команды uname
прост:
uname [OPTIONS]
Результат использования команды uname
без параметров:
uname
Linux
Точно такой результат можно получить используя опцию -s
:
uname -s
Linux
Для получения имени хоста нужно использовать опцию -n
:
uname -n
db1
Чтобы получить информацию о релизе ядра используем опцию -r
:
uname -r
3.16.0-4-amd64
Информацию о версии ядра можно увидеть с помощью опции -v
:
uname -v
#1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
Тип (класс) используемого железа, (он же machine hardware name) -m
:
uname -m
x86_64
Получить информацию о типе процессора можно с помощью опции -p
. Если утилита не может прочесть эти данные, то возвращается «unknown»:
uname -p
unknown
Информацию о типе платформы можно получить используя опцию -i
. Как и в предыдущем случае, если данные не получится прочесть, то будет выведено «unknown»:
uname -i
unknown
Для получения имени операционной системы используется опция -o
:
uname -o
GNU/Linux
Вывести «все и сразу» можно с опцией -a
:
uname -a
Linux db1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
В примерах выше утилита uname
вернула «unknown» вместо информации о типе процессора и типе платформы. Одно из объяснений такого поведения может быть в том, что uname
читает всю информацию из следующей структуры:
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
};
Как видим, в этой структуре действительно отсутствует информация о типе процессора и типе платформы, поэтому утилита uname
и возвращает «unknown».