Prog Academy
RU UA
DevOps и облака

Что такое Linux и зачем он нужен в IT?

Linux — семейство операционных систем с открытым исходным кодом, на которых работает подавляющее большинство серверов, контейнеров и облачной инфраструктуры. Управляют такой системой в основном через командную строку.

Для разработчика, тестировщика и особенно DevOps-инженера Linux — рабочая среда по умолчанию: приложение почти наверняка будет запускаться именно на нём. Отсюда и требование в вакансиях знать базовые команды и уметь читать логи.

Практический минимум невелик: навигация по файловой системе, права доступа, работа с процессами и службами, просмотр логов, установка пакетов и подключение по SSH. Дальше добавляются скрипты на bash для автоматизации рутины.

Где применяется

Практически весь интернет работает на Linux: веб-серверы, базы данных, контейнеры, облачная инфраструктура. Подключение к серверу идёт по SSH, а работа ведётся в командной строке — просмотр логов, перезапуск сервисов, проверка занятого места, настройка прав на файлы.

Поэтому знание системы нужно не только администраторам. Бэкенд-разработчик отлаживает сервис на сервере, QA-инженер поднимает тестовое окружение, аналитик запускает скрипт обработки данных. Для DevOps это требование номер один, с которого обычно и начинают обучение направлению.

Пример

Сайт стал отвечать медленно. Инженер подключается к серверу, смотрит нагрузку и свободную память, находит в логах повторяющуюся ошибку подключения к базе и перезапускает зависший сервис — всё это несколькими командами, без графического интерфейса.

df -h                       # свободное место на дисках
top -b -n 1 | head -15      # нагрузка и процессы

systemctl status nginx      # состояние сервиса
journalctl -u nginx --since "10 min ago" | grep -i error

tail -f /var/log/app/app.log
Базовая диагностика сервера: место на диске, нагрузка, статус сервиса и свежие ошибки в логе.

Частые вопросы

Какой дистрибутив Linux выбрать новичку?

Для обучения обычно берут Ubuntu: много документации, простая установка, большинство инструкций написано именно под неё. На серверах чаще встречаются Ubuntu Server и семейство Red Hat. Различия в основном в менеджере пакетов, базовые команды везде одинаковы.

Обязательно ли работать в командной строке?

На сервере — да, графического интерфейса там обычно нет. Командная строка к тому же удобнее для автоматизации: последовательность команд превращается в скрипт, который выполняется одинаково каждый раз. Привыкание занимает пару недель регулярной практики.

Нужно ли устанавливать Linux как основную систему?

Не обязательно. Для практики достаточно виртуальной машины, контейнера или подсистемы Linux в Windows. Многие разработчики годами работают на macOS или Windows, а с Linux взаимодействуют только на серверах и внутри контейнеров.

Какие команды Linux нужно знать в первую очередь?

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

Связанные термины