en
Feedback
BashMaster

BashMaster

Open in Telegram

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

Show more
8 882
Subscribers
-124 hours
-167 days
+430 days
Posts Archive
Как безопасно программировать в bash В bash есть массивы и безопасный режим. При правильном использовании bash почти соответс
Как безопасно программировать в bash В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования. В fish сложнее допустить ошибку, но там нет безопасного режима. Поэтому хорошей идеей станет прототипирование в fish, а затем трансляция с fish на bash, если вы умеете правильно это делать. Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck. Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки. Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки. 🖼️ Дочитать статью 🔨 bash_help

Selfharm Linux Контейнер Docker и форк Suicide Linux — любая неверная команда Bash заставит интерпретатор удалить случайный ф
Selfharm Linux Контейнер Docker и форк Suicide Linux — любая неверная команда Bash заставит интерпретатор удалить случайный файл с жесткого диска пользователя. Это игра, чтобы увидеть, как долго пользователь может продолжать использовать операционную систему до ее сбоя. Игру можно запустить в безопасном или опасном режиме 🐙 Перейти на Github 🔨 bash_help

Если вы веб-разработчик, нужно следить за всем, что происходит в отрасли, чтобы не отставать. Это не всегда легко, но есть сп
Если вы веб-разработчик, нужно следить за всем, что происходит в отрасли, чтобы не отставать. Это не всегда легко, но есть способ — мы поделимся прогнозами и трендами 2024 года, чтобы вы примерно понимали, в какую сторону смотреть. 17 января в 13.00 в прямом эфире поговорим о том, какие технологии будут востребованы и что необходимо знать, чтобы стать фронтенд-разработчиком в 2024 году. Мы расскажем вам: — Общие тренды разработки и тенденции во фронтенде в 2024; — Насколько нейросети улучшились за год? Теперь-то заменят? — На какие технологии и инструменты смотреть, чтобы получать лучшие предложения о работе. Подробности по ссылке, участие бесплатное. Реклама. ООО "ИНТЕРАКТИВНЫЕ ОБУЧАЮЩИЕ ТЕХНОЛОГИИ". ИНН 7807382880.

AnonYou — утилита для безопасности Бесплатная утилита с открытым исходным кодом, написанная на bash, которая позволяет быстро
AnonYou — утилита для безопасности Бесплатная утилита с открытым исходным кодом, написанная на bash, которая позволяет быстро выполнять действия, связанные с анонимизацией. ▪️Изменение MAC-адреса на случайный или произвольный ▪️Перенаправление всего трафика через TOR ▪️Очистка ОЗУ ▪️Очистка пространства подкачки ▪️Надежное стирание файлов ▪️Удаление системного журнала 🐙 Перейти на Github 🔨 bash_help

Репозиторий DevOps-Bash-tools В нем 1000+ Bash скриптов — AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL,
Репозиторий DevOps-Bash-tools В нем 1000+ Bash скриптов — AWS, GCP, Kubernetes, Docker, CI/CD, APIs, SQL, PostgreSQL, MySQL, Hive, Impala, Kafka, Hadoop, Jenkins, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt для Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, .bashrc, .vimrc, .gitconfig, .screenrc, tmux. Загрузка:
curl -L https://git.io/bash-bootstrap | sh
🐙 Перейти на Github 🔨 bash_help

Как создать постоянный псевдоним команды Чтобы создать постоянную alias команду, вы должны добавить команду alias в файл конф
Как создать постоянный псевдоним команды Чтобы создать постоянную alias команду, вы должны добавить команду alias в файл конфигурации оболочки. Некоторые известные оболочки:
Bash - ~/.bashrc
Zsh - ~/.zshrc
Fish - ~/.config/fish/config.fish

Рассмотрим создание постоянного псевдонима в оболочке bash. Откроем .bashrc файл с помощью Vim.
sudo vim ~/.bashrc

Перейдите в нижнюю часть файла и нажмите i, чтобы перейти в режим вставки. Добавьте команду псевдонима, которую вы хотите добавить навсегда.
alias cdv="cd Videos"

Каждый раз, когда вы вносите изменения в файл конфигурации оболочки, вам необходимо повторно загружать файл, чтобы изменения вступили в силу немедленно. Все окна терминала, которые вы открываете с этого момента, по умолчанию будут содержать вашу команду alias. Вы можете открыть несколько окон и проверить, введя alias -p. 🔨 bash_help

