es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

BashMaster

BashMaster

Ir al canal en Telegram

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

Mostrar más
8 817
Suscriptores
Sin datos24 horas
-167 días
-3530 días
Archivo de publicaciones
⚙️ Ошибка bash permission denied ✔️Многие новички пытаются выполнить запись определенных значений в системные файлы с помощью
⚙️ Ошибка bash permission denied ✔️Многие новички пытаются выполнить запись определенных значений в системные файлы с помощью операторов перенаправления ввода и вывода и получают ошибку bash permission denied. Эта ошибка выводится, даже если вы использовали sudo. ▶️Казалось бы, sudo есть, значит права суперпользователя получены и все должно работать но тут все не так просто. В этой статье мы рассмотрим почему возникает ошибка bash permission denied и как ее обойти. ▶️Допустим, вы выполняете команду:
 sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
▶️А в результате вместо записи строчки в /etc/resolv.conf получаете ошибку bash: /etc/resolv.conf permission denied ▶️В русской локализации это будет отказано в доступе bash linux. Так происходит потому что вы запускаете с правами суперпользователя утилиту echo и она честно выводит вашу строку в стандартный вывод bash с правами суперпользователя. Но bash запущен от обычного пользователя, и когда интерпретатор bash пытается записать полученную строчку в системный файл, естественно, что вы получите ошибку. ▶️Но существует несколько способов обойти это ограничение, вы можете, например, использовать команду tee, которая записывает стандартный вывод в файл или запустить саму оболочку от имени суперпользователя. ▶️Рассмотрим сначала вариант с tee echo 'текст' | sudo tee -a /путь/к/файлу
echo 'nameserver 8.8.8.8' | sudo tee -a /etc/resolv.conf
▶️Это очень простое решение, но, кроме того, вы можете запустить оболочку bash с правами суперпользователя, чтобы дать ей доступ на запись:
sudo sh -c 'echo текст >> /путь/к/файлу'
sudo bash -c 'echo текст >> /путь/к/файлу'
▶️Например:
 sudo bash -c 'echo nameserver 8.8.8.8 >> /etc/resolv.conf
▶️Еще одно решение, призванное, упростить эту команду, добавить такой код в ~/.bashrc:
sudoe() {
[[ "$#" -ne 2 ]] && echo "Usage: sudoe <text> <file>" && return 1
echo "$1" | sudo tee --append "$2" > /dev/null
}
▶️Дальше для вывода строки в файл выполняйте:
sudoe 'текст' >> /путь/к/файлу
▶️Например:
 sudoe "nameserver 8.8.8.8" > /etc/resolv.conf
➡️ Теперь все будет работать, как и ожидалось, и ошибка bash отказано в доступе не появится. Еще можно поменять права на файл, а потом уже выводить в него строку. Но это очень неправильное решение. И даже не потому, что это небезопасно, а больше потому что там намного больше действий. 🖼️ Ссылка на источник 🔨 bash_help

Устали от «хайповых» курсов? RECURA — канал с реально работающими инструментами и знаниями: 📚Подборки курсов, сборники, шпар
Устали от «хайповых» курсов? RECURA — канал с реально работающими инструментами и знаниями: 📚Подборки курсов, сборники, шпаргалки, лайфхаки 💻 Python и Go для автоматизации и DevOps 🐧 Linux + Bash: решения для реальных проектов 🐳 Docker, Kubernetes и CI/CD — практические гайды 🛠 Утилиты, заменяющие кучу софта 🔐 OSINT и этичный хакинг: практика и разборы Присоединяйся и получай то, что действительно нужно!

