BashMaster
7.95K subscribers
666 photos
14 videos
1 file
690 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
⚙️ xdg-ninja

✔️Bash-скрипт, который помогает администраторам GNU/Linux навести порядок в директории $HOME.

▶️Скрипт сканирует каталог на наличие файлов, которые не должны там находиться. Когда он находит такой файл, то сообщает пользователю, можно ли переместить его в подходящее место и как это сделать.

➡️ Особенности:
💠Поддержка кастомной конфигурации. Пользователь определяет программу и список файлов и каталогов, которые эта программа помещает в директорию $HOME.
💠Для каждого файла или каталога пользователь указывает, можно ли его переместить. Если да, то также даёт инструкции, как это сделать.
💠Возможность автоматической генерации конфигурации.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что случилось 30 марта в Yandex Cloud и почему стоит пересмотреть свои зоны отказа

30 марта у Yandex Cloud упала зона доступности из-за аварии на подстанции, которая вывела из строя оба ввода питания, а дальше все по цепочке — сеть, хранилища, ВМ.

Подробности есть в официальном пост-мортеме, но стоит отметить не столько технику, сколько сам факт: даже крупные инфраструктуры вылетают не из-за банальных ошибок, а из-за крайне редких, но неприятно возможных событий.

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

➡️Мини-чеклист для тех, кто не хочет восстанавливаться вручную:

💠разнесите сервисы по зонам: это не всегда просто, но критично, если есть хоть какая-то зависимость от доступности
💠бэкапы не в том же регионе
💠IaC + конфигурация под «развернуть в другой зоне», даже если не автодеплой, то хотя бы не руками в консоли
- мониторинг не в той же зоне, где прод, иначе будете смотреть на чёрный экран, пока всё лежит

🖼️ Прочитать статью на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Rofi Blurry Powermenu

✔️Полноэкранное меню питания для Linux с эффектом размытия, созданное с помощью инструмента Rofi.

➡️ Некоторые особенности меню:
💠По умолчанию выделен вариант блокировки.
💠Для работы в разных средах рабочего стола (Cinnamon, XFCE и Mate) можно использовать терминал.
💠Для создания меню используются открытые шрифты Webly SleekUI и Feather.

🖼️ Ссылка на скрипт

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?

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

✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?

Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни!

👨🏻‍💻 Псс. Заходите в закреп - там много полезного, и даже бесплатный мини-курс по выходу из апатии: https://t.me/+UjHABa92H6JlZjEy
⚙️ 20 специальных символов в Bash и их функции

# — Начало комментария в Bash. Всё, что следует за этим символом в той же строке, игнорируется во время выполнения скрипта.
; — Позволяет использовать несколько команд в одной строке.
& — Выполняет предыдущую команду в фоновом режиме.
| — Передает выходные данные одной команды в качестве входных данных другой.
> — Перенаправляет вывод команды в файл, перезаписывая файл, если он существует.
>> — Добавляет вывод команды в конец файла.
< — Перенаправляет ввод из файла в команду.
$ — Ссылается на значение переменной.
* — Соответствует любому количеству символов в имени файла или переменной.
? — Соответствует ровно одному символу в имени файла или переменной.
{ } — Используется для раскрытия фигурных скобок с целью создания произвольных строк.
( ) — Выполняет команды в новом экземпляре оболочки, также известном как подоболочка.
[ ] — соответствует любому одному символу, заключённому в скобки, в имени файла или переменной.
! — Отменяет статус завершения следующей за ней команды, также используется для расширения истории.
\ — Аннулирует особое значение следующего символа.
. — Обозначает текущий каталог в пути к файлу.
.. — Обозначает родительский каталог в пути к файлу.
/ — Разделяет каталоги в пути к файлу, представляет корневой каталог, если используется в начале пути.
~ — Обозначает домашний каталог текущего пользователя в пути к файлу.
<<< — Перенаправляет строку в стандартный ввод команды.

▶️Больше о специальных символах Bash можно узнать, изучив документацию, например, введя команду man bash в терминале.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников.

На открытом уроке 10 апреля в 20:00 мск мы погрузимся в процессы и тонкости оцифровки сигнало на пример микроконтроллера ESP32.

📗 В результате вы:
- Узнаете всё об особенностях и нюансах схемотехники при проектировании тракта АЦП;
- Поймете, как работать с АЦП на примере ESP32: от расчета погрешностей и калибровки до различных методов фильтрации сигналов;
- Научитесь на практике использовать все основные параметры АЦП и увидите их влияние вживую.