В истории bash можно включить отметку времени $ export HISTTIMEFORMAT="%F %T " И теперь он также сообщит вам, когда вы выполн
В истории bash можно включить отметку времени
$ export HISTTIMEFORMAT="%F %T "
И теперь он также сообщит вам, когда вы выполнили определенную команду в истории Чтобы сделать изменения постоянными, надо экспортировать эту переменную в свой .bashrc 🔨 bash_help

Bash Bible — полезный ресурс для тех, кто изучает Linux Этот репозиторий можно использовать как справочник для изучения разли
Bash Bible — полезный ресурс для тех, кто изучает Linux Этот репозиторий можно использовать как справочник для изучения различных команд Bash. Он содержит множество примеров. 🐙 Перейти на Github 🔨 bash_help

NucleiFuzzer — инструмент для обнаружения уязвимостей в веб-приложениях Он представляет собой простой bash-скрипт, который по
NucleiFuzzer — инструмент для обнаружения уязвимостей в веб-приложениях Он представляет собой простой bash-скрипт, который позволяет обнаруживать уязвимости в различных программах и системах, проводить тестирование на проникновение и поиск уязвимостей, а также предоставляет возможность указывать ссылки на найденные уязвимости в отчетах. 🐙 Перейти на Github 🔨 bash_help

Программистика: кодируй, учись, вдохновляйся! 💻✨ Открой для себя бесконечный мир программирования вместе с нами! Здесь тебя
Программистика: кодируй, учись, вдохновляйся! 💻✨ Открой для себя бесконечный мир программирования вместе с нами! Здесь тебя ждут: Глубокие статьи, которые помогут разобраться в сложных вопросах; Сервисы, упрощающие жизнь каждого кодера; Обучающие видеоролики от профессионалов в сфере IT; Актуальные новости IT-индустрии. Программистика – для тех, кто хочет быть в курсе последних тенденций и улучшать свои навыки каждый день. Присоединяйся!

Операторы Bash if: if, elif, else, then, fi Если вы только начинаете изучать скриптовой язык программирования Bash, вы скоро
Операторы Bash if: if, elif, else, then, fi Если вы только начинаете изучать скриптовой язык программирования Bash, вы скоро обнаружите, что вам надо использовать условные операторы. Другими словами, условные операторы определяют «если условие истинно или ложно, то сделать то или это, а если верно противоположное, сделать что-нибудь еще». Это самая основная функция любого условного оператора. Эта статья познакомит вас с пятью основными предложениями оператора if , а именно if, elif, else, then и fi. Первый просто открывает оператор if, затем вводит раздел, какие команды выполнять, если условие оператора было истинным, а else вводит, какие команды выполнять, если условие оператора было ложным. Наконец, fi закрывает оператор. У нас также есть специальный elif, о котором мы узнаем больше далее. Начнем с простого примера. В этом руководстве вы узнаете: 1. Как реализовать оператор if в командной строке Bash 2. Как такие операторы if также могут использоваться внутри скриптов Bash 3. Примеры, демонстрирующие работу if, elif, else, then и fi в Bash Пример 1: простой оператор if в командной строке
$ if [ 1 -eq 1 ]; then echo "Matched!"; fi
Matched!
В этом примере мы сравниваем один к одному. Обратите внимание, что -eq означает равно. Чтобы сделать обратное, можно использовать -ne, что означает не равно, как показано в следующем примере:
$ if [ 0 -ne 1 ]; then echo "Matched!"; fi
Matched!
В этом случае мы проверили неравенство, и, поскольку 0 не равно 1, оператор if верен, и команды после then будут выполнены. Давайте немного изменим это:
$ if [ 1 -ne 1 ]; then echo "Matched!"; else echo "Not Matched!"; fi
Not Matched!
Здесь мы ввели оператор else; какие команды выполнять, если условие в инструкции if оказалось ложным (или неверным). Когда мы пытаемся запросить, не равно ли 1 (-ne) на этот раз 1, и поскольку 1 действительно равно 1, условие, сформулированное в этом операторе if, ложное, и мы сталкиваемся с нашим оператором else с выведенным совпадающим текстом. 🖼️ Дочитать статью 🔨 bash_help

Вот так прошел 2023 год 🚀 Спасибо за реакции и репосты 👍
Вот так прошел 2023 год 🚀 Спасибо за реакции и репосты 👍