⚙️ Как удалить старые файлы логов в Linux ✔️Бывалые пользователи Linux сразу подумают, что в этой статье пойдет речь про logr
⚙️ Как удалить старые файлы логов в Linux ✔️Бывалые пользователи Linux сразу подумают, что в этой статье пойдет речь про logrotate, но это не так. Да, ротация логов как раз и была придумана и даже демон для нее, что бы старые логи не накапливались, а проходили ротацию и тем самым не засоряли систему. Но не все так радужно и существует куча служб и прочих задач, которые скапливают логи и никак за их количеством не следят. Более того, даже если настроить ротацию таким логам, то ничего не выйдет. ▶️Например, демон SoftEther VPN. Он каждые сутки создает новый файл логов, а про старый забывает. Таким образом его папке слогами через год будет 365 файлов только самого демона, а еще 365 файлов логов каждого хаба, который был создан. В общем это много. Может места и не много они будут занимать, но это много для файловой системы, которой нужно вести журнал по каждому файлу, что бы он не потерялся. Да и Linux работает обычно не один год, а лет 10 и сами понимаете что будет с файлами, если их вовремя не почистить. ▶️Для решения задачи удаления старых фалов логов можно воспользоваться утилитой find с вот такими опциями:
find /var/log/* -type f -mtime +182 -exec rm {} \;
▶️Где: 💠/var/log/* – место для поиска и все папки и подпапки 💠-type f – в поиск должны попасть только файлы, папки удалять не стоит, да же если они старые, хотя все опционально 💠-mtime +182 – искать файлы будем модифицированные старше 182 дней назад 💠-exec rm {} – ну а эта опция удалит все что подпадет под поиск, для теста можно ее удалить и посмотреть что будет удалено. ▶️Ок, нашли файлы и удалили. Второй раз это делать не хочется. Нужно автоматизировать. Делаем такой скрипт командой nano rm_old.sh:
#!/bin/sh

#Задаем переменные
Day=182
log_path="/var/log/"

#Найти и удалить файлы
find $log_path* -type f -mtime +$Day -exec rm {} \;

echo 'файлы журнала старше 30 дней удалены из $log_path'
▶️В переменных указываем нужные значения. Затем делаем файл исполняемым командой chmod +x rm_old.sh ▶️Добавляем скрипт в cron для периодического запуска командой crontab -e и вписываем следующее:
0 10 * * * /path_to_script/rm_old.sh >/dev/null 2>&1
▶️Таким образом скрипт будет запускаться каждые сутки в 00:10. 🖼️ Ссылка на источник 🔨 bash_help

💻Лучшие каналы по ИБ и Хакингу! Hacking & InfoSec Base — канал действующего белого хакера. Подробные уроки по безопасности,
💻Лучшие каналы по ИБ и Хакингу! Hacking & InfoSec Base — канал действующего белого хакера. Подробные уроки по безопасности, эксплуатации уязвимостей, социальной инженерии. CyberGuard — полезные утилиты, софт и литература по информационной безопасности и Хакингу. linux administration — всё, что необходимо знать о Linux и его дистрибутивах. 🫵Подписывайся, здесь ты узнаешь всё о ИБ и Хакинге!

⚙️ bash-file-cleaner — cкрипт для очистки файлов ✔️Этот репозиторий содержит Bash-скрипт для автоматической очистки старых фа
⚙️ bash-file-cleaner — cкрипт для очистки файлов ✔️Этот репозиторий содержит Bash-скрипт для автоматической очистки старых файлов в указанной директории. Скрипт удаляет файлы, которые старше заданного количества дней, с возможностью ведения лога для отслеживания выполненных действий и удаленных файлов. ➡️ Возможности 💠Автоматическая очистка: Скрипт удаляет файлы, старые более заданного количества дней. 💠Логирование: Все действия (включая ошибки и удаленные файлы) записываются в указанный лог-файл. 💠Настройка: Параметры, такие как целевая директория, количество дней и путь к лог-файлу, настраиваются через файл .env. 💠Простота использования: Скрипт готов к автоматическому запуску через cron для регулярного выполнения. ➡️ Требования 💠Операционная система Linux с поддержкой Bash и cron. 💠Установленная команда find (обычно она предустановлена в большинстве Linux-дистрибутивов) 🐙 Перейти на Github 🔨 bash_help

😎 Все о кибербезе в @secmedia Новостное сообщество, куда стоит заглянуть: Cyber Media — каждый день отбирает интересные ново
😎 Все о кибербезе в @secmedia Новостное сообщество, куда стоит заглянуть: Cyber Media — каждый день отбирает интересные новости из мира информационной безопасности, а также публикует статьи и интервью от экспертов. ➡️ Подписывайтесь на новости @secmedia

⚙️ DevOps Roadmap 2025 ✔️Актуальный roadmap для DevOps, который включает в себя необходимые ссылки на обучающие материалы для
⚙️ DevOps Roadmap 2025 ✔️Актуальный roadmap для DevOps, который включает в себя необходимые ссылки на обучающие материалы для каждого шага на этом пути. ➡️ Некоторые этапы DevOps Roadmap 💠Изучение основ. Освоение Linux, сетевых технологий и языков программирования 💠Работа с системами контроля версий (Git и GitHub). Изучение команд Git, ветвления и слияния, а также GitHub Actions для CI/CD. 💠Освоение CI/CD (Jenkins, GitHub Actions, GitLab CI). Понимание автоматизации тестирования, интеграции и развёртывания. 💠Изучение инфраструктуры как кода (IaC). Освоение Terraform, Ansible и других инструментов для автоматизации инфраструктуры. 💠Изучение облачных платформ (AWS, Azure, GCP). Понимание сервисов для DevOps, например, EC2, S3, IAM 💠Освоение контейнеризации и оркестровки. Изучение Docker, Kubernetes, Helm и других инструментов. 💠Мониторинг и логирование. Освоение Prometheus, Grafana и стека ELK для мониторинга и анализа логов 💠Безопасность в DevOps (DevSecOps). Интеграция безопасности в процесс DevOps, использование принципов DevSecOps. ▶️В репозитории представлен пошаговый план обучения DevOps с ссылками на соответствующие ресурсы. 🐙 Перейти на Github 🔨 bash_help

Освой сети и командную строку с лучшими обучающими каналами 🤩 Network Admin - обучающий канал по сетевым технологиям 🤩 Netw
Освой сети и командную строку с лучшими обучающими каналами 🤩 Network Admin - обучающий канал по сетевым технологиям 🤩 Network Admin | Guides - канал, где рассказывают полезную информацию про Windows/Linux 📱 BashTex - обучение работе с командной строкой

⚙️ getopts: как писать CLI-утилиты с флагами без внешних библиотек ✔️getopts — это встроенный в любой POSIX-совместимый Linux
⚙️ getopts: как писать CLI-утилиты с флагами без внешних библиотек ✔️getopts — это встроенный в любой POSIX-совместимый Linux/Unix-shell мини-парсер аргументов. Один shebang — и у вас CLI-утилита без единой внешней зависимости. В статье рассмотрим, как выжать из getopts максимум, где он спотыкается и когда пора переехать на getopt или Argbash. ➡️ Почему вообще всё ещё getopts 💠Входит в POSIX — доступен в /bin/sh на любом «живом» юниксе. 💠Никаких зависимостей — скрипт останется единственным файлом. 💠Поведение чётко регламентировано спецификацией Open Group — т. е. скрипт будет вести себя одинаково под bash, zsh, dash, ksh. ▶️Минус — лишь короткие флаги и отсутствие родной поддержки --long-option. Но и это решаемо. ➡️ Базовый синтаксис: одно кольцо, чтобы править всеми
#!/usr/bin/env sh
set -euo pipefail
IFS='
'

usage() {
  cat <<EOF
Usage: ${0##*/} [-a] [-b ARG] file...
  -a        : включить дополнительный режим
  -b ARG    : передать аргумент
