Почему всё работает на Linux
Зачем DevOps-инженеру Linux и что вообще скрывается за этим словом.
Где вы окажетесь
Стоит выполнить docker run, зайти по SSH на сервер в облаке или открыть shell внутри пода — почти со стопроцентной вероятностью вы окажетесь внутри Linux. Даже контейнер с приложением на .NET обычно запускается на Linux-хосте.
Linux — это универсальная среда исполнения для серверного софта: баз данных, веб-серверов, очередей, CI-агентов, узлов Kubernetes.
Ядро и дистрибутив — разные вещи
Их постоянно путают, а разница важна:
- Ядро (kernel) — программа, которая управляет железом, памятью, файловой системой, процессами и сетью. Linux — это именно ядро.
- Дистрибутив — ядро плюс набор утилит, менеджер пакетов и договорённости о том, где что лежит.
Поэтому «я знаю Linux» на практике означает «я знаю дистрибутив и умею работать с его утилитами».
Что вы встретите в работе
| Дистрибутив | Пакетный менеджер | Где чаще всего |
|---|---|---|
| Ubuntu / Debian | apt |
облачные образы, базовые Docker-имиджи |
| Alpine | apk |
минималистичные контейнеры |
| Rocky / AlmaLinux | dnf |
корпоративные среды |
Различия в основном сводятся к менеджеру пакетов и путям к конфигам. Команды POSIX-shell и базовые понятия — процессы, права, файловые дескрипторы — одинаковы везде, и именно они переносятся между системами.
Узнать, где вы находитесь
uname -a # ядро и архитектура
cat /etc/os-release # дистрибутив и версия
uname покажет версию ядра и архитектуру процессора, но про дистрибутив он ничего не знает — за это отвечает /etc/os-release. Это первое, что стоит посмотреть на незнакомой машине: от дистрибутива зависит, какой командой ставить пакеты.
Что дальше
Дальше — файловая система и права доступа. Это то, обо что чаще всего спотыкаются на старте: «permission denied» там, где, кажется, всё правильно.