Linux Skill - Освой Linux c нуля до DevOps
10.8K subscribers
60 photos
76 videos
438 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
💥 Почему set -e в bash может сломать тебе всё!

Привет, терминальный заклинатель! Кажется, ты добавил set -e в свой bash-скрипт и думал, что теперь ошибки сами себя поймают? А потом скрипт резко перестал доходить до конца?.. Давай разберемся, в чём подвох.

🤔 Что вообще делает set -e?

set -e говорит интерпретатору bash:
> "Если любая команда завершится ошибкой, — останови скрипт немедленно".

Это полезно для CI/CD, бэкапов и всего, что не прощает ошибок. Но...

⚠️ Проблема: поведение set -e — неочевидно!

Вот типичный случай:

#!/bin/bash
set -e
false
echo "Я не выполнюсь!"


Скрипт завершится после false, и echo даже не запустится. Всё логично.
Но теперь внимание:

#!/bin/bash
set -e
if false; then
echo "Упс"
fi
echo "А вот и я!"


🎉 Здесь echo выполнится! Потому что ошибки внутри if, while, until и &&/|| — игнорируются!

🔍 Когда set -e может навредить?

Если ты используешь команды вроде:

grep "что-то" файл.txt || echo "не найдено"


Скрипт продолжит работу, даже если grep вернёт ненулевой код. Но теперь представь, что ты этого не знал… 😬

Как правильно использовать set -e?
1. Сначала — пойми, где оно действительно нужно (например, в CI/CD, деплое, тестах).
2. Используй его в отдельных функциях, а не во всём скрипте сразу.
3. Если обрабатываешь ошибку вручную — используй ||, if, trap, set +e.

👨‍💻 Итог:
set -e — не волшебная палочка. Это строгий сторож, который иногда рубит по-живому. Используй с умом, тестируй поведение и знай, где он тебя может подставить.

🌳 Ветка: https://stackoverflow.com/questions/19622198/what-does-set-e-mean-in-a-bash-script

📩 Завтра: BTRFS: Продвинутые техники для настоящих гуру!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 -Настрой мониторинг сети в реальном времени с Prometheus и Grafana
🧠 - b2-tools — простое и быстрое резервное копирование в облако
🧠 - Ты не знал, что cat умеет это! Лайфхаки для работы с файлами в Linux

#stackoverflow @LinuxSkill #bash #linux #скрипты #автоматизация #devops #linuxskill #сетевые_лайфхаки #shell #ci_cd #ошибки
👍16👀1
🚨 Почему cat всё ещё опасен в 2025 году?

Привет, покоритель терминала! 👨‍💻👩‍💻

Многие думают, что cat — это безопасная команда для просмотра файлов. Но даже сегодня простое cat file может быть рискованным!

Терминальные эмуляторы — сложные программы. Если файл содержит хитро сформированные escape-последовательности, это может:
- зависнуть весь терминал,
- испортить буфер обмена через OSC 52,
- вызвать баги в системе.

Терминалы вроде GNOME Terminal или xterm исправили многие уязвимости, но 100% защиты нет. Особенно, если файл пришёл из сомнительного источника.

Как безопасно просматривать файлы:
- Используй cat -v file — выводит управляющие символы видимыми.
- Открывай файлы через less (безопаснее для длинного вывода).
- Никогда не доверяй логам и текстам из внешних источников.

🔒 В безопасности даже самые простые команды требуют внимательности!

🌐 Источник: https://unix.stackexchange.com/questions/780938/is-it-still-unsafe-to-cat-an-arbitrary-file

📩 Завтра: Быстрое обнаружение проблем в сети через массовый пинг
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Урок 5 — Функции Bash за 49 минут: основы, примеры, фишки
🧠 - Можешь ли ты использовать sudo без пароля? Проверь за 5 секунд!
🧠 - Что будет, если ввести неправильный пароль в sudo?

#stackoverflow #linux #bash #security #terminal #linuxskill
👍13🔥2
💣 Как можно случайно сломать систему, установив ПО вручную?

Привет, линуксоид! 👋

Кажется, что скачать программу с сайта и установить её вручную — это быстро и удобно. Но в Linux это может стоить работоспособности всей системы.

Когда ты устанавливаешь программы через:
- curl | sh
- компиляцию из исходников
- .deb файлы вне репозиториев

ты обходишь пакетный менеджер (apt, dnf), и:
- система не отслеживает установку
- обновления и удаление могут стать проблемой
- легко получить конфликт версий библиотек

Как безопасно устанавливать ПО:
- Использовать apt или официальные репозитории.
- Для .deb-файлов — sudo apt install ./file.deb (а не dpkg -i).
- Избегать скриптов curl | sh без проверки кода.
- Размещать ручные установки в /usr/local/ или $HOME/.local.

Помни: пакетный менеджер — это твой друг в Linux. 🛡

🌐 Источник: https://unix.stackexchange.com/questions/782971/is-it-safe-to-install-programs-other-than-with-a-distros-package-manager

📩 Завтра: Как etckeeper спасает сервер от криворуких админов!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Линус Торвальдс — Человек, который придумал Linux [TED]
🧠 - Карта развития Linux-специалиста
🧠 - Операционная система - общие сведения

#stackoverflow #linux #security #package_manager #apt #bash #linuxskill
👍18🔥2
Как скопировать только изменённые файлы с помощью rsync?

Салют! Сегодня разберём одну крутую задачку! Когда работаешь с большими каталогами, часто возникает задача: обновить только изменённые файлы, не трогая новые.

И тут идеально подходит rsync!

Вот как скопировать только те файлы, которые уже есть в целевой папке и имеют изменения:

rsync --checksum --existing -av source/ dest/


Расшифруем:
- --checksum — сравнивать файлы по содержимому, а не по дате или размеру.
- --existing — копировать только те файлы, которые уже есть в dest, новые не создавать.
- -a — режим архивации (права, симлинки и т.д.).
- -v — подробный вывод.

💡 Если не хотите замедлять процесс вычислением контрольных сумм, можно убрать --checksum, но тогда сравнение будет идти только по дате и размеру.

🌐 Источник: https://unix.stackexchange.com/questions/792314/using-rsync-to-copy-only-files-that-have-changed-not-files-that-are-new

📩 Завтра: ТОП-скрипты для автоматизации Linux задач
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - История UNIX. Часть 1
🧠 - История UNIX. Часть 2
🧠 - Установка и настройка Linux-системы: Astra

#stackoverflow #linux #rsync #bash #файлы #linuxskill
👍9