Bash - работа с системой
Команды BASH
4
Сообщения
1
Posters
9
Просмотры
-
Содержание
-
Узнать версию дистрибутива
Вот самый полный и рабочий на 2025 год набор команд для определения версии и названия дистрибутива Linux. Всё проверено на реальных системах: Debian 12/13, Ubuntu 24.04/24.10, Mint 22, Fedora 41, Arch, openSUSE Tumbleweed/Leap, RHEL 9/10, Alma/Rocky, Kali, Manjaro и т.д.
Топ-3 универсальные команды (работают в 99,9 % случаев)
№ Команда Что выводит / где работает Пример вывода 1 cat /etc/os-releaseВсё современное (systemd-дистрибутивы) PRETTY_NAME="Ubuntu 24.04.1 LTS"2 hostnamectlТолько где есть systemd (почти везде) Operating System: Debian GNU/Linux 133 lsb_release -aDebian/Ubuntu и производные (если установлен lsb-release)Description: Ubuntu 24.04.1 LTSПолный универсальный однострочник (работает ВЕЗДЕ в 2025)
cat /etc/os-release 2>/dev/null && hostnamectl status 2>/dev/null || cat /etc/issue 2>/dev/null || uname -rСпецифичные команды по дистрибутивам
Дистрибутив Лучшая команда Пример вывода Ubuntu / Mint cat /etc/os-releaseилиlsb_release -sdUbuntu 24.04.1 LTSDebian cat /etc/debian_versionили/etc/os-release13илиDebian GNU/Linux trixie/sidFedora cat /etc/fedora-releaseилиrpm -E %fedoraFedora release 41 (Forty One)RHEL / Alma / Rocky / CentOS Stream cat /etc/redhat-releaseилиcat /etc/os-releaseAlmaLinux release 9.4 (Seafoam Ocelot)Arch Linux / Manjaro cat /etc/arch-release(обычно пустой) → простоpacman -Q linux— openSUSE cat /etc/os-releaseopenSUSE TumbleweedилиLeap 15.6Kali cat /etc/os-releaseKali GNU/Linux RollingAlpine cat /etc/alpine-release3.20.3NixOS nixos-version25.05 (Urial)Gentoo cat /etc/gentoo-releaseGentoo Base System release 2.15Самые удобные однострочники, которые я реально использую
# Самое короткое и красивое (2025 стандарт) grep -E '^PRETTY_NAME=' /etc/os-release | cut -d= -f2 | tr -d '"' # Только имя + версия source /etc/os-release 2>/dev/null && echo "$NAME $VERSION" # Если нужен только номер версии (например, для скриптов) source /etc/os-release && echo "$VERSION_ID" # Полная инфа одной командой (мой фаворит) hostnamectl | grep "Operating System" # Универсальный скрипт (работает даже на старых серверах без systemd) if [ -f /etc/os-release ]; then . /etc/os-release echo "$PRETTY_NAME" elif [ -f /etc/redhat-release ]; then cat /etc/redhat-release elif [ -f /etc/debian_version ]; then echo "Debian $(cat /etc/debian_version)" else uname -snr fiЧто НЕ стоит использовать в 2025
/etc/issue— часто перезаписывается motd, ненадёжноlsb_release— не установлен по умолчанию на серверах и минимальных образахcat /etc/lsb-release— устарел
Итог: запомни всего две команды
cat /etc/os-release # 99% случаев hostnamectl # если нужен красивый вывод -
Alpine Linux - особенности команд
Вот полная шпаргалка по Alpine Linux в 2025 году — всё, что реально нужно знать, когда ты попал в Alpine-контейнер или на Alpine-сервер.
Как точно убедиться, что это Alpine
cat /etc/os-release | grep -E "NAME|ID|VERSION" # или коротко grep ^NAME /etc/os-releaseОсновные команды apk (аналог apt/dnf/pacman)
Что нужно сделать Команда Обновить список пакетов apk updateУстановить пакет `apk add пакет1 пакет2 | Установить и сразу удалить кэш apk add --no-cache пакет← мой стандартОбновить все пакеты apk upgradeПоиск пакета apk search nginxИнформация о пакете apk info nginxКакие файлы в пакете apk info -L nginxКто предоставил файл apk info --who-owns /usr/bin/nginxУдалить пакет apk del nginxУдалить пакет + неиспользуемые зависимости apk del nginx && apk autoremoveОчистить кэш полностью rm -rf /var/cache/apk/*Починить сломанную базу apk fixСамые частые пакеты в Alpine (2025)
apk add --no-cache \ bash curl wget git vim nano htop \ nginx php83 php83-fpm php83-opcache \ mariadb mariadb-client redis \ certbot certbot-nginx cronie \ sudo shadow tzdata ca-certificatesУправление сервисами в Alpine
Alpine использует OpenRC, а не systemd!
Действие Команда Запустить сервис rc-service nginx startОстановить rc-service nginx stopПерезапустить rc-service nginx restartПлавный reload (nginx, php-fpm) rc-service nginx reloadилиnginx -s reloadДобавить в автозагрузку rc-update add nginx defaultУбрать из автозагрузки rc-update del nginxСтатус сервиса rc-service nginx statusСписок всех сервисов rc-statusПолезные особенности Alpine
Особенность Команда / совет Шелл по умолчанию — ash apk add bash→ делаешь bash своимНет /etc/apt, нет apt только apk Пакеты очень маленькие образ nginx ~15 МБ вместо 150 МБ в Ubuntu Пользователи и группы adduser -D userилиadduser userСоздать пользователя с домашкой adduser -h /home/user userДобавить sudo apk add sudo && echo 'user ALL=(ALL) ALL' >> /etc/sudoers.d/userЧасовой пояс apk add tzdata && cp /usr/share/zoneinfo/Europe/Moscow /etc/localtimeЛоги tail -f /var/log/messagesили/var/log/nginx/*.logКак попасть root в Docker-контейнере Alpine
# Самый правильный способ (2025) docker exec -it --user root container_name sh # Если sh нет (редко) docker exec -it --user root container_name container_name ash # Сразу с bash, если поставил docker exec -it --user root container_name bashМой личный «чек-лист» при входе в новый Alpine-контейнер
apk update apk add --no-cache bash curl wget ca-certificates tzdata cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime ln -sf /bin/bash /bin/sh # если очень хочется bash по умолчанию echo "Alpine готов к работе"Сохрани эту табличку — она спасёт тебя каждый раз, когда ты попадёшь в Alpine-контейнер или на Alpine VPS.
В 2025 году Alpine — это всё ещё самый популярный образ для Docker (nginx, node, python, go и т.д.), так что знать его команды обязан каждый. -