EOF
  exit 2
}

# двоеточие в начале → тихий режим ошибок
while getopts ":ab:" opt; do
  case "$opt" in
    a) flag_a=true ;;
    b) param_b=$OPTARG ;;
    :) echo "Опция -$OPTARG требует аргумента" >&2; usage ;;
    \?) echo "Неизвестная опция -$OPTARG" >&2; usage ;;
  esac
done
shift "$((OPTIND-1))"   # убираем уже разобранные параметры
▶️Двоеточие в начале optstring переводит парсер в «silent mode» — ошибки по argv приходится ловить самостоятельно, зато можно отдать лайтовый help, а не cryptic usage из недр шелла. Про необходимость shift "$((OPTIND-1))" задокументировано даже в posix man-pages — так убираем из $@ опции и получаем чистый список позиционных аргументов. ➡️ Короткие флаги и их комбо getopts умеет распаковывать слипшиеся флаги: -abc интерпретируется как -a -b -c. Если после символа ожидается аргумент, разбор прекращается ровно там:
# optstring="a:b"
$ my.sh -ac   # OK: -a, -c как позиционка
$ my.sh -abx  # -a, -b x
$ my.sh -ab   # ошибка: -b ждёт аргумент
Edge-case — отрицательные числа (-5) внезапно принимаются за флаг. Начинайте список ожидаемых опций с --, тогда getopts прекратит работу при виде первого не-флага, и минусы в числах останутся нетронутыми. ➡️ Поддерживаем --long без сторонних тулов Частый прием: сначала через case "$1" ловим варианты --help, --version, --long=value, а затем отдаём остаток в getopts — так не ломаем POSIX-совместимость и не тащим GNU getopt.
while [ $# -gt 0 ]; do
  case "$1" in
    --help) usage ;;
    --output=*) opt_o=${1#*=}; shift ;;
    --) shift; break ;;     # двойное тире — конец опций
    -*) break ;;            # короткие опции разберет getopts
    *)  break ;;
  esac
