Команда uname в Linux: быстрое руководство

Быстрые ссылки
Что такое uname в Linux?
Опции команды uname
Совместное использование опций
Узнайте информацию о системе Linux
Краткое содержание
- Команда «uname» — удобный инструмент для получения базовой информации об операционной системе и аппаратной платформе Linux.
- Разные опции показывают имя хоста, версию ядра и архитектуру процессора.
- Частые опции: -s (имя ядра), -a (вся доступная информация), -r (релиз ядра). Опции можно комбинировать.
Что такое uname в Linux?
Команда uname (от «UNIX name») — это простая утилита, доступная обычному пользователю без специальных привилегий, которая выводит базовую системную информацию: имя и версию ядра, архитектуру машины, сетевой узел (hostname) и др. Её удобно применять для тревелшутинга, автоматизации в скриптах, проверки совместимости и мониторинга.
Определение в одну строку: uname — утилита для быстрого получения сведений об ОС и аппаратной платформе.
Базовый синтаксис:
uname [OPTION]Параметр [OPTION] указывает, какую именно информацию нужно вывести. Без параметров uname обычно выводит имя ядра (часто “Linux”). Вывод может различаться в дистрибутивах — некоторые дистрибутивы подставляют своё имя или кодовое имя.
Примеры для справки:
unameПроверка версии самой утилиты:
uname --version
Чтобы увидеть справку по возможным опциям:
uname --help
Опции команды uname
Команда поддерживает несколько полезных опций. В таблице перечислены наиболее релевантные и перевод их названий.
| Параметр | Долгий вариант | Описание |
|---|---|---|
| -s | –kernel-name | Имя ядра (напр., Linux) |
| -a | –all | Вся доступная информация: имя ядра, версия, тип процессора и платформа |
| -r | –kernel-release | Релиз ядра |
| -n | –nodename | Имя узла в сети (hostname) |
| -m | –machine | Архитектура машины (machine hardware name) |
| -v | –kernel-version | Версия ядра (информация о билде) |
| -i | –hardware-platform | Платформа аппаратного обеспечения (не всегда поддерживается) |
| -p | –processor | Тип процессора/CPU (не всегда поддерживается) |
| -o | –operating-system | Название операционной системы |
Ниже — практические примеры и объяснения.
Показать всю информацию
Опция -a выводит всё в одну строку — удобно для быстрого осмотра:
uname -aТипичный вывод можно разбить на компоненты:
- Первое поле: имя ядра (например, Linux).
- Hostname: сетевое имя системы, где выполнена команда.
- Релиз ядра: версия ядра с патч-уровнем (например, 6.2.0-33-generic).
- Информация о билде: номер сборки, метки SMP/PREEMPT и дата сборки.
- machine: архитектура (x86_64 или i686 и т. д.).
- processor/hardware platform: иногда повторяются и выглядят одинаково.
- Операционная система: часто GNU/Linux.
Пример разбора вывода помогает понять, какие поля за что отвечают и где искать несовместимости при установке модулей или драйверов.
Показать имя ядра
Без опций или с -s выводится имя ядра:
uname -sЭто удобно, когда нужно быстро отличить ядро Linux от других UNIX-подобных систем.
Показать версию ядра
Опция -v показывает подробную информацию о билде ядра, включая метку SMP, PREEMPT и дату сборки:
uname -vРазбор типичных полей вывода:
- Метка сборки дистрибутива (например, #33~22.04.1-Ubuntu).
- SMP означает поддержку симметричной мультипроцессорности.
- PREEMPT_DYNAMIC указывает на варианты препемптиции, влияющие на задержку задач.
- Дата и время сборки ядра.
Если нужна только номерная часть релиза, используйте:
uname -rНапример, “6.2.0-33-generic” обычно содержит основную версию (6.2.0), номер сборки (33) и тег сборки (generic).
Показать hostname (сетевой узел)
uname -nЭто соответствует выводу команды hostname; также можно использовать hostnamectl для получения расширённых сведений о хосте.
Показать аппаратную архитектуру
uname -mТипичный вывод — x86_64 (64‑битная архитектура) или i686 (32‑битное ядро). Часто -m, -p и -i показывают одинаковую информацию.
Показать название операционной системы
uname -oОбычно вывод — GNU/Linux; это полезно при автоматическом обнаружении семейства ОС в скриптах.
Использование опций вместе
Опции можно комбинировать слитно или через пробелы:
uname -r -v
uname -rv
uname -srm
uname -snrvmoКоманда uname -snrvmo эквивалентна uname -a по набору полей и часто применяется в скриптах для явного выбора полей.
Кейсы использования и сценарии
- Диагностика несовместимости модулей: перед установкой модуля ядра сверяйте uname -r и версию заголовков.
- Автоматизация развёртываний: в скриптах проверяйте uname -m, чтобы выбирать правильные двоичные сборки.
- Мониторинг и аудит: для отчётов об инвентаризации собирайте uname -a вместе с output lsb_release и /etc/os-release.
Альтернативные и дополнительные команды
Команда uname — не единственный инструмент для получения системной информации. Рассмотрите следующие альтернативы:
- lshw — подробный список аппаратных компонентов (CPU, память, диски, контроллеры USB).
- lscpu — сводка по CPU и архитектуре.
- lsblk, fdisk, df — для информации о дисках и файловых системах.
- hostnamectl — управление и вывод информации о хосте, интеграция с systemd.
- cat /etc/os-release или lsb_release -a — для детальной информации о дистрибутиве.
Выбор зависит от цели: для быстрой проверки подходит uname, для глубокого аудита — lshw и соответствующие утилиты.
Шпаргалка быстрого доступа (Cheat sheet)
- uname -s — имя ядра
- uname -r — релиз ядра
- uname -v — версия ядра / дата билда
- uname -m — архитектура машины
- uname -p — тип процессора (если поддерживается)
- uname -i — аппаратная платформа (если поддерживается)
- uname -n — сетевой узел/hostname
- uname -o — операционная система
- uname -a — всё в одной строке
Использование в скриптах:
KERNEL=$(uname -r)
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
echo "64-bit system"
fiЧек-листы по ролям
Администратор (sysadmin):
- Проверить uname -r перед установкой модулей ядра.
- Сравнить uname -a на разных серверах для выявления несоответствий.
- Собирать uname -a для инвентаризации хостов.
Инженер DevOps:
- В скриптах развёртывания использовать uname -m для выбора артефактов.
- Логгировать uname -a в CI/CD job outputs для трассировки проблем.
Служба поддержки (helpdesk):
- Просить пользователя прислать вывод uname -a при обращении о проблемах с совместимостью.
- Использовать uname -n для проверки, что клиент подключён к правильному хосту.
Разработчик драйверов/модулей:
- Сверять таргет-версию ядра (uname -r) с заголовками ядра.
- Проверять наличие CONFIG_ опций в конфигурации ядра при отладке.
Методология применеия uname в автоматизации
- Собирать минимально необходимую информацию (обычно -m и -r).
- Нормализовать вывод в скриптах (убрать лишние пробелы, использовать переменные).
- Логировать результаты и привязывать к идентификатору билда/инвентаря.
- При несовпадении версий — отклонять установку и выводить понятное сообщение.
Пример процедуры в скрипте:
# Проверка совместимости ядра перед установкой
REQUIRED_KERNEL="6.2.0"
CUR_KERNEL=$(uname -r | cut -d- -f1)
if [ "${CUR_KERNEL%%.*}" -lt "${REQUIRED_KERNEL%%.*}" ]; then
echo "Требуется ядро ${REQUIRED_KERNEL} или новее. Текущая версия: $CUR_KERNEL"
exit 1
fiКогда uname может подвести: типичные ограничения
- Опции -p и -i не поддерживаются на всех платформах; вывод может быть неизвестным или “unknown”.
- uname не даёт подробной информации о версиях пакетов или драйверов — для этого нужны другие утилиты (modinfo, dpkg/rpm).
- uname показывает информацию только о запущенном ядре, а не о доступных заголовках или исходниках.
Противоположный пример: если требуется информация о микрокоде CPU или об отдельных моделях дисков — uname бесполезен.
Совместимость и миграция
При миграции серверов обратите внимание на следующее:
- Сравнивайте uname -r и uname -m на старом и новом хосте.
- При смене архитектуры (x86_64 → arm64) пересобирайте бинарники и зависимости.
- Убедитесь, что конфигурация grub и initramfs соответствуют новому ядру; uname покажет только результат после загрузки.
Безопасность и приватность
- Вывод uname не содержит конфиденциальных данных по умолчанию, однако в корпоративном окружении логирование uname -a может раскрыть версию ядра и детали сборки, которые помогают злоумышленнику в подборе эксплойтов. Логируйте и публикуйте такую информацию осознанно.
- Ограничьте доступ к деталям билда ядра в публичных отчетах.
Тестовые случаи и критерии приёмки
Критерии приёмки для автоматизированной проверки скрипта, который использует uname:
- Скрипт корректно считывает uname -r и uname -m на x86_64 и i686 системах.
- При неподдерживаемом поле (-p или -i) скрипт обрабатывает значение “unknown” как допустимое.
- Логи содержат uname -a перед выполнением критичных операций (установка модулей, обновление ядра).
Примеры тест-кейсов:
- Запустить на VM с ядром 6.x, проверить, что uname -r начинается с 6.
- Запустить на 32‑битной среде, проверить, что uname -m возвращает i686 или аналог.
- Смоделировать недоступность поля -p и убедиться, что скрипт не падает.
Примеры и шаблоны (Templates)
Шаблон команды для инвентаризации хостов (однострочник для Ansible/SSH):
ssh root@host "uname -a; lsb_release -a 2>/dev/null || cat /etc/os-release"CSV-шаблон для сбора сведений о группе хостов:
| hostname | kernel | kernel_version | arch | os |
|---|---|---|---|---|
| $(uname -n) | $(uname -s) | $(uname -r) | $(uname -m) | $(uname -o) |
Сводка фактов
- uname — лёгкая, кросс-платформенная команда, полезная для быстрых проверок.
- Не заменяет глубокие системные утилиты, но обязателен в арсенале администратора.
Важно: uname показывает состояние загруженного ядра, а не полностью описывает состояние пакетов или модулей.
Часто задаваемые вопросы
Что показывает uname -a?
uname -a объединяет большинство полей: имя ядра, имя узла, релиз и версию ядра, архитектуру машины и ОС.
Почему uname -p показывает unknown?
Поле -p зависит от реализации libc/ядра и может быть не поддержано на некоторых платформах. В таких случаях возвращается “unknown”.
Как использовать uname в скриптах для выбора пакетов?
Сравнивайте uname -m и заранее поддерживаемые архитектуры; при несовпадении — выдавайте понятное сообщение и прерывайте установку.
Короткое резюме:
- Используйте uname для быстрой диагностики и валидации окружения.
- Для подробного аудита комбинируйте uname с lshw, lscpu и /etc/os-release.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone