Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Команды BASH
  3. Bash - работа с системой

Bash - работа с системой

Запланировано Прикреплена Закрыта Перенесена Команды BASH
4 Сообщения 1 Posters 9 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал в отредактировано
    #1

    Содержание

    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал в отредактировано
      #2

      Узнать версию дистрибутива


      Вот самый полный и рабочий на 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 13
      3 lsb_release -a Debian/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 -sd Ubuntu 24.04.1 LTS
      Debian cat /etc/debian_version или /etc/os-release 13 или Debian GNU/Linux trixie/sid
      Fedora cat /etc/fedora-release или rpm -E %fedora Fedora release 41 (Forty One)
      RHEL / Alma / Rocky / CentOS Stream cat /etc/redhat-release или cat /etc/os-release AlmaLinux release 9.4 (Seafoam Ocelot)
      Arch Linux / Manjaro cat /etc/arch-release (обычно пустой) → просто pacman -Q linux —
      openSUSE cat /etc/os-release openSUSE Tumbleweed или Leap 15.6
      Kali cat /etc/os-release Kali GNU/Linux Rolling
      Alpine cat /etc/alpine-release 3.20.3
      NixOS nixos-version 25.05 (Urial)
      Gentoo cat /etc/gentoo-release Gentoo 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                  # если нужен красивый вывод
      
      1 ответ Последний ответ
      0
      • A Не в сети
        A Не в сети
        Admin
        написал в отредактировано
        #3

        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 и т.д.), так что знать его команды обязан каждый.

        1 ответ Последний ответ
        0
        • A Не в сети
          A Не в сети
          Admin
          написал отредактировано
          #4

          Увеличение размера файла подкачки (виртуальная память, Swap)


          # Пример создания swap-файла 2 ГБ (если нет раздела)
          sudo fallocate -l 2G /swapfile
          sudo chmod 600 /swapfile
          sudo mkswap /swapfile
          sudo swapon /swapfile
          echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
          
          1 ответ Последний ответ
          0
          Ответить
          • Ответить, создав новую тему
          Авторизуйтесь, чтобы ответить
          • Сначала старые
          • Сначала новые
          • По количеству голосов


          • Войти

          • Login or register to search.
          Powered by NodeBB Contributors
          • Первое сообщение
            Последнее сообщение
          0
          • Категории
          • Последние
          • Метки
          • Популярные
          • World
          • Пользователи
          • Группы