ch
Feedback
BashMaster

BashMaster

前往频道在 Telegram

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help

显示更多
8 889
订阅者
+124 小时
-977
+2030
帖子存档
✅ Имба: в сети обнаружили мегашпаргалку с самыми полезными нейросетями на все случаи жизни. Сохраняем самое крутое: 🤩Claude
Имба: в сети обнаружили мегашпаргалку с самыми полезными нейросетями на все случаи жизни. Сохраняем самое крутое: 🤩Claude 3.7 Sonnet — мастхев для программистов 🤩Same New — быстрая копия интерфейса сайта 🤩Openrouter — доступ ко всем ИИ 🤩Suno AI — своя музыка с нейросетью Подпишись и находи для себя крутые нейросети бесплатно: https://t.me/+7-B2xMRdGbZiNWY6

⚙️ Кастомный шелл на bash: мини-интерпретатор с поддержкой pipe, history и alias ✔️Сегодня рассмотрим, как на базе Bash собра
⚙️ Кастомный шелл на 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

Fresh IT — не про абстрактное лидерство, а про то, как реально вырасти из разработчика в сильного техлида. Александр — техлид
Fresh IT — не про абстрактное лидерство, а про то, как реально вырасти из разработчика в сильного техлида. Александр — техлид, который прошёл весь путь: от фрилансера на jQuery до руководителя разработки в топовых компаниях. И теперь делится тем, о чём молчат курсы: как строить команду, держать качество, договариваться с бизнесом — и не сгореть на этом всём. 📌 В постах найдешь: техники для тех, кто хочет не просто кодить, а управлять;ситуации из жизни тимлида и как из них выходить;мышление, подходы: всё по делу, с примерами и без воды;свежие новости и тренды в IT, которые помогут оставаться востребованным специалистом. Хватит учиться на своих ошибках, когда можно учиться на чужих. Fresh IT — твой быстрый путь от кода к команде. Подписывайся! 🚀

⚙️ Discover — пользовательские bash-скрипты ✔️Репозиторий, содержащий пользовательские bash-скрипты для автоматизации различн
⚙️ Discover — пользовательские bash-скрипты ✔️Репозиторий, содержащий пользовательские bash-скрипты для автоматизации различных задач тестирования на проникновение. ▶️Данный инструмент включает разведку, сканирование, разбор и создание вредоносных полезных нагрузок и слушателей с помощью Metasploit. ➡️ Репозиторий предназначен для использования с Kali Linux. 🐙 Перейти на Github 🔨 bash_help

⚙️ awesome-bash-alias ✔️Репозиторий на GitHub, который содержит список предустановленных сокращений для команд Bash. ▶️Псевдо
⚙️ awesome-bash-alias ✔️Репозиторий на GitHub, который содержит список предустановленных сокращений для команд Bash. ▶️Псевдонимы позволяют упростить работу с терминалом, сократив количество повторяющихся команд. ▶️В репозитории представлены псевдонимы для команд, связанных с различными программами, включая kubectl, Docker, Git и другие. 🐙 Перейти на Github 🔨 bash_help

📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инже
📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников. На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости подключения и программировании системы управления микроклиматом с помощью микроконтроллеров. 📗В результате вы: - Узнаете, как подключить к микроконтроллеру и запрограммировать датчики температуры, влажности и исполнительное устройство; - Разберетесь, как сделать прототип системы, которая управляет микроклиматом сама; - Освоите на практике техники управления макетом по WiFi с мобильного телефона или компьютера с помощью создания простого web-сайта. Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения. 👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/NCs3p/?erid=2W5zFHBmqMz 📙Все участники открытого урока получат скидку на курс "Embedded Developer" Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

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

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

⚡️ Все о программировании от экспертов BigTech! Собрались разработчики бигтеха и решили создать крутой канал, на котором прос
⚡️ Все о программировании от экспертов BigTech! Собрались разработчики бигтеха и решили создать крутой канал, на котором простым языком расскажут все о мире IT: — Лучшие практики чистого кода Продвинутые техники и рекомендации по разработкеПодробные разборы вопросов с собеседованийИнтересные факты и новости из мира технологийПолезные open-source утилиты 🌐 Присоединяйся к нам и учись на скоростях: IT CoLibry

⚙️ Awesome Sysadmin ✔️Репозиторий, в котором собран список полезных ресурсов для системного администратора. ▶️В списке вы най
⚙️ Awesome Sysadmin ✔️Репозиторий, в котором собран список полезных ресурсов для системного администратора. ▶️В списке вы найдёте программы с исходным кодом, книги, сайты и ссылки на другие репозитории, которые помогут вам в работе сисадмина. 🐙 Перейти на Github 🔨 bash_help

⚙️ ipset-blacklist ✔️Скрипт на языке Bash, который использует инструменты ipset и iptables для блокировки большого количества
⚙️ ipset-blacklist ✔️Скрипт на языке Bash, который использует инструменты ipset и iptables для блокировки большого количества IP-адресов, опубликованных в чёрных списках. ➡️ Некоторые особенности скрипта: 💠Для хранения и извлечения IP-адресов используется хэш-таблица, что ускоряет поиск по сравнению с тысячами последовательно анализируемых правил блокировки iptables. 💠Лимит списка ipset — 2^16 записей. 💠Команда ipset не работает в среде OpenVZ, но хорошо себя показывает на выделенных и полностью виртуализированных серверах, таких как KVM. ▶️Скрипт можно настроить для автоматического обновления чёрного списка с помощью задания cron. При этом не рекомендуется обновлять список слишком часто, чтобы некоторые провайдеры чёрных списков не заблокировали IP-адрес пользователя. 🐙 Перейти на Github 🔨 bash_help

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