Спикер Марат Боранбаев — эксперт в сфере Fullstack Embedding, 10+ лет в разработке и преподавании, занимается разработкой для системы бортового радиотехнического комплекса космического аппарата на базе МК STM32.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/iRdY/?erid=2W5zFJoGRWx

📙 Все участники открытого урока получат скидку на курс "Embedded Developer"

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚙️ Использование простого Bash-скрипта для перезапуска программ на сервере

✔️Чтобы обеспечить как можно более долгое функционирование императивных программ (даже после сбоя или перезагрузки сервера), можно создать простой bash-скрипт, который будет проверять, работают ли программы, и запустит их в случае необходимости. Чтобы скрипт работал на регулярной основе, можно использовать cron для составления графика запуска скрипта, что гарантирует перезапуск программы в случае ее падения.

▶️Существует целый ряд программ, таких как Upstart, Supervisor и Monit, которые могут запускать и мониторить приложения на виртуальных частных серверах; bash-скрипт выполняет только запуск программ. Ниже приведен пример сценария, который запускает Apache, в случае если приложение выключено.
nano launch.sh
#!/bin/sh
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? != 0 ] then
/etc/init.d/apache2 start > /dev/null
fi

▶️После сохранения скрипта нужно дать ему права на выполнение, чтобы иметь возможность запускать его:
chmod +x launch.sh

▶️Apache можно заменить любым необходимым приложением. При необходимости установить скрипт для нескольких приложений, нужно создать новый скрипт для каждого приложения и поместить скрипты в отдельную строку cron-файла.

▶️После создания скрипта нужно установить график его запуска. Утилита cron позволяет установить интервалы выполнения скрипта. Для начала откройте cron-файл:
crontab -e

▶️Cron предоставляет подробную информацию работе системы расписаний в начале файла.

▶️Определив необходимую частоту запуска скрипта, внесите ее в соответствующую строку. Самый короткий интервал запуска скрипта в cron – 1 минута. Чтобы установить данный интервал, используйте следующий шаблон:
* * * * * ~/launch.sh

▶️Для запуска скрипта каждые 5 минут используйте шаблон:
*/5 * * * * ~/launch.sh

➡️ Установка простого скрипта обеспечит запуск программы после ее падения по любой причине. Это дает гарантию того, что максимальное время, на протяжении которого программа будет отключена – это интервал времени, указанный в конфигурациях cron.

▶️Если серверу нужна программа, работающая более тщательно, можно установить одну из нескольких программ мониторинга сервера (Supervisor, Upstart, or Monit)

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
infosec - это один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы:

- Что из себя представляет официально взломанный iPhone от Apple?
- Кому и для чего выдавалось разрешение на ношение сотового телефона?
- Бесплатные курсы для ИБ специалистов на различные темы;
- Бесплатный бот, который проверит файлы на предмет угроз более чем 70 антивирусами одновременно.

Присоединяйся, у нас интересно: @it_secur
⚙️ Zoxide

✔️Инструмент навигации по каталогам командной строки, запоминающий часто используемые каталоги. Он позволяет быстро «переходить» к этим каталогам, используя минимальное количество нажатий клавиш.

➡️ Некоторые особенности Zoxide:
💠Отслеживание посещённых каталогов. Инструмент ведёт учёт и присваивает каждому каталогу оценку, основанную на частоте и давности посещения. Чем чаще и позже пользователь посещает каталог, тем выше его позиция в базе данных Zoxide.
💠Предсказание пути. Zoxide не требует точных имён путей, а предсказывает, куда нужно перейти, на основе частичных входных данных и шаблонов использования.
💠Интеграция с различными оболочками. Zoxide можно интегрировать с Bash, Fish, Zsh и Elvish.
💠Взаимодействие с другими инструментами. Zoxide можно сочетать с zsh-autocomplete, что значительно улучшает навигацию по терминалу.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ ipset-blacklist

✔️Скрипт на языке Bash, который использует инструменты ipset и iptables для блокировки большого количества IP-адресов, опубликованных в чёрных списках.

