uname

Что делает команда uname в Linux

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

При выполнении команды без параметров (uname) выводится только тип операционной системы, например:

Bash
$ uname
Linux

Эта простая команда часто используется в скриптах и при диагностике системы, чтобы определить, с какой средой или архитектурой работает пользователь.

Основные параметры команды uname

Ниже перечислены ключевые параметры, которые позволяют детализировать вывод команды uname в Linux.

Параметр -a — вся доступная информация

Флаг -a (от слова all) выводит все данные, доступные через команду uname в Linux:

  • имя ядра
  • имя хоста
  • версия ядра
  • дата сборки
  • архитектура

Пример:

Bash
$ uname -a
Linux workstation 6.6.10-arch1-1 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

Вывод полезен для быстрого сбора сведений о системе, например, при отладке или формировании отчётов о среде.

Совет: если вы часто используете uname -a, создайте алиас в .bashrc, например:
Bash
alias sysinfo='uname -a'

Параметр -s — тип операционной системы

Флаг -s используется по умолчанию, если вызвать команду uname в Linux без аргументов.
Пример:

Bash
$ uname -s
Linux

Это особенно полезно при написании кроссплатформенных bash-скриптов, где нужно определить, запущен ли скрипт в Linux, macOS или другой Unix-подобной системе.

Параметр -n — сетевое имя хоста

Команда:

Bash
$ uname -n
server01

Показывает имя узла (hostname), установленное в системе.
Этот параметр аналогичен выводу команды hostname, но более универсален.
Пригодится в автоматизации и настройке сетевых сервисов.

Параметр -r — версия ядра Linux

Bash
$ uname -r
6.8.12-arch1-2

Этот флаг позволяет быстро узнать, какая версия ядра запущена в системе.
Знание версии ядра важно при установке драйверов, модулей ядра или при отладке системных ошибок.

Параметр -v — информация о сборке ядра

Bash
$ uname -v
#1 SMP PREEMPT_DYNAMIC Fri Jan 19 17:32:22 UTC 2024

Выводит дату и время компиляции ядра.
Эта информация помогает определить, насколько стара сборка ядра, а также используется при анализе изменений после обновлений.

Параметр -m — архитектура аппаратной платформы

Bash
$ uname -m
x86_64

Выводит архитектуру процессора, например x86_64, armv7l, aarch64 и т.д.
Этот параметр незаменим при установке программного обеспечения, особенно если нужно выбрать пакет под конкретную архитектуру.

Совет: перед установкой бинарных файлов всегда проверяйте архитектуру с помощью uname -m, чтобы избежать несовместимости.

Параметр -p — тип процессора

Bash
$ uname -p
x86_64

Иногда вывод может быть “unknown”, если информация не доступна в текущей сборке.
Параметр полезен при проверке аппаратных различий между системами.

Параметр -i — платформа аппаратуры

Bash
$ uname -i
x86_64

Как и -m, выводит архитектурную платформу, но в некоторых системах может возвращать более специфичные данные (например, модель аппаратуры).

Параметр -o — имя операционной системы

Bash
$ uname -o
GNU/Linux

Отличается от -s, так как показывает полное название семейства ОС.
Например, -s может вернуть “Linux”, а -o — “GNU/Linux”.

Примеры использования команды uname в Linux

Получение только архитектуры процессора

Bash
uname -m

Результат — x86_64, что означает 64-битную архитектуру.
Эта информация часто используется при установке программ, где необходимо выбрать между версиями amd64 и i386.

Проверка версии ядра перед обновлением

Bash
uname -r

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

Формирование пользовательского вывода

Можно комбинировать параметры:

Bash
uname -srm

Выведет тип ОС, версию ядра и архитектуру.
Это удобно для кратких отчетов об окружении.

Как использовать uname в скриптах

Команда uname в Linux часто применяется в shell-скриптах для автоматического определения среды. Например:

Bash
#!/bin/bash
if [[ "$(uname -s)" == "Linux" ]]; then
    echo "Скрипт запущен под Linux"
else
    echo "Неподдерживаемая система"
fi

Этот пример позволяет выполнять определённые действия только в подходящей операционной системе.

Полезные советы по работе с uname

Совет 1: используйте uname -a при обращении за помощью на форумах или при создании отчётов об ошибках — это ускорит диагностику вашей системы.
Совет 2: в сочетании с другими утилитами (lsb_release, hostnamectl) команда uname в Linux помогает получить полную картину о системе, включая дистрибутив, ядро и аппаратные данные.