BashDays / инженерное медиа

Linux и DevOps на практике — медиа для IT-инженеров

Статьи об администрировании Linux, инфраструктуре, информационной безопасности, автоматизации и разработке — с реальными примерами и без пересказа документации.

Mastodon
Загрузка живой ленты…
bash

Почему условие while с pgrep работает не так

Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата процесса и объясняем, почему лишние квадратные скобки только запутывают условие.

Свежие комментарии

Все обсуждения ↗

Загружаем свежие комментарии…

ИТ-юмор

Смотреть все →

Цитатник

Все цитаты →

Разговариваю с другом, который рассказывает как наконец-то накопил денег (кредитам не доверяет) и в н-ном возрасте приобрёл свою первую машину. Говорю: - А я свою первую машину приобрела в 20 лет, с первой зарплаты! Друг: - Ого!! Такие зарплаты? Я: - Такие машины ;-(

Linux и администрирование

Смотреть всё →
bash

Почему условие while с pgrep работает не так

Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата процесса и объясняем, почему лишние квадратные скобки только запутывают условие.

bash

Одинарные и двойные скобки в Bash

Сравниваем условия [ ] и [[ ]] в shell-скриптах: переносимость между POSIX sh, Bash и ksh, доступные операторы, экранирование и регулярные выражения. Практические примеры показывают, когда выбрать совместимость, а когда — более …

linux

Как работать с архивами через atool

Используем atool как единый консольный интерфейс для распаковки и создания архивов ZIP, tar.gz, 7z и RAR. Разбираем простые команды извлечения и упаковки, которые избавляют от необходимости помнить синтаксис каждого архиватора.

DevOps и инфраструктура

Смотреть всё →
networks

Как настроить зеркальную сеть WSL

Настраиваем mirrored networking в WSL 2 через файл .wslconfig, чтобы Linux использовал сетевой стек Windows и адрес хоста. Разбираемся, как зеркальный режим упрощает доступ к портам, локальной сети, корпоративным прокси и сервисам …

devops

Зачем в Nginx используют server_name _

Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с подчёркиванием и параметр default_server, а также показываем заглушку с кодом 444.

networks

Как сократить SPF-запись с помощью CIDR

Разбираемся с ограничениями длины SPF-записи и количеством DNS-запросов при её проверке. Заменяем длинный перечень IP-адресов сетями CIDR, проверяем запись валидатором и наблюдаем результат через DMARC.

Безопасность

Смотреть всё →
security

Как ограничить SFTP через MySecureShell

Настраиваем отдельный SFTP-сервер MySecureShell поверх OpenSSH и ограничиваем пользователей файловой подсистемой. Разбираем установку в Debian, смену оболочки, конфигурацию, управление скоростью и совместимость с SSHFS и rsync.

devops

Зачем в Nginx используют server_name _

Разбираемся, зачем в конфигурации Nginx указывают server_name _ и как обрабатываются запросы с неизвестным Host. Сравниваем соглашение с подчёркиванием и параметр default_server, а также показываем заглушку с кодом 444.

linux

Как искать пути повышения привилегий через LinPEAS

Проверяем Linux-сервер с помощью LinPEAS и ищем ошибки конфигурации, SUID-файлы и другие пути повышения привилегий. Показываем запуск без установки через curl или Python и объясняем, почему скрипту не нужен root.

Разработка и QA

Смотреть всё →
bash

Почему условие while с pgrep работает не так

Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата процесса и объясняем, почему лишние квадратные скобки только запутывают условие.

dev

Как установить Zed в Windows через Scoop

Устанавливаем редактор Zed в Windows через пакетный менеджер Scoop без многочасовой компиляции из исходников. Настраиваем WSL как встроенный терминал, проверяем плагины, удалённую разработку и подключение ИИ-агентов.

debug

Как отследить запускаемые команды через strace

Используем strace и системный вызов execve, чтобы увидеть, какие внешние программы запускает команда и с какими аргументами. На примере man разбираем ключи трассировки, сохранение лога и практическую отладку скриптов и приложений.

Карьера и айтишная жизнь

Смотреть всё →
bash

Как проверять код через pre-commit

Настраиваем Git-хук pre-commit для автоматической проверки Bash-скриптов через ShellCheck. В качестве бонуса адаптируем тот же подход для Ansible-плейбуков и ansible-lint.

workflow

Как управлять dotfiles через chezmoi

Знакомимся с chezmoi для управления `.bashrc`, `.vimrc`, `.gitconfig` и другими dotfiles на нескольких устройствах. Добавляем и редактируем конфиги, смотрим diff, восстанавливаем файлы и синхронизируем репозиторий через Git.

workflow

Как не сломаться на абсурдном собеседовании

Разговор о бессмысленных задачах на технических собеседованиях, давлении рекрутеров и праве кандидата требовать проверку по будущей роли. Финансовая подушка и практика интервью помогают спокойнее отказываться от неподходящих …

Инструменты

Смотреть всё →
dev

Как установить Zed в Windows через Scoop

Устанавливаем редактор Zed в Windows через пакетный менеджер Scoop без многочасовой компиляции из исходников. Настраиваем WSL как встроенный терминал, проверяем плагины, удалённую разработку и подключение ИИ-агентов.

linux

Как работать с архивами через atool

Используем atool как единый консольный интерфейс для распаковки и создания архивов ZIP, tar.gz, 7z и RAR. Разбираем простые команды извлечения и упаковки, которые избавляют от необходимости помнить синтаксис каждого архиватора.

linux

Когда использовать Snap вместо APT

Сравниваем пакетные менеджеры Snap и APT в Linux. Разбираем переносимость пакетов между дистрибутивами, песочницу, автоматические обновления, зависимости и ситуации, где важнее системная интеграция и производительность.

Авторские колонки

Все материалы →
devops

Почему серверные диски надёжнее обычных

Сравниваем вероятность неисправимых ошибок чтения у WD Blue, WD Gold, SAS Toshiba и SSD Micron. Объясняем, почему RAID не всегда защищает от повреждённых данных и как контрольные суммы ZFS помогают обнаруживать ошибки.

bash

Почему самоучитель по Bash не получился в Markdown

Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.

workflow

Как я полностью отказался от алкоголя

Личный опыт постепенного отказа от алкоголя без рекомендаций и универсальных рецептов. Автор рассказывает, какие последствия употребления заставили изменить привычки и почему одна рюмка со временем стала не нужна.

Подборки редакции

Все подборки →