Bash скрипт для отправки электронной почты со списком учетных записей пользователей, срок действия которых истекает через «X»
Bash скрипт для отправки электронной почты со списком учетных записей пользователей, срок действия которых истекает через «X» дней Политика принудительного применения пароля будет применяется большинством компаний, но период времени будет отличаться. Обычно каждый админ использует 90-дневный цикл паролей. Пользователь будет изменять пароль только на тех серверах, которые он использует, и он не будет менять пароль на серверах, которые он использует не часто. В частности, большинство разработчиков забывают изменить пароль учетной записи службы, что может привести к нарушению обычных заданий, даже если они настроены для работы с аутентификацией на основе ключей SSH. Аутентификация на основе ключей SSH и cronjobs не будут работать, если срок действия пароля учетной записи пользователя истечет. Чтобы избежать этой ситуации, мы создали скрипт на bash, который отправляет вам список учетных записей, срок действия которых истекает в течение 10 дней. В это руководство включены два скрипта bash, которые помогут вам собрать информацию о сроках действия пользователей в вашей системе. 🖼️ Ссылка на скрипт 🔨 bash_help

Использование команды Sleep в скриптах Bash в Linux Команда sleep в Linux — одна из самых простых команд. Как видно из назван
Использование команды Sleep в скриптах Bash в Linux Команда sleep в Linux — одна из самых простых команд. Как видно из названия, его единственная функция — спать. Другими словами, он вводит задержку на указанное время. Таким образом, если вы используете команду sleep с x, то следующая команда может быть запущена только через x секунд. Команда Sleep имеет простой синтаксис:
sleep Number[Suffix]
Здесь суффикс может быть: s. Это по умолчанию. m. минуты. h. час. d. день. Команда sleep без суффикса считается в секундах Предположим, вы хотите приостановить ваш bash-скрипт на 5 секунд, вы можете использовать режим sleep следующим образом:
sleep 5
В примере скрипта bash это может выглядеть так:
!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"
Если вы запустите его с помощью команды time, вы увидите, что скрипт bash на самом деле работал (немного) более 5 секунд.
time ./sleep.sh 
Sleeping for 5 seconds…
Completed

real    0m5.008s
user    0m0.000s
sys    0m0.007s
Команда Sleep с суффиксом m, h или d Вы можете указать время sleep в минутах следующим образом:
sleep 1m
Это приостановит скрипт/оболочку на одну минуту. Если вы хотите отложить сценарий на несколько часов, вы можете сделать это с помощью опции h:
sleep 2h
Даже если вы хотите приостановить скрипт на несколько дней, вы можете сделать это с помощью суффикса d:
sleep 5d
Это может помочь, если вы хотите работать в разные дни или дни недели. Команда sleep с комбинацией секунд, минут, часов и дня Вы не обязаны использовать только один суффикс за раз. Вы можете использовать более одного суффикса, и продолжительность sleep является суммой всех суффиксов. Например, если вы используете следующую команду:
sleep 1h 10m 5s
Это заставит скрипт ждать 1 час 10 минут и 5 секунд. Обратите внимание, что суффикс s здесь по-прежнему необязателен. 🔨 bash_help