done

# теперь классический getopts
while getopts ":o:f:" opt; do
  ...
done
shift "$((OPTIND-1))"
▶️Схема простая: захотите — добавите alias-ы вроде --verbose/-v, или вообще YAML-конфиг после --config=path.yml. 🖼️ Дочитать статью на Habr'e 🔨 bash_help

❕ Приглашаем на урок по работе с чувствительными данными в Kubernetes-кластере! ⏺ Открытый урок «K8S + Vault — как получать с
❕ Приглашаем на урок по работе с чувствительными данными в Kubernetes-кластере! ⏺ Открытый урок «K8S + Vault — как получать секреты?» Бесплатно 17 июня в 20:00 МСК.  Поймете, как организовать безопасное и масштабируемое взаимодействие между Kubernetes и HashiCorp Vault. Разберём подход dynamic secrets и инструмент External Secrets Operator для интеграции секретов из Vault в кластер. На уроке вы узнаете: - как Kubernetes работает с секретами по умолчанию и его ограничения; - способы интеграции Kubernetes и Vault; - что такое External Secrets Operator и почему его выбирают для production-сред; - пошаговую схему подключения Vault к K8s. ➡️ Регистрация на вебинар Урок в рамках старта курса «Инфраструктурная платформа на основе Kubernetes», ты можешь воспользоваться 🎁 бонусным промокодом Kuber_06 при покупке курса.  #реклама О рекламодателе

⚙️ Shellfirm — защита от случайных или вредоносных команд в терминале ✔️Утилита, которая защищает терминал от потенциально оп
⚙️ Shellfirm — защита от случайных или вредоносных команд в терминале ✔️Утилита, которая защищает терминал от потенциально опасных команд. Она работает как капча, запрашивая подтверждение перед выполнением рискованной команды. ▶️Цель — предотвратить случайные удаления файлов, перезагрузки системы и другие разрушительные действия. ➡️ Как работает Shellfirm ▶️Shellfirm анализирует введённую команду и, если находит в ней подозрительный шаблон (предопределённый или заданный пользователем), приостанавливает выполнение и запрашивает подтверждение. Например, при вводе rm -rf / программа покажет предупреждение и потребует подтвердить удаление. ➡️ Установка и настройка ▶️Shellfirm поддерживает различные оболочки, например Bash и Zsh. Установить программу можно через Homebrew, go install или скачать бинарник с GitHub. ▶️Настроить Shellfirm можно, например, добавив или удалив групповые проверки, а также изменив режим проверки по умолчанию (например, на математический вопрос). ▶️Пользователи отмечают, что Shellfirm добавляет дополнительный уровень безопасности при работе в терминале. Однако есть и критика: некоторые пользователи считают, что программа слишком часто запрашивает подтверждение, и это может быть утомительным. 🐙 Перейти на Github 🔨 bash_help

🚀 Почему пользователи платят $30 за простой конвертер картинок? Давайте разберемся. Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат. Как он это сделал: 1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG». 2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик. 3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма. Посты про конвертер (ч.1, ч.2) Что из этого получилось: — Доход $500 в месяц с тенденцией роста. — Более $10K заработано на конвертере. — $0 на рекламу, всего $40 в месяц на сервер. Выводы: — Люди платят за удобство, даже если есть бесплатные аналоги. — Продукт функционирует автоматически с минимальной поддержкой. — Быстрая и экономичная проверка идеи может быть успешной. Результаты из комьюнити билдеров: — Более 400 запусков по этой методике. — Некоторые продукты уже набрали от 50К до 100К+ пользователей. Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах. Реклама: ИП Зуев Игорь Владимирович, ИНН: 360408359441, Erid: 2VtzqwBXght