• infosec - это один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальны
infosec - это один из самых ламповых каналов по информационной безопасности, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы: - Что из себя представляет официально взломанный iPhone от Apple? - Кому и для чего выдавалось разрешение на ношение сотового телефона? - Бесплатные курсы для ИБ специалистов на различные темы; - Бесплатный бот, который проверит файлы на предмет угроз более чем 70 антивирусами одновременно. Присоединяйся, у нас интересно: @it_secur

⚙️ Использование простого Bash-скрипта для перезапуска программ на сервере ✔️Чтобы обеспечить как можно более долгое функцион
⚙️ Использование простого 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

📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, ра
📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников. На открытом уроке 10 апреля в 20:00 мск мы погрузимся в процессы и тонкости оцифровки сигнало на пример микроконтроллера ESP32. 📗 В результате вы: - Узнаете всё об особенностях и нюансах схемотехники при проектировании тракта АЦП; - Поймете, как работать с АЦП на примере ESP32: от расчета погрешностей и калибровки до различных методов фильтрации сигналов; - Научитесь на практике использовать все основные параметры АЦП и увидите их влияние вживую. Спикер Марат Боранбаев — эксперт в сфере Fullstack Embedding, 10+ лет в разработке и преподавании, занимается разработкой для системы бортового радиотехнического комплекса космического аппарата на базе МК STM32. 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/iRdY/?erid=2W5zFJoGRWx 📙 Все участники открытого урока получат скидку на курс "Embedded Developer" Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

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

Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человек
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает? Психолог взрослого человека - канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам. ✔️ Как научиться отвлекаться от работы и отдыхать? ✔️ Как совместить кучу рабочих задач и время с семьей? ✔️ Как справиться с прокрастинацией? ✔️ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит? Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни! 👨🏻‍💻 Псс. Заходите в закреп - там много полезного, и даже бесплатный мини-курс по выходу из апатии: https://t.me/+UjHABa92H6JlZjEy

⚙️ Rofi Blurry Powermenu ✔️Полноэкранное меню питания для Linux с эффектом размытия, созданное с помощью инструмента Rofi. ➡️
⚙️ Rofi Blurry Powermenu ✔️Полноэкранное меню питания для Linux с эффектом размытия, созданное с помощью инструмента Rofi. ➡️ Некоторые особенности меню: 💠По умолчанию выделен вариант блокировки. 💠Для работы в разных средах рабочего стола (Cinnamon, XFCE и Mate) можно использовать терминал. 💠Для создания меню используются открытые шрифты Webly SleekUI и Feather. 🖼️ Ссылка на скрипт 🔨 bash_help

⚙️ Что случилось 30 марта в Yandex Cloud и почему стоит пересмотреть свои зоны отказа 30 марта у Yandex Cloud упала зона доступности из-за аварии на подстанции, которая вывела из строя оба ввода питания, а дальше все по цепочке — сеть, хранилища, ВМ. Подробности есть в официальном пост-мортеме, но стоит отметить не столько технику, сколько сам факт: даже крупные инфраструктуры вылетают не из-за банальных ошибок, а из-за крайне редких, но неприятно возможных событий. Поэтому в реальности вопрос стоит не в том, произойдет ли инцидент, а в том, как быстро можно переключиться, восстановиться или хотя бы понять, что делать. ➡️Мини-чеклист для тех, кто не хочет восстанавливаться вручную: 💠разнесите сервисы по зонам: это не всегда просто, но критично, если есть хоть какая-то зависимость от доступности 💠бэкапы не в том же регионе 💠IaC + конфигурация под «развернуть в другой зоне», даже если не автодеплой, то хотя бы не руками в консоли - мониторинг не в той же зоне, где прод, иначе будете смотреть на чёрный экран, пока всё лежит 🖼️ Прочитать статью на Habr'e 🔨 bash_help

⚙️ xdg-ninja ✔️Bash-скрипт, который помогает администраторам GNU/Linux навести порядок в директории $HOME. ▶️Скрипт сканирует
⚙️ xdg-ninja ✔️Bash-скрипт, который помогает администраторам GNU/Linux навести порядок в директории $HOME. ▶️Скрипт сканирует каталог на наличие файлов, которые не должны там находиться. Когда он находит такой файл, то сообщает пользователю, можно ли переместить его в подходящее место и как это сделать. ➡️ Особенности: 💠Поддержка кастомной конфигурации. Пользователь определяет программу и список файлов и каталогов, которые эта программа помещает в директорию $HOME. 💠Для каждого файла или каталога пользователь указывает, можно ли его переместить. Если да, то также даёт инструкции, как это сделать. 💠Возможность автоматической генерации конфигурации. 🐙 Перейти на Github 🔨 bash_help