Перезагрузка Asterisk по расписанию В версиях Asterisk начиная с версии 1.4 периодически наблюдались проблемы с утечкой памят
Перезагрузка Asterisk по расписанию В версиях Asterisk начиная с версии 1.4 периодически наблюдались проблемы с утечкой памяти, которые лечились с помощью перезагрузки сервера. Так как никто не застрахован от вероятных неизвестных багов, лучше для перестраховки перезагружать сервер IP - АТС раз в неделю (или чаще) с помощью скрипта. По факту, в скрипте достаточно одной команды перезагрузки. Сделаем немного информативной нагрузки – добавим запись в лог – файл: мы будем записывать дату и время ребута с лог – файл. Итак, создаем файл reboot.sh:
[root@asterisk ~]# touch reboot.sh
Далее открываем этот файл для редактирования через vim редактор:
[root@asterisk ~]# vim reboot.sh
Открыв файл, нажмите «О» для редактирования. Вставьте код, указанный ниже:
#!/bin/sh
LOGFILE=/home/admin/log_mail.txt
DATE="`date +%d.%m.%Y" "%H:%M:%S`"
echo "REBOOT :: $DATE :: Reboot is in progress" >> "$LOGFILE"
shutdown -r now
После нажимаем комбинацию «:x!» для сохранения конфигурации. В данном скрипте: LOGFILE - переменная, которая указывает на лог – файл; DATE - записываем дату и время в указанную переменную; echo "…" - записываем в лог – файл отметку о перезагрузке; shutdown -r now - команда перезагрузки сервера Осталось только сделать работу скрипта по расписанию. Для этого мы воспользуемся планировщиком cron:
*     *     *   *    *        команда для выполнения
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- день недели (0 - 6) (Воскресенье=0)
|     |     |   +------- месяц (1 - 12)
|     |     +--------- день месяца (1 - 31)
|     +----------- час (0 - 23)
+------------- минута (0 - 59)
Зашедулим скрипт на выполнение каждую полночь в воскресение. Для этого, открываем для редактирования crontab файл:
[root@asterisk ~]# crontab -e
В открывшийся файл добавляем:
0 0 * * 0 /bin/bash /home/reboot.sh >/dev/null
Где /home/reboot.sh - полный путь к скрипту перезагрузки сервера. Нажимаем F2 и далее Yes. Задача на выполнение сохранена. 🖼️ Дочитать статью 🔨 bash_help

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию С самого начала моей работы системным администратором li
Простой и удобный шаблон для bash-скриптов выполняемых по расписанию С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@. Потом я нашёл Cronic - обёртку на bash, которая скрывает вывод запускаемой задачи, если она завершена успешно. Стало полегче, но обнаружилось, что от некоторых заданий всё же лучше получать сообщение "Task OK", чтобы не столкнуться в самый неподходящий момент с тем, что выполнение задания тихо сломано месяц назад. Постепенно копились и другие хотелки: 1. иногда требуется, чтобы задание было автоматически принудительно остановлено, если выполняется больше определённого времени; 2. иногда нужны гарантии, что в каждый момент времени запущена только одна копия задания; 3. бывает так, что запускать задачу нужно с рандомной задержкой по времени (такая дисперсия иногда нужна, чтобы не положить какой-нибудь сервис одновременными запросами с большого количества машин). В какой-то момент я отложил в сторону cronic и написал свой шаблон для запуска периодических заданий, в котором реализовано всё, что перечислено выше. 🖼️ Ссылка на шаблон 🔨 bash_help

Cracker-Tool Это инструмент на основе Python и Bash созданный для взлома и пентеста. Доступен следующий функционал: 1. IP-инс
Cracker-Tool Это инструмент на основе Python и Bash созданный для взлома и пентеста. Доступен следующий функционал:
1. IP-инструмент 2. Сканер субдоменов 3. Инструмент для Ddos-атак 4. Поиск админки 5. Has Cracker 6. Скачивание видео 7. SQL Injection 8. Конвертер текста в голос 9. Обфускатор Python 10. Набор для работы с Telegram 11. Termux Framework 12. Kali Nethunter Installer 13. Termux Tool 14. Смена URL 15. Сокращение ссылок 16. WEB-инструмент 17. Временная почта 18. Генератор Gmail 19. Генератор идентичности 20. Multi Ddos 21. Anon Share 22. Инструмент электронной почты 24. Инструмент CC
🐙 Перейти на Github 🔨 bash_help

Запуск Bash в деталях Смысл этой заметки — как можно проще изложить процедуру запуска bash, чтобы вы могли справиться с пробл
Запуск Bash в деталях Смысл этой заметки — как можно проще изложить процедуру запуска bash, чтобы вы могли справиться с проблемами. Login Shell? Сперва нужно выбрать, находитесь вы в командной оболочке входа (login shell) или нет. Оболочка входа — это первая оболочка, в которую вы попадаете при входе в систему для интерактивного сеанса. Оболочка входа не требует ввода имени пользователя и пароля. Вы можете форсировать запуск оболочки входа, добавив флаг --login при вызове bash, например:
bash --login
Оболочка входа настраивает базовую среду при первом запуске оболочки bash. Интерактивный? Затем вы определяете, является оболочка интерактивной или нет. Это можно проверить по наличию переменной PS1 (она устанавливает функцию ввода команд):
if [ "${PS1-}" ]; then
  echo interactive
else
  echo non-interactive