➡️ Некоторые особенности скрипта:
💠Для хранения и извлечения IP-адресов используется хэш-таблица, что ускоряет поиск по сравнению с тысячами последовательно анализируемых правил блокировки iptables.
💠Лимит списка ipset — 2^16 записей.
💠Команда ipset не работает в среде OpenVZ, но хорошо себя показывает на выделенных и полностью виртуализированных серверах, таких как KVM.

▶️Скрипт можно настроить для автоматического обновления чёрного списка с помощью задания cron. При этом не рекомендуется обновлять список слишком часто, чтобы некоторые провайдеры чёрных списков не заблокировали IP-адрес пользователя.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Awesome Sysadmin

✔️Репозиторий, в котором собран список полезных ресурсов для системного администратора.

▶️В списке вы найдёте программы с исходным кодом, книги, сайты и ссылки на другие репозитории, которые помогут вам в работе сисадмина.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Все о программировании от экспертов BigTech!

Собрались разработчики бигтеха и решили создать крутой канал, на котором простым языком расскажут все о мире IT:

Лучшие практики чистого кода
Продвинутые техники и рекомендации по разработке
Подробные разборы вопросов с собеседований
Интересные факты и новости из мира технологий
Полезные open-source утилиты

🌐 Присоединяйся к нам и учись на скоростях: IT CoLibry
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ inotify-info

✔️Пакет для Linux, который позволяет отслеживать количество наблюдателей, экземпляров системы inotify и наблюдаемые файлы.

▶️Система inotify в Linux может быть сложной для отладки, особенно когда в ней заканчивается количество наблюдателей. inotify-info помогает решить эту проблему.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ GOTO

✔️Простой терминальный менеджер SSH-подключений, который позволяет управлять списком SSH-серверов.

➡️ Некоторые особенности программы:
💠В отличие от PuTTY, не включает в себя логику подключения, а полагается на утилиту SSH, которая должна быть установлена в системе.
💠Поддерживает хранение «любимых» SSH-серверов в одном месте и лёгкий доступ к ним.
💠Позволяет создавать несколько профилей для одного хоста, чтобы выполнять разные команды при установлении соединения.
💠С версии 1.1.0 поддерживает пользовательские параметры SSH, с помощью которых можно определить команды, которые будут выполняться при подключении к удалённому хосту.
💠Можно комбинировать с tmux для мониторинга нескольких сервисов одновременно.

▶️Поддерживаемые платформы: macOS, Linux, Windows.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников.

На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости подключения и программировании системы управления микроклиматом с помощью микроконтроллеров.

📗В результате вы:
- Узнаете, как подключить к микроконтроллеру и запрограммировать датчики температуры, влажности и исполнительное устройство;
- Разберетесь, как сделать прототип системы, которая управляет микроклиматом сама;
- Освоите на практике техники управления макетом по WiFi с мобильного телефона или компьютера с помощью создания простого web-сайта.

Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.

👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/NCs3p/?erid=2W5zFHBmqMz

📙Все участники открытого урока получат скидку на курс "Embedded Developer"

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚙️ awesome-bash-alias

✔️Репозиторий на GitHub, который содержит список предустановленных сокращений для команд Bash.

▶️Псевдонимы позволяют упростить работу с терминалом, сократив количество повторяющихся команд.

▶️В репозитории представлены псевдонимы для команд, связанных с различными программами, включая kubectl, Docker, Git и другие.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Discover — пользовательские bash-скрипты

✔️Репозиторий, содержащий пользовательские bash-скрипты для автоматизации различных задач тестирования на проникновение.

▶️Данный инструмент включает разведку, сканирование, разбор и создание вредоносных полезных нагрузок и слушателей с помощью Metasploit.

➡️ Репозиторий предназначен для использования с Kali Linux.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Fresh IT — не про абстрактное лидерство, а про то, как реально вырасти из разработчика в сильного техлида.

Александр — техлид, который прошёл весь путь: от фрилансера на jQuery до руководителя разработки в топовых компаниях. И теперь делится тем, о чём молчат курсы: как строить команду, держать качество, договариваться с бизнесом — и не сгореть на этом всём.

📌 В постах найдешь:

техники для тех, кто хочет не просто кодить, а управлять;

ситуации из жизни тимлида и как из них выходить;

мышление, подходы: всё по делу, с примерами и без воды;

свежие новости и тренды в IT, которые помогут оставаться востребованным специалистом.

