Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Bash Days | Linux | DevOps
تُعد قناة Bash Days | Linux | DevOps (@bashdays) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 23 803 مشتركاً، محتلاً المرتبة 5 708 في فئة التكنولوجيات والتطبيقات والمرتبة 28 124 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 23 803 مشتركاً.
بحسب آخر البيانات بتاريخ 16 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -201، وفي آخر 24 ساعة بمقدار -10، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 20.40%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 11.53% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 4 855 مشاهدة. وخلال اليوم الأول يجمع عادةً 2 744 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 17.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل bashdays, linux, bash, docker, скрипт.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.r...”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 17 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
echo $foo
Тут всё предельно ясно и понятно. Все в ажуре!
Но это вершина айсберга. Эта команда может отрабатывать не так, как ты ожидаешь. Потому что foo это переменная. И если ты её не возьмешь в кавычки, то Bash может сделать с её содержимым всякие хитрые штуки.
Что подразумевается по «хитрыми штуками»
— Разделить содержимое на отдельные слова (если там есть пробелы).
— Подставить имена файлов с таким шаблоном, если он выглядит как *.zip (это называется глоббинг).
И тут у новичков возникает многочасовой проёб, когда переменная выводит неправильные значения.
Смотри:
msg="Пожалуйста, введите имя файла в формате *.zip"
echo $msg
Выглядит опять всё красиво. А по факту получаешь:
Пожалуйста, введите имя файла в формате awscliv2.zip
Да блядь! А я просто хотел вывести строкой *.zip а не получить список файлов в текущей папке.
var="*.zip"
echo "$var"
echo $var
Первое echo напечатает *.zip, а второе выведет список всех файлов, которые заканчиваются на .zip.
Поэтому, если ты хочешь наверняка вывести переменную как есть, лучше используй `printf`
printf "%s\n" "$foo"
Для маленьких:
Представь, что ты говоришь падшей женщине: «покажи что у тебя в трусах», она снимает трусы, а там — большой сочный хуй.
А чтобы в трусах был ожидаемый результат, нужно изначально это учесть в моменте знакомства (до просьбы) и расставить все кавычки.
Хотя у каждого свой ожидаемый результат… возможно кавычки вовсе и не потребуются.
Такие дела. Изучай!
🛠 #bash #badpractices #bestpractices
—
✅ @bashdays / @linuxfactory / @blogecho -e "foo\nbar\nfoo again" > bashdays.txt
Внутри получаем:
foo
bar
foo again
И применяем бэд-практику:
cat bashdays.txt | sed 's/foo/baz/g' > bashdays.txt
Эта команда читает файл bashdays.txt и одновременно пишет в него.
Что тут не так?
А всё! В лучшем случае получишь хуем по лбу и примеришь золотой пизды колпак. Эта команда испортит файл. Низя так делать! Всё проебёшь!
После этой команды файл bashdays.txt обнулится. Хотя визуально команда выглядит абсолютно безопасной.
А теперь делаем правильно!
sed 's/foo/baz/g' bashdays.txt > tmpfile && mv tmpfile bashdays.txt
Смотрим содержимое файла bashdays.txt и видим ожидаемый результат:
baz
bar
baz again
Здесь мы всё сделали через временный файл, громоздко, но по крайней мере безопасно. Веселый колпак тебе теперь точно не светит.
Можно извратиться и провернуть всё это дело на основе дескрипторов, но опять же этот способ не безопасен.
Можно правда хакнуть таким методом:
printf '%s\n' ',s/foo/baz/g' w q | ed -s bashdays.txt
Это работает без временного файла на уровне Bash, потому что ed сделаем всё сам. Но опять же конструкция нихуя непонятная.
Резюмируем: Не ссы использовать временные файлы, пусть твои bash скрипты будут безопасны и читаемы.
🛠 #bash #badpractices #bestpractices
—
✅ @bashdays / @linuxfactory / @blogЕсли работает, это еще ничего не значит. Ну ты это и сам знаешь.Ладно… Оставляю на ночь это ебучую головную боль с родным блоком питания, proxmox шуршит, всё ништяк. На утро — вентилятор хуярит как дичь перепуганная. Ебаться рылом в ламинат! Пингую, хуй там плавал! Выключаю, включаю — ничего! Перекидываю блоки питания — ничего! Я даж и не знаю теперь, что сука происходит, нагрев 40-50, чипы не должны отваливаться. Включается какая-то защита? Такое ощущение что этот мини-пиздюк конкретно решил мне выкрутить яйца.
Еще кстати подумал — а мож это proxmox? Ради интереса надо попробовать какой нить SelectOS накатить…Какие мысли господа и дамы? Выкинуть эту поеботу или есть какой-то быстро фикс типа прошивки или пиздюлин 20 таблеток? 🛠 #hardware #fails — ✅ @bashdays / @linuxfactory / @blog
date для работы с датами/временем.
🔤🔤🔥🔤🔤🔤🔤
Очень удобная команда, имеет очень много форматов и позволяет складывать/вычитать даты, например:
date -d"-1 day" # Чт 02 янв 2025 21:52:15 MSK - текущая дата минус один день.
date -d"+2 week" # Пт 17 янв 2025 21:53:48 MSK - текущая дата плюс две недели.
"day", "week" "month", "year", "hour", "min", "sec"
Но в bash есть еще средства для работы со временем:
ㅤ
Переменная SECONDS показывает, сколько секунд прошло с начала запуска скрипта или момента задания значения переменной. Обычно используется для хронометража блока кода скрипта. Например:
SECONDS=0
# здесь блок длительного кода
echo $SECONDS
Переменная EPOCHSECONDS - показывает число секунд, прошедших с начала эпохи UNIX (01.01.1970 00:00:00 UTC).
Обратите внимание, число секунд не зависит от часового пояса.
EPOCHREALTIME - аналогична предыдущей, но секунды с точностью до микросекунды. С помощью этой переменной можно точно отслеживать время небольших кусков кода. Даже если просто вывести переменную дважды - будет разное время:
echo $EPOCHREALTIME $EPOCHREALTIME
# 1744652451,166523 1744652451,166539
Обратите внимание, разделитель дробной части может быть различным, в зависимости от языковых настроек.
Переменные EPOCHSECONDS и EPOCHREALTIME обнулить не получится.
И еще есть специальный формат оператора printf для преобразования секунд UNIX в формат дат:
printf '%(DT_FORMAT)T' $EPOCHSECONDS
DT_FORMAT - практически полностью совпадает с форматом команды date.
Например:
printf '%(%Y%m%d-%H%M%S)T' $EPOCHSECONDS
# 20250414-203214
Если не указать переменную или указать -1 - будет использовано текущая дата/время. Если указать -2 - будет использовано время начала работы этого экземпляра bash.
printf удобен тем, что выполняется гораздо быстрее чем date (хотя говорить о скорости bash немного смешно) и позволяет результат операции записать сразу в переменную (Например DT).
printf -v DT '%(%Y%m%d-%H%M%S)T'
И date и printf работают в локальной временно́й зоне, чтобы это изменить можно задать "врéменную переменную" TZ.
Например:
TZ='UTC' date
# Пн 14 апр 2025 16:15:57 UTC
TZ='Asia/Irkutsk' printf '%(%Y%m%d-%H%M%S)T\n'
# 20250415-001621
Полный список временны́х зон на системах с systemd можно получить с помощью команды timedatectl list-timezones.
🛠 #bash
—
✅ @bashdays / @linuxfactory / @blogfoo, то не нужно писать доллар ($) перед именем переменной.
ㅤ
Напиши так:
read foo
А если хочешь прикрыть своё очко от спецсимволов, делай так:
IFS= read -r foo
Вот так делать хуёва:
read $foo
В этом случае $foo — уже не имя переменной, а значение переменной foo.
Как говорил мой техдир:
Рома, золотые у тебя руки. Оторвать бы их да пропить.Делай правильно и твои руки никто не оторвёт и не пропьёт. Для маленьких: Представь, ты говоришь: «Дай хуй» — и тебе сразу дают хуй. Всёж просто. 😲 А теперь представь, что ты говоришь: «Дай $хуй». Тут сначала дополнительно нужно спросить «А кто такой хуй?» — может, это Олег? И тогда тебе дадут Хуй Олега. То есть, сначала нужно узнать, кто прячется под «хуем», а потом уже брать, чтобы не взять чужой «хуй». Надеюсь ты понял. Изучай! 🛠 #bash #badpractices #bestpractices — ✅ @bashdays / @linuxfactory / @blog
[ — это не просто скобка, а отдельная команда. Она проверяет, пиздеж ли что-то или нет.
Хуёвая практика:
if [ a = b ] && [ c = d ]; then
...
fi
В этом примере сначала проверяется a = b, если это пиздёж — дальше ничего не выполняется.
Если же a = b НЕ пиздёж — тогда проверяется c = d. И если c = d НЕ пиздёж, то выполняется, то что внутри then.
Проще по моему объяснить уже нереально. Сложно перепутать пизду с розеткой. Хотя… вечно путают.Бест-практика! Зырь!
if [[ a = b && c = d ]]; then
...
fi
Делаем двойные скобки. Двойные скобки умеют работать с && внутри.
[[ ... ]] — это специальная команда Bash, которая используется для проверки условий. Она умнее и безопаснее, чем обычная [ ... ].
Внутри неё можно использовать логические операторы && (и) и || (или) без дополнительных скобок или дополнительных [.
Рассмотрим пример:
a="hello"
b="hello"
c="bashdays"
d="bashdays"
if [[ $a = $b && $c = $d ]]; then
echo "Условия совпали!"
fi
1. Проверяет $a = $b → "hello" = "hello"? → Да. 2. Дальше && говорит: Если первое условие — НЕ пиздёж, идём ко второму. 3. Проверяет $c = $d → "bashdays" = "bashdays"? → Да. 4. Оба условия верны → выполняется команда echo.
[ — работает с одним условием за раз
[[ — может работать с комбинированными условиями прямо внутри себя.
[[ ... ]] — это бабушка, которая за всю свою жизнь повидала много дерьма и вполне может понять твою сложную фразу: убрал И сделал уроки.
[ ... ] — это твой младший брат, пиздюк еще не в состоянии воспринимать такие большие выпады и ему нужно говорить частями.
«Сначала убрал?» — (ДА) Не пиздёж. «Сделал уроки?» — (ДА) Не пиздеж. «Ок, теперь я могу поиграть в девопс-инженера»Вот и вся наука. Изучай! 🛠 #bash #badpractices #bestpractices — ✅ @bashdays / @linuxfactory / @blog
Всё еще мечтаешь о ЗП > 200к? Тогда ты по адресу!Над курсом была проведена масштабная работа, все уроки я перенес на свои сервера. Под капотом движок mkdocs + material. Учел твою обратную связь, дополнил и отредактировал первые два сезона. Добавил темную тему и поиск + отрефачена куча мелочей.
Через LF за год прошло более 900 человек, 32 дали фидбек по офферу, то есть нашли работу мечты и получают 100500 мильонов в секунду. Что интересно в этом списке есть люди, которые вообще были далеки от айти и девопса.Ладно. Больше в уши не лью. Захочешь, сам почитаешь. В любом случае до конца апреля действует скидка
Осталось проверить блок питания, но подходящего не нашел. Заказал, чтобы исключить этот момент. Но очень сомневаюсь что это поможет. Надеюсь хоть винт на террабайт из строя не вышел, куданить потом его прикручу.Вот такие дела. В общем не рекомендую. По крайней мере для режима 24/7 эта хуйня явно не подходит, ну либо мне так повезло. По итогу достал свою старую добрую (пятую) малину, быстренько все на ней поднял и выдохнул. Четвертая малина у меня лет 8 отработала нонстопом без такой вот хуйни. Как придет блок питания, напишу по результатам. 🛠 #hardware #fails — ✅ @bashdays / @linuxfactory / @blog
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