fi
Или посмотреть, установлен ли параметр -i, с помощью специальной переменной дефиса - в bash, например:
$ echo $-
Если в выдаче есть символ i, то оболочка является интерактивной. В оболочке входа? Если вы находитесь в оболочке входа, то bash ищет файл /etc/profile и запускает, если он существует. Затем ищет любой из этих трёх файлов в следующем порядке:
~/.bash_profile
~/.bash_login
~/.profile
Когда находит один, то запускает его и пропускает другие. В интерактивной оболочке? Если вы находитесь в интерактивной оболочке без входа в систему (non-login shell), предполагается, что вы уже побывали в оболочке входа, окружение настроено и будет унаследовано. В этом случае выполняются по порядку следующие два файла, если они существуют:
/etc/bash.bashrc
~/.bashrc
Ни один вариант? Если вы не находитесь ни в оболочке входа, ни в интерактивной оболочке, то ваше окружение действительно будет пустым. Это вызывает большую путаницу (см. ниже о заданиях cron). В этом случае bash смотрит на переменную BASH_ENV вашей среды и выполняет соответствующий файл, который там указан. 🖼️ Дочитать статью 🔨 bash_help

Дедлайны горят, а твои глаза уже нет. Что делать айтишнику, если от за#бался. 🔵 Все чаще откладываешь задачи на потом и нахо
Дедлайны горят, а твои глаза уже нет. Что делать айтишнику, если от за#бался. 🔵 Все чаще откладываешь задачи на потом и находишь тысячу поводов не подходить к компу. 🔵 Пинаешь себя “Хватит лениться”, но от этого становится только хуже. 🔵 В семье разлад и отношения не складываются. 🔵 От мыслей о работе появляется дикая тревожность и напряжение. 🔵 Ничего не хочется, кроме как сутками залипать в телефоне. Узнал себя хотя бы в 2 пунктах? Поздравляю - ты выгорел. И пока ты не потерял работу, друзей и семью, надо из этого состояния выкарабкиваться. Как? Подписаться на канал ПСИХОЛОГ ВЗРОСЛОГО ЧЕЛОВЕКА. ⚡️ Автор канала, Вадим, точно знает, как IT-специалисту выйти из застоя и вернуть себе силы и энергию. А чтобы уже сейчас сделать первый шаг к радостям жизни и работе без надрыва, переходи в закреп канала. Там тебя ждет бесплатный мини-курс “Как избежать выгорания, если постоянно вкалываешь?”. Ты найдешь причины упадка сил, апатии и выгорания. И поймешь, как из этого выйти. Подписывайся 👉🏻 https://t.me/+Tf_rd40FOagzMzMy

5 простых шагов по отладке сценария оболочки Bash При программировании существует три основных типа ошибок. 1. Синтаксическая
5 простых шагов по отладке сценария оболочки Bash При программировании существует три основных типа ошибок. 1. Синтаксическая ошибка Обычно синтаксические ошибки легче всего устранить в сценарии Bash. Их часто можно обнаружить без выполнения сценария оболочки. К наиболее распространенным синтаксическим ошибкам относятся: **Неправильное использование квадратных скобок в операторе If **Неправильный синтаксис при использовании цикла Bash или массива Bash **Неправильное использование составной команды при определении функции Bash 2. Ошибка во время выполнения Сценарий оболочки выполняется без синтаксических ошибок, но не может надежно выполнять определенные задачи. Наиболее распространенные ошибки во время выполнения сценария оболочки включают: **Деление на ноль или использование переменной string/float в арифметическом выражении Bash **Неверный нижний индекс при динамическом заполнении ассоциативного массива Bash **Неправильный синтаксический анализ вывода файла или команды, например, при обработке CSV-файла в Bash или подсчете файлов в каталоге **Запуск с неправильными разрешениями sudo или настройками tty 3. Логическая ошибка Логические ошибки часто сложнее всего устранить, поскольку они связаны с недостатками дизайна и логическими ошибками. Отладка таких ошибок может быть затруднена, если не иметь полного понимания сквозного выполнения скрипта и ожидаемого поведения. К наиболее распространенным логическим ошибкам в сценарии оболочки относятся: **Неправильное использование оператора test в условном операторе, например, использовать -z вместо -n в условии if **Неправильное использование арифметического оператора, такого как умножение, вместо ввода числа **Неправильное условие для выхода из цикла Bash, например, при использовании while цикла вместо цикла until **Неправильное манипулирование датами Linux с разными часовыми поясами **Отображение неправильного сообщения в командной строке или в журналах 🖼️ Дочитать статью 🔨 bash_help