🛠 Что такое Bash и зачем он нужен в Linux?
Оболочка (shell) в Linux работает подобно официанту в ресторане: принимает ваш заказ (команды), передаёт его повару (ядру системы) и возвращает готовое блюдо (результат). Одна из самых популярных оболочек — Bash. Это стандарт большинства дистрибутивов Linux, обеспечивающий простой доступ к файлам и программам.
🌟 Основные плюсы Bash:
✅ Легко изучать благодаря простым и знакомым командам (
✅ Автодополнение команд сокращает набор длинных названий путём нажатия
✅ История команд позволяет повторно вызывать прошлые действия клавишами стрелок вверх-вниз.
🎯 Почему именно Bash популярен?
Традиции: большинство пользователей знакомы с Bash;
Совместимость: одинаковая работа на разных версиях Linux;
Широкая поддержка сообщества разработчиков и документации.
🤝 Альтернатива Bash — Zsh и Fish, но Bash остаётся лидером благодаря простоте и гибкости настроек.
Используйте Bash правильно — и ваша работа в Linux станет проще и эффективнее!
Оболочка (shell) в Linux работает подобно официанту в ресторане: принимает ваш заказ (команды), передаёт его повару (ядру системы) и возвращает готовое блюдо (результат). Одна из самых популярных оболочек — Bash. Это стандарт большинства дистрибутивов Linux, обеспечивающий простой доступ к файлам и программам.
🌟 Основные плюсы Bash:
✅ Легко изучать благодаря простым и знакомым командам (
cd, pwd, mkdir);✅ Автодополнение команд сокращает набор длинных названий путём нажатия
Tab;✅ История команд позволяет повторно вызывать прошлые действия клавишами стрелок вверх-вниз.
🎯 Почему именно Bash популярен?
Традиции: большинство пользователей знакомы с Bash;
Совместимость: одинаковая работа на разных версиях Linux;
Широкая поддержка сообщества разработчиков и документации.
🤝 Альтернатива Bash — Zsh и Fish, но Bash остаётся лидером благодаря простоте и гибкости настроек.
Используйте Bash правильно — и ваша работа в Linux станет проще и эффективнее!
👍6
📌 Как происходит загрузка Linux:
Когда вы включаете компьютер с установленной системой Linux, запускается целый каскад событий, завершающийся полным функционалом рабочей среды. Рассмотрим подробно, что происходит на каждом этапе загрузки.
📌 1. BIOS или UEFI
Сразу после нажатия кнопки питания компьютер начинает работу с базовой системы ввода-вывода (BIOS) или UEFI. Ее задачи:
- провести проверку оборудования (POST);
- найти загрузочные устройства (жёсткий диск, SSD, USB-накопители);
- передать управление загрузчику GRUB.
📌 2. GRUB (загрузчик)
GRUB (GNU GRUB boot loader) — это менеджер загрузки, который отображает меню выбора системы и запускает выбранную ОС. GRUB считывает конфигурацию из файла /boot/grub/grub.cfg, загружает ядро Linux и передает ему управление.
📌 3. Загрузка ядра Linux
Когда GRUB передал управление, начинается загрузка ядра. На этом этапе ядро:
- инициализирует драйвера устройств;
- проверяет и монтирует начальную файловую систему (initramfs);
- проводит подготовку для старта системы.
📌 4. Initramfs
Initramfs — временная файловая система, созданная в оперативной памяти. Она содержит модульные драйверы и необходимые инструменты для начальной загрузки системы. В ней ядро находит модули для работы с жёстким диском и другими устройствами.
📌 5. Systemd (инициализация системы)
После готовности ядра стартует systemd — демон, ответственный за запуск и контроль системных сервисов. Он:
- монтирует основную файловую систему;
- запускает необходимые сервисы и демоны;
- разворачивает сеть и периферийные устройства.
📌 6. Графический интерфейс (Display Manager)
Последний этап загрузки — это запуск графического интерфейса (Xorg или Wayland) и открытие окна входа в систему. Менеджер дисплея (например, GDM, LightDM или SDDM) позволяет войти в рабочий стол и начать работу.
📌 Заключение
Каждый этап плавно сменяет предыдущий, обеспечивая бесперебойную работу операционной системы.
#linux #it
Когда вы включаете компьютер с установленной системой Linux, запускается целый каскад событий, завершающийся полным функционалом рабочей среды. Рассмотрим подробно, что происходит на каждом этапе загрузки.
📌 1. BIOS или UEFI
Сразу после нажатия кнопки питания компьютер начинает работу с базовой системы ввода-вывода (BIOS) или UEFI. Ее задачи:
- провести проверку оборудования (POST);
- найти загрузочные устройства (жёсткий диск, SSD, USB-накопители);
- передать управление загрузчику GRUB.
📌 2. GRUB (загрузчик)
GRUB (GNU GRUB boot loader) — это менеджер загрузки, который отображает меню выбора системы и запускает выбранную ОС. GRUB считывает конфигурацию из файла /boot/grub/grub.cfg, загружает ядро Linux и передает ему управление.
📌 3. Загрузка ядра Linux
Когда GRUB передал управление, начинается загрузка ядра. На этом этапе ядро:
- инициализирует драйвера устройств;
- проверяет и монтирует начальную файловую систему (initramfs);
- проводит подготовку для старта системы.
📌 4. Initramfs
Initramfs — временная файловая система, созданная в оперативной памяти. Она содержит модульные драйверы и необходимые инструменты для начальной загрузки системы. В ней ядро находит модули для работы с жёстким диском и другими устройствами.
📌 5. Systemd (инициализация системы)
После готовности ядра стартует systemd — демон, ответственный за запуск и контроль системных сервисов. Он:
- монтирует основную файловую систему;
- запускает необходимые сервисы и демоны;
- разворачивает сеть и периферийные устройства.
📌 6. Графический интерфейс (Display Manager)
Последний этап загрузки — это запуск графического интерфейса (Xorg или Wayland) и открытие окна входа в систему. Менеджер дисплея (например, GDM, LightDM или SDDM) позволяет войти в рабочий стол и начать работу.
📌 Заключение
Каждый этап плавно сменяет предыдущий, обеспечивая бесперебойную работу операционной системы.
#linux #it
👍7
Какая команда выводит список всех существующих пользователей на сервере?
Anonymous Quiz
19%
cat users
21%
listusers
48%
cat /etc/passwd
12%
users
❤3
🔥 APT-команды Linux: расширяем возможности системы!
⚙️ APT (Advanced Package Tool) — мощный инструмент управления пакетами в дистрибутивах Debian-based (Ubuntu, Mint и др.). Он прост в освоении и чрезвычайно функционален!
✅ Основные команды APT:
🌐
➕
✂️
📌
🗃
💡
🔄
🤝
🥳 Преимущества APT:
— Простое управление пакетами.
— Удобство обновления системы одним действием.
—Возможность устанавливать сразу группы пакетов.
— Автоматическая очистка мусора.
— Надежность и стабильность благодаря интеграции с репозиториями Ubuntu.
#Linux #APT #КоманднаяСтрока #Debian #Ubuntu
⚙️ APT (Advanced Package Tool) — мощный инструмент управления пакетами в дистрибутивах Debian-based (Ubuntu, Mint и др.). Он прост в освоении и чрезвычайно функционален!
✅ Основные команды APT:
🌐
sudo apt update — обновляет список доступных репозиториев и пакетов.➕
sudo apt install <package> — устанавливает нужный пакет.✂️
sudo apt remove <package> — удаляет установленный пакет.📌
sudo apt autoremove — очищает систему от неиспользуемых зависимостей.🗃
apt search <keyword> — ищет пакеты по ключевому слову.💡
apt show <package> — выводит подробную информацию о пакете.🔄
sudo apt upgrade — обновляет установленные пакеты до последних версий.🤝
sudo apt full-upgrade — аналогично upgrade, но может удалять конфликтующие пакеты.🥳 Преимущества APT:
— Простое управление пакетами.
— Удобство обновления системы одним действием.
—Возможность устанавливать сразу группы пакетов.
— Автоматическая очистка мусора.
— Надежность и стабильность благодаря интеграции с репозиториями Ubuntu.
#Linux #APT #КоманднаяСтрока #Debian #Ubuntu
👍6
Всех приветствую!
🌟Я рад анонсировать запуск своего нового курса, посвященного ключевой технологии современной разработки и администрирования.
📚В этом курсе я собрал всё необходимое, чтобы вы могли уверенно работать с контейнеризацией. Вы научитесь:
— Устанавливать и настраивать Docker на Linux Ubuntu
— Освоите ключевые понятия Docker: образы, контейнеры, слои, хранилища.
— Создавать Docker-образы и контейнеры с использованием Dockerfile.
— Управлять контейнерами: запуск, остановка, удаление, мониторинг.
— Применять Docker Compose для быстрого развёртывания многосервисных приложений.
— Использовать best practices для построения эффективных образов и снижения размеров контейнеров.
— Автоматизировать сборку и деплой приложений с Docker Hub.
🎁Стоимость курса 1990 рублей, по ссылке вы можете получить скидку 990 рублей.
Docker: первые шаги в контейнеризацию: https://stepik.org/a/252861/pay?promo=a2c1d919d74f6dad
💰Если скидка не пройдет, напишите мне в личные сообщения.
🌟Я рад анонсировать запуск своего нового курса, посвященного ключевой технологии современной разработки и администрирования.
📚В этом курсе я собрал всё необходимое, чтобы вы могли уверенно работать с контейнеризацией. Вы научитесь:
— Устанавливать и настраивать Docker на Linux Ubuntu
— Освоите ключевые понятия Docker: образы, контейнеры, слои, хранилища.
— Создавать Docker-образы и контейнеры с использованием Dockerfile.
— Управлять контейнерами: запуск, остановка, удаление, мониторинг.
— Применять Docker Compose для быстрого развёртывания многосервисных приложений.
— Использовать best practices для построения эффективных образов и снижения размеров контейнеров.
— Автоматизировать сборку и деплой приложений с Docker Hub.
🎁Стоимость курса 1990 рублей, по ссылке вы можете получить скидку 990 рублей.
Docker: первые шаги в контейнеризацию: https://stepik.org/a/252861/pay?promo=a2c1d919d74f6dad
💰Если скидка не пройдет, напишите мне в личные сообщения.
👍8
🐧Linux для админов и DevOps pinned «Всех приветствую! 🌟Я рад анонсировать запуск своего нового курса, посвященного ключевой технологии современной разработки и администрирования. 📚В этом курсе я собрал всё необходимое, чтобы вы могли уверенно работать с контейнеризацией. Вы научитесь: — Устанавливать…»
🔥 Процесс жрет 100% CPU — как найти за секунду?
Сервер тормозит,
Вот одна команда, которая вычислит виновника:
Результат:
USER PID %CPU COMMAND
root 31337 99.7 python3 /opt/miner/xmrig
root 12001 2.3 nginx
Всё — нашел. Майнер или сломавшийся скрипт.
💡 Добавьте в .bashrc алиас: alias topp='ps aux --sort=-%cpu | head -5'— будете пользоваться каждый день.
Сервер тормозит,
SSH еле отвечает, а top показывает просто python3. Что за процесс? Неизвестно.Вот одна команда, которая вычислит виновника:
ps aux --sort=-%cpu | head -5
Результат:
USER PID %CPU COMMAND
root 31337 99.7 python3 /opt/miner/xmrig
root 12001 2.3 nginx
Всё — нашел. Майнер или сломавшийся скрипт.
💡 Добавьте в .bashrc алиас: alias topp='ps aux --sort=-%cpu | head -5'— будете пользоваться каждый день.
👍5🔥2
🔥 SSH Config: Один файл, который экономит 10 минут в день
Что это вообще такое?
SSH config — это конфигурационный файл (
🧲Как это выглядело раньше (боль и страдания)
Допустим, у вас есть сервер на удалённой машине:
А если серверов три? А пять? А если вы забыли, какой ключ к какому серверу? Приходится лезть в историю команд, искать, вспоминать... Потеря времени и нервов.
💣Как это работает с SSH Config
Создаёте файл
Всё. Дальше заходите одной короткой командой:
🚀Работа с серверами превращается из "боли и гугления" в "пара секунд". Экономия времени — колоссальная, рекомендую всем, кто работает с удалёнными машинами.
Что это вообще такое?
SSH config — это конфигурационный файл (
~/.ssh/config), который хранит настройки подключения к серверам. Вместо того чтобы каждый раз вбивать длинные команды с IP, портами, ключами и пользователями — вы один раз прописываете параметры и дальше подключаетесь по короткому алиасу.🧲Как это выглядело раньше (боль и страдания)
Допустим, у вас есть сервер на удалённой машине:
ssh root@192.168.1.100 -p 2222 -i ~/.ssh/prod_key
А если серверов три? А пять? А если вы забыли, какой ключ к какому серверу? Приходится лезть в историю команд, искать, вспоминать... Потеря времени и нервов.
💣Как это работает с SSH Config
Создаёте файл
~/.ssh/config (если его нет) и пишете:Host prod
HostName 192.168.1.100
User root
Port 2222
IdentityFile ~/.ssh/prod_key
Host stage
HostName 192.168.1.101
User deploy
Всё. Дальше заходите одной короткой командой:
ssh prod
ssh stage
🚀Работа с серверами превращается из "боли и гугления" в "пара секунд". Экономия времени — колоссальная, рекомендую всем, кто работает с удалёнными машинами.
👍10
🔥 Пинг не проходит — не факт, что сервер упал
ICMP может быть заблокирован файрволом. Проверяйте порты напрямую:
▶️ Netcat
Где:
Если увидите
▶️Bash (без установки утилит)
Где:
✏️Запомните: пинг — это вежливость, порты — это реальность.
ICMP может быть заблокирован файрволом. Проверяйте порты напрямую:
▶️ Netcat
nc -zv 192.168.1.100 22
Где:
-z — режим сканирования без передачи данных-v — подробный вывод192.168.1.100 — IP-адрес сервера22 — порт SSHЕсли увидите
succeeded! — сервер жив и служба работает.▶️Bash (без установки утилит)
timeout 2 bash -c 'echo > /dev/tcp/192.168.1.100/22 && echo "Порт открыт"'
Где:
timeout 2 — прервать попытку через 2 секунды, если нет ответа/dev/tcp/192.168.1.100/22 — встроенный механизм Bash для TCP-соединения&& echo "Порт открыт" — выведет сообщение только при успешном подключении✏️Запомните: пинг — это вежливость, порты — это реальность.
👌3👍2
🔥 SSH отвалился, а команда не доделалась — больше никаких потерь
Знакомая боль: запустил
Вот что нужно делать перед любой долгой командой:
Всё. Процесс теперь живёт своей жизнью — независимо от вашего соединения. Закройте ноутбук, идите спать, возвращайтесь когда хотите.
🏆Что здесь происходит: —
💡Вернулся — проверил:
Работает с чем угодно: деплои, компиляция, бэкапы, скрипты на несколько часов.
#linux #bash #devops #tips
Знакомая боль: запустил
apt upgrade, ушёл пить кофе, вернулся — SSH отвалился. Команда оборвалась на середине. И ты такой сидишь и думаешь: «ну и зачем я вообще уходил».Вот что нужно делать перед любой долгой командой:
nohup apt upgrade -y > upgrade.log 2>&1 &
Всё. Процесс теперь живёт своей жизнью — независимо от вашего соединения. Закройте ноутбук, идите спать, возвращайтесь когда хотите.
🏆Что здесь происходит: —
nohup говорит процессу игнорировать обрыв сессии — & отправляет его в фон — > upgrade.log 2>&1 пишет весь вывод в файл💡Вернулся — проверил:
ps aux | grep apt # живёт ли процесс
tail -f upgrade.log # что там происходит
Работает с чем угодно: деплои, компиляция, бэкапы, скрипты на несколько часов.
#linux #bash #devops #tips
👍4❤1
🔥 Docker захламил сервер — чистим множество ГБ за 10 секунд
Со временем Docker копит мусор: остановленные контейнеры, висящие образы, кэш сборок.
Одна команда — полная уборка:
😳Мой результат только что был вот такой:
Удалится всё, что не запущено прямо сейчас.
Со временем Docker копит мусор: остановленные контейнеры, висящие образы, кэш сборок.
Одна команда — полная уборка:
docker system prune -af
😳Мой результат только что был вот такой:
Total reclaimed space: 2.957GB
Удалится всё, что не запущено прямо сейчас.
💡 Осторожно: если в контейнерах были важные данные (БД, файлы) — сначала сохрани их. Эта команда не щадит никого.
👍5❤1
🔥 SSH не подключается? Хватит гадать — включите отладку
Вы сидите, смотрите в чёрный терминал и не понимаете: почему
Руки тянутся проверить настройки сервера, порты, файрвол… Стоп. Есть более быстрый путь — включить отладку.
Команда-спасение
Вывод покажет каждый шаг подключения. Смотрите внимательно:
✅
✅
❌
Если хотите совсем детально (увидеть даже отвергнутые ключи) — добавьте ещё два
Самая частая причина
🔐 Права доступа. SSH — параноик. Сделайте раз и навсегда:
Больше не придётся гадать — отладка покажет истину.
🏆Сохраните себе, пригодится
Вы сидите, смотрите в чёрный терминал и не понимаете: почему
ssh user@server молчит или выдаёт ту самую ошибку?Руки тянутся проверить настройки сервера, порты, файрвол… Стоп. Есть более быстрый путь — включить отладку.
Команда-спасение
ssh -v user@server
Вывод покажет каждый шаг подключения. Смотрите внимательно:
✅
Offering public key: ... — ваш ключ отправлен✅
Authentication succeeded — всё, вы внутри❌
Permission denied (publickey) — ключ не подошёлЕсли хотите совсем детально (увидеть даже отвергнутые ключи) — добавьте ещё два
v:ssh -vvv user@server
Самая частая причина
🔐 Права доступа. SSH — параноик. Сделайте раз и навсегда:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
Больше не придётся гадать — отладка покажет истину.
🏆Сохраните себе, пригодится
❤4🔥1
🔥 Сайт не открывается? Хватит гадать — проверьте сеть
Вы сидите, браузер грузит, а результата нет. «Упал сервер», «провайдер виноват», «DDoS»…. Есть простой способ узнать правду — curl и dig.
Быстрая проверка доступности:
✏️Что вы увидите в ответе:
🎯Проверка DNS:
Вы получите IP-адреса (например,
💡Если нужно копнуть глубже
Узнайте, где теряются пакеты:
Каждая строка — один маршрутизатор. Звёздочки на каком-то шаге? Там пакеты пропадают.
Самая частая причина
🌐 Файрвол на вашей машине или на сервере. Проверить просто:
Если выключен — ищите проблему в других местах. Если включён и блокирует — временно отключите (с осторожностью):
Не забудьте потом включить обратно:
Вы сидите, браузер грузит, а результата нет. «Упал сервер», «провайдер виноват», «DDoS»…. Есть простой способ узнать правду — curl и dig.
Быстрая проверка доступности:
curl -I https://google.com
✏️Что вы увидите в ответе:
HTTP/2 200 — всё окcurl: (6) Could not resolve host — DNS не работаетcurl: (7) Failed to connect — сервер не отвечает🎯Проверка DNS:
dig +short google.com
Вы получите IP-адреса (например,
142.250.150.142). Работает? Значит с DNS всё в порядке. Пустой вывод — проблема у провайдера или в настройках вашей системы.💡Если нужно копнуть глубже
Узнайте, где теряются пакеты:
traceroute 8.8.8.8
Каждая строка — один маршрутизатор. Звёздочки на каком-то шаге? Там пакеты пропадают.
Самая частая причина
🌐 Файрвол на вашей машине или на сервере. Проверить просто:
sudo ufw status
Если выключен — ищите проблему в других местах. Если включён и блокирует — временно отключите (с осторожностью):
sudo ufw disable
Не забудьте потом включить обратно:
sudo ufw enable
👍5
🛡 Настройка SSH-ключей: доступ по паролю забываем навсегда
👋Если Вы до сих пор вводите пароль при каждом подключении к серверу — пора это менять. SSH-ключи быстрее, удобнее и безопаснее паролей. Разберём за 5 минут.
🔑 Шаг 1. Генерируем ключ на Вашей локальной машине
Откройте терминал (Linux / macOS / WSL) и выполните:
Нажмите Enter для стандартного пути
📤 Шаг 2. Копируем Ваш публичный ключ на сервер
Вариант 1 — универсальная команда:
Вариант 2 — вручную, если
После этого пароль больше не потребуется — заходите сразу.
🔧 Шаг 3. Отключаем вход по паролю (рекомендуем)
Зайдите на сервер и отредактируйте конфиг:
Найдите строки и сделайте так:
После этого перезапустите SSH:
⚠️ Важно: перед этим убедитесь, что у Вас есть доступ по ключу (новая сессия должна открываться без пароля). Иначе Вы заблокируете сами себя.
🔥 Был ли пост полезен? Поставьте реакцию 👍
👋Если Вы до сих пор вводите пароль при каждом подключении к серверу — пора это менять. SSH-ключи быстрее, удобнее и безопаснее паролей. Разберём за 5 минут.
🔑 Шаг 1. Генерируем ключ на Вашей локальной машине
Откройте терминал (Linux / macOS / WSL) и выполните:
ssh-keygen -t ed25519 -C "Ваш_email@example.com"
Нажмите Enter для стандартного пути
~/.ssh/id_ed25519. Можно задать пароль (passphrase) — это дополнительный пин-код для ключа.🧠 Почему ed25519?
Он быстрее RSA и даёт такой же уровень безопасности при меньшей длине.
📤 Шаг 2. Копируем Ваш публичный ключ на сервер
Вариант 1 — универсальная команда:
ssh-copy-id user@ip_сервера
Вариант 2 — вручную, если
ssh-copy-id нет:cat ~/.ssh/id_ed25519.pub | ssh user@ip_сервера "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
После этого пароль больше не потребуется — заходите сразу.
🔧 Шаг 3. Отключаем вход по паролю (рекомендуем)
Зайдите на сервер и отредактируйте конфиг:
sudo nano /etc/ssh/sshd_config
Найдите строки и сделайте так:
PasswordAuthentication no
PermitRootLogin prohibit-password # или no
После этого перезапустите SSH:
sudo systemctl restart sshd # или ssh, в зависимости от системы
⚠️ Важно: перед этим убедитесь, что у Вас есть доступ по ключу (новая сессия должна открываться без пароля). Иначе Вы заблокируете сами себя.
🔥 Был ли пост полезен? Поставьте реакцию 👍
👍3🔥3
🔍 Порт занят? Узнайте, какой процесс его держит
Бывает: запускаете Nginx, а он говорит «Address already in use». Знакомая ситуация? Давайте разберёмся, как найти процесс, который занял порт, и как его корректно завершить.
🧰 Команда
Утилита
Посмотреть все слушающие порты:
Что означает:
Пример вывода:
Теперь загляните в столбец
❓ Если нужно найти только конкретный порт
Добавьте фильтр по порту (например, порт 8080):
Или используйте:
🚫 Как освободить порт
Если процесс вам не нужен, убейте его:
Важно:
🔥 Полезный материал? Поставьте реакцию 👍
Бывает: запускаете Nginx, а он говорит «Address already in use». Знакомая ситуация? Давайте разберёмся, как найти процесс, который занял порт, и как его корректно завершить.
🧰 Команда
ss (современный netstat)Утилита
ss быстрее и удобнее старого netstat. Она есть почти везде.Посмотреть все слушающие порты:
sudo ss -tulpn
Что означает:
-t – TCP-u – UDP-l – только слушающие-p – показать PID и имя процесса-n – не преобразовывать адреса в именаПример вывода:
State Recv-Q Send-Q Local Address:Port Process
LISTEN 0 128 0.0.0.0:80 users:(("nginx",pid=1234))
Теперь загляните в столбец
Process — там и пид, и имя.❓ Если нужно найти только конкретный порт
Добавьте фильтр по порту (например, порт 8080):
sudo ss -tulpn | grep :8080
Или используйте:
sudo lsof -i :8080
lsof показывает все процессы, использующие сеть.🚫 Как освободить порт
Если процесс вам не нужен, убейте его:
sudo kill -9 <PID>
Важно:
kill -9 принудительно завершает процесс. Если это сервер (Nginx, PostgreSQL), сначала лучше попробовать systemctl stop <service>.🔥 Полезный материал? Поставьте реакцию 👍
👍5🔥2