⚙️ Linux - администрирование - Bash: кладовая полезных знаний ✔️В этом курсе вас ожидает неформальное путешествие в мир систе
⚙️ Linux - администрирование - Bash: кладовая полезных знаний ✔️В этом курсе вас ожидает неформальное путешествие в мир системного администрирования на базе GNU/Linux. Основным нашим инструментом станет Bash — мы не просто освоим его возможности, но и подружимся с ним на практике. Вместе разберём ключевые задачи, стоящие перед системными и сетевыми администраторами, а также погрузимся в теоретические аспекты устройства систем, сетей и основ кибербезопасности. ➡️ Чему вы научитесь 💠Разбираться в дистрибутивах операционных систем на базе Linux 💠Устанавливать, настраивать и диагностировать систему 💠Уверенно пользоваться командной строкой 💠Писать скрипты на Bash 💠Проводить харденинг (укрепление/улучшение безопасности) системы ▶️Этот курс создан для тех, кто делает первые шаги в мире компьютерных технологий или хочет лучше понимать «внутренности» систем: 💠Начинающие исследователи техники 💠Системные администраторы и инженеры 💠Сетевые специалисты 💠Разработчики ПО 💠DevOps, SysOps, SecOps и все, кто стремится к глубокому пониманию IT-инфраструктуры 🖼️ Ссылка на курс 🔨 bash_help

⚙️ PastebinSearch ✔️Bash-скрипт, который позволяет искать термины на сервисе Pastebin с использованием различных поисковых си
⚙️ PastebinSearch ✔️Bash-скрипт, который позволяет искать термины на сервисе Pastebin с использованием различных поисковых систем. ➡️ Функции и возможности 💠Поддержка нескольких поисковых систем. Скрипт использует Google, Bing, DuckDuckGo и Yahoo. 💠Настраиваемый браузер. Можно указать предпочитаемый браузер (например, Firefox, Google Chrome). 💠Автоматическое URL-кодирование. Пробелы в поисковых терминах заменяются на «+» для правильного URL-кодирования. 💠Обработка ошибок. Выдаются чёткие сообщения об ошибках, если браузер не открывается или не найден. 💠Поддержка таймаута. Скрипт не зависает, если открытие браузера занимает слишком много времени 🐙 Перейти на Github 🔨 bash_help

😒 ZeroDay — всё, что нужно хакеру — Пентесты Wi-Fi, камер, сайтов — OSINT и социальная инженерия — Техники анонимности и обх
😒 ZeroDay — всё, что нужно хакеру — Пентесты Wi-Fi, камер, сайтов — OSINT и социальная инженерия — Техники анонимности и обход слежки — Сливы и разборы реальных утечек — Инструменты: Metasploit, Nmap, Kali Linux https://t.me/+jBip_a1-JM9jNjFi

⚙️ localdiskmount ✔️Скрипт на языке Bash, предназначенный для автоматического монтирования локального диска (например, USB-на
⚙️ localdiskmount ✔️Скрипт на языке Bash, предназначенный для автоматического монтирования локального диска (например, USB-накопителя). ➡️ Основные функции 💠Проверка существования диска и точки монтирования. Перед монтированием скрипт проверяет, не примонтирован ли диск, и создаёт точку монтирования, если это необходимо. 💠Указание параметров монтирования. В конфигурации скрипта определяются переменные: DRIVE_TO_MOUNT — путь к локальному диску, который нужно смонтировать (например, /dev/sda1). PATH_WHERE_MOUNT — абсолютный путь к точке монтирования. MOUNT_TYPE — тип файловой системы, который будет использоваться в опции -t команды mount. ▶️Скрипт можно использовать через crontab. 🐙 Перейти на Github 🔨 bash_help

IT-челлендж Слёрма — проверь свой скилл! 5 дней — 5 тем для IT-инженеров уровня Middle: ▪️ Bash / Linux / DevOps ▪️ Сети ▪️ C
IT-челлендж Слёрма — проверь свой скилл! 5 дней — 5 тем для IT-инженеров уровня Middle: ▪️ Bash / Linux / DevOps ▪️ Сети ▪️ CI/CD, Docker, Jenkins ▪️ SQL и базы данных ▪️ Информационная безопасность 🔺Короткие, но умные задания в Google Формах 🔺Удобный Telegram-бот ведёт по шагам 🔺Занимает не больше 15–20 минут в день Подарки победителям: Подписка на курсы Слёрма Курс «Администрирование Linux» Курс «Ansible: Infrastructure as Code» 🎫 30% скидка всем, кто дойдёт до конца 📅 Челлендж с 16 по 20 июня 📍 Регистрация в боте до 15 июня

⚙️ Скрытие пользовательского ввода в скриптах bash ✔️Это может быть полезно, когда вы просите пользователей ввести пароли, AP
⚙️ Скрытие пользовательского ввода в скриптах bash ✔️Это может быть полезно, когда вы просите пользователей ввести пароли, API-токены или что-то еще, что вы не хотите выводить на экран. ▶️Мы рассмотрим два решения. Одно работает с любой оболочкой Bash или Bash-подобной оболочкой, а другое соответствует POSIX, если вам нужна максимальная совместимость. Скрипт ниже включает в себя оба решения. ▶️Это пример, который вы можете запустить, но в нем есть только 1-3 строки кода в середине, которые сосредоточены на скрытии пользовательского ввода. Вы можете раскомментировать вариант 1 или 2 в зависимости от вашего случая использования.
#!/usr/bin/env bash

set -o errexit
set -o nounset

while true; do
  printf "Please input your API key and hit enter: "

  # ВАРИАНТ 1: ТРЕБУЕТСЯ ОБОЛОЧКА BASH ИЛИ BASH-ПОДОБНАЯ ОБОЛОЧКА (BASH, ZSH, ASH И Т. Д.)
  read -sr key

  # ВАРИАНТ 2: ДЛЯ МАКСИМАЛЬНОЙ СОВМЕСТИМОСТИ С ОБОЛОЧКАМИ (SH, DASH И Т. Д.)
  # stty -echo
  # read -r key
  # stty echo

  if [ -z "${key}" ]; then
    printf "\n\nPlease input your API key or hit CTRL+c to halt this script\n\n"
  else
    # TODO: Вставьте свою пользовательскую логику, которая использует этот ключ.
    printf "\n\nFor demo purposes, your API key is: %s\n" "${key}"
    break
  fi
done
▶️Основное отличие заключается в том, что флаг -s из read недоступен в sh и других минимальных оболочках. Флаг -s не позволяет передавать ввод пользователя через echo. ▶️Чтобы обойти это ограничение, мы можем использовать stty, чтобы отключить эхо, возвращающее наш чувствительный текст, записать этот ввод в переменную, а затем снова включить echo. 🖼️ Ссылка на источник 🔨 bash_help

Как запустить собственный пет-проект и зарабатывать на нём как senior-разработчик? 💲 А что, если перевернуть игру, и вместо
Как запустить собственный пет-проект и зарабатывать на нём как senior-разработчик? 💲 А что, если перевернуть игру, и вместо работы в IT на дядю запустить собственный пет-проект, который будет приносить деньги? Александр Рогачев запустил телеграм-канал Indie Hackers, где рассказывает про пет-проекты, которые приносят неплохой стабильный доход своим создателям. Без венчурных инвестиций, без бизнес-планов и команды. Разве такое возможно? Да! Несколько примеров: — Агрегатор вакансий c доходом в 4000$ / месяц — Плагин для Chrome с доходом 20000₽ / месяц Вдохновляйтесь свежими идеями, которые могут обеспечить стабильный пассивных доход, на канале Indie Hackers. Уверен, что там вы найдёте то самое, что зажжёт огонь в вашем сердце! ❤️‍🔥 ➡️ Ссылка для входа

⚙️ gah ✔️Установщик приложений из GitHub Releases, который не требует прав sudo. ▶️Это простой bash-скрипт, который загружает
⚙️ gah ✔️Установщик приложений из GitHub Releases, который не требует прав sudo. ▶️Это простой bash-скрипт, который загружает последнюю версию бинарного файла приложения с GitHub и устанавливает его в директорию ~/.local/bin. ➡️ Основные функции 💠Загрузка версии приложения с GitHub. Можно указать последнюю или конкретную версию. 💠Автоматический выбор подходящего бинарника для текущей платформы. 💠Поддержка ОС: Linux и MacOS, архитектур x64 и ARM64. 💠Обработка нескольких приложений в одном релизе GitHub. 💠Поддержка архивированных (zip, tar.gz, tar.bz2, tar.xz) и одиночных бинарных релизов. 💠Предопределённые псевдонимы для репозиториев GitHub. 🐙 Перейти на Github 🔨 bash_help