Хватит учиться на своих ошибках, когда можно учиться на чужих.
Fresh IT — твой быстрый путь от кода к команде. Подписывайся! 🚀
⚙️ Кастомный шелл на bash: мини-интерпретатор с поддержкой pipe, history и alias

✔️Сегодня рассмотрим, как на базе Bash собрать свой собственный кастомный шелл — с автодополнением, историей, алиасами, логами, цветным prompt'ом, подсказками по sudo и возможностью расширения.

➡️ Минимальный REPL-интерпретатор на Bash
▶️Начнём с базовой конструкции, которая делает из bash-а простой цикл чтения и выполнения команд:
#!/usr/bin/env bash

HISTORY_FILE="$HOME/.mybash_history"
touch "$HISTORY_FILE"

trap "echo; exit 0" SIGINT SIGTERM

while true; do
read -e -p "→ " CMD
echo "$CMD" >> "$HISTORY_FILE"
eval "$CMD"
done

▶️HISTORY_FILE — файл для сохранения истории между сессиями, trap — ловим Ctrl+C и красиво выходим, read -e — включает поддержку стрелок и автодополнения, eval "$CMD" — исполняем введённую строку как Bash-команду.

➡️ Поддержка алиасов
▶️Добавим свои алиасы и включим их поддержку:
shopt -s expand_aliases
alias ll='ls -la'
alias gs='git status'

▶️shopt -s expand_aliases — без него alias'ы в скрипте не работают. Дальше можно объявлять любые свои сокращения.

➡️ Добавим логирование команд
▶️Хотим знать, кто и когда запускал какую команду:
LOGFILE="$HOME/.mybash_cmd.log"
log_command() {
echo "$(date "+%Y-%m-%d %H:%M:%S") | $1" >> "$LOGFILE"
}

▶️log_command — простая функция, логирующая команду с временной меткой. Используем её в цикле:
read -e -p "→ " CMD
log_command "$CMD"
eval "$CMD"


➡️ Измерение времени выполнения команды
▶️Вариант с миллисекундами:
start=$(date +%s%3N)
eval "$CMD"
end=$(date +%s%3N)
echo "Команда выполнена за $((end - start)) мс"

▶️date +%s%3N — время в миллисекундах. Считаем разницу до и после выполнения команды.

➡️ Подсказка на sudo при ошибке доступа
if eval "$CMD" 2>&1 | grep -iq "permission denied\|operation not permitted"; then
echo "Возможно, стоит попробовать: sudo $CMD"
fi

▶️2>&1 — захватываем stderr. grep -iq — проверяем сообщение об ошибке доступа, не учитывая регистр.

➡️ Цветной prompt
▶️Пример синим цветом:
read -e -p $'\e[1;34m→\e[0m ' CMD

▶️\e[1;34m — включаем синий цвет. \e[0m — сбрасываем в стандартный после символа prompt-а.

➡️ Лог piped-команд
if [[ "$CMD" == *"|"* ]]; then
echo "PIPE: $CMD" >> ~/.mybash_pipe.log
fi

▶️Простая проверка на наличие pipe в команде и логирование её отдельно.

➡️ Используем PROMPT_COMMAND для хуков
export PROMPT_COMMAND='echo "[Hook] Снова в prompt-е"'

▶️PROMPT_COMMAND — переменная, в которую можно вписать команду, исполняемую до показа prompt'а. Подходит для логов, счётчиков, метрик и вообще чего угодно.

🖼️ Дочитать статью на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Имба: в сети обнаружили мегашпаргалку с самыми полезными нейросетями на все случаи жизни.

Сохраняем самое крутое:
🤩Claude 3.7 Sonnet — мастхев для программистов
🤩Same New — быстрая копия интерфейса сайта
🤩Openrouter — доступ ко всем ИИ
🤩Suno AI — своя музыка с нейросетью

Подпишись и находи для себя крутые нейросети бесплатно: https://t.me/+7-B2xMRdGbZiNWY6
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ automation-bash-scripts

✔️Коллекция скриптов на языках BASH и Python для разных сценариев с использованием циклов, процессоров полей и других инструментов.

➡️ Некоторые из скриптов, которые входят в состав репозитория:

💠 show-atackers.sh — анализ логов для определения IP-адреса, местоположения и количества неудачных попыток
💠 скрипт для проверки связи — использует файл серверов с именами хостов и модуль PING
💠 скрипт для создания пользователей — работает в среде Linux/Unix и проверяет статус выхода команд

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM