Гид по технологиям

Команда uname в Linux: как получать информацию о системе

• 5 min read • Linux • Обновлено 29 Nov 2025
Команда uname в Linux — справочник по флагам
Команда uname в Linux — справочник по флагам

Как использовать команду uname в Linux

Команда uname — первый инструмент, к которому обращаются администраторы, разработчики скриптов и любопытные пользователи, когда нужно получить сведения о ядре и операционной системе. Она входит в состав GNU coreutils на большинстве дистрибутивов Linux и доступна в Unix-подобных системах.

Что такое команда uname

uname выводит базовую информацию об операционной системе и ядре в компактном формате. Название происходит от «Unix name», но реализация есть во многих ОС. В среде Windows аналогом по назначению считается команда ver в командной строке.

Базовый синтаксис:

uname [опции]

Если вызвать uname без опций, выводится имя ядра:

$ uname
Linux

Чтобы получить всю доступную информацию в одной строке, используйте флаг -a (All):

$ uname -a

Вывод может выглядеть так:

Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux

Вывод uname -a: полная информация о ядре и ОС

Разбор полей в строке uname -a

Типичная строка содержит несколько полей, разделённых пробелами. Разберём каждое по порядку:

  • Kernel name — имя ядра. Обычно “Linux”.
  • Hostname — имя хоста системы, задаётся при установке или вручную.
  • Kernel release — релиз ядра, например 5.10.0-kali7-amd64.
  • Kernel version — версия/сборка ядра с номером сборки и датой, например “#1 SMP Debian 5.10.28-1kali1 (2021-04-12)”.
  • Machine hardware name — архитектура CPU, например x86_64.
  • Operating system — название пользовательской ОС, часто GNU/Linux.

Пример строки для анализа:

Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux

Если какая-то информация неизвестна системе, uname может опустить соответствующее поле вместо того, чтобы выводить “unknown”.

Вывод отдельных полей

Каждый ключевой фрагмент строки соответствует отдельному флагу. Часто полезно запрашивать только нужное поле.

  • Kernel name: -s
  • Hostname: -n
  • Kernel release: -r
  • Kernel version: -v
  • Machine hardware name: -m
  • Processor: -p
  • Hardware platform: -i
  • Operating system: -o

Примеры:

$ uname -o
GNU/Linux

$ uname -r
5.10.0-kali7-amd64

$ uname -m
x86_64

Для получения справки и информации о версии используйте –help и –version:

$ uname --help
$ uname --version

Помощь и опции команды uname

uname (GNU coreutils) 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

Шпаргалка по часто используемым командам

  • uname — только имя ядра
  • uname -a — полная информация в одну строку
  • uname -r — релиз ядра
  • uname -v — версия/сборка ядра
  • uname -m — архитектура машины
  • uname -n — имя хоста
  • uname -p — тип процессора (может быть неизвестно)
  • uname -o — название ОС

Используйте их в скриптах, когда нужно адаптировать поведение под архитектуру или версию ядра.

Когда uname даёт неполный вывод и как это исправить

Важно понимать причины пустых или отсутствующих полей:

  • Некоторые ядры или сборки не предоставляют информацию о платформе или процессоре — поле будет опущено.
  • В контейнерах (Docker, LXC) hostname и другие поля могут быть настроены по-другому или ограничены.
  • В кастомных сборках ядра метаданные о версии могут содержать минимальную информацию.

Как диагностировать проблему:

  1. Сравните вывод uname с /proc/version и /etc/os-release:
$ cat /proc/version
$ cat /etc/os-release
  1. В контейнере проверьте настройки окружения и монтирования /proc.
  2. При необходимости соберите ядро с нужными конфигурациями или обновите пакеты дистрибутива.

Совместимость между системами

  • На Linux uname из coreutils; на BSD и macOS реализация может отличаться по списку опций.
  • В Windows нет uname; для похожей информации используется ver или PowerShell (Get-CimInstance Win32_OperatingSystem).
  • Скрипты, использующие uname, стоит тестировать на целевых платформах и учитывать отсутствие некоторых флагов.

Чек-лист для ролей

Администратор:

  • Проверить uname -a при сборе информации об инциденте.
  • Сопоставить релиз ядра с установленными патчами.

Разработчик скриптов:

  • Использовать uname -m для выбора бинарников по архитектуре.
  • Явно обрабатывать возможный пустой вывод полей -p и -i.

QA-инженер:

  • Убедиться, что скрипт корректно парсит строки uname на разных системах.
  • Добавить тесты для контейнерных окружений.

Критерии приёмки для автоматизированных проверок

  • Скрипт корректно определяет архитектуру (uname -m) на x86_64 и arm64.
  • Скрипт не падает при пустом значении uname -p и логирует fallback.
  • Для проверки версии ядра используется uname -r, и сравнение числовое устойчивое к суффиксам.

Пример простого парсера (bash):

arch=$(uname -m)
if [ "$arch" = "x86_64" ]; then
  echo "64-bit"
else
  echo "Другая архитектура: $arch"
fi

План действий при подозрениях на несовместимость

  1. Сравните uname с /proc/version и /etc/os-release.
  2. Запустите uname в минимальном окружении (chroot или чистый контейнер).
  3. Проверьте версию coreutils: uname –version.
  4. Если требуется детальная информация о ядре, используйте dmesg, lscpu и dmidecode.

Примеры альтернативных подходов

  • Для детальной информации о процессоре используйте lscpu или /proc/cpuinfo.
  • Для идентификации дистрибутива полагайтесь на /etc/os-release.
  • Для проверки модулей ядра используйте lsmod и modinfo.

Мини-методология для сбора диагностики системы

  1. uname -a — получить базовую строку.
  2. cat /etc/os-release — определить дистрибутив.
  3. lscpu и free -h — узнать архитектуру и память.
  4. dmesg | head — посмотреть сообщения ядра при старте.

Глоссарий одной строкой

  • Ядро — программный компонент, управляющий ресурсами и аппаратурой.
  • Релиз ядра — номер сборки ядра (uname -r).
  • Архитектура — набор инструкций процессора, например x86_64.

Контроль безопасности и приватности

uname сам по себе не раскрывает чувствительных данных, но вывод может включать hostname и сборочные метки. Не публикуйте строки uname -a в открытых форумах, если в них содержатся служебные имена или внутренние метки сборки.

Частые ошибки и примеры, когда uname не подходит

  • Ожидание подробной информации о ядре на уровне исходников — uname этого не даёт.
  • Неправильный парсинг строки uname -a в скриптах, если в hostname есть пробелы или специальные символы.
  • Сравнение версий как строк без нормализации (например “5.10” vs “5.10.0-kali7”) может дать ложные результаты.

Итог и рекомендации

  • Для быстрого аудита системы используйте uname -a, а для задач скриптинга — отдельные флаги.
  • Всегда проверяйте совместимость реализации uname на целевой платформе.
  • При автоматизации обрабатывайте отсутствие полей и используйте дополнительные утилиты (lscpu, /etc/os-release) для надёжной информации.

Важно: не публикуйте строки uname -a с внутренними именами хостов в публичных отчетах.

Ключевые ссылки для чтения: проверьте man uname и файлы /proc/version и /etc/os-release на вашей системе.

Вывод: uname — компактный и быстрый инструмент для получения сведений о ядре и системе. Он не заменит специализированных утилит, но идеально подходит для скриптов и первичной диагностики.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро