es
Feedback
BashMaster

BashMaster

Ir al canal en Telegram

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

Mostrar más
8 734
Suscriptores
+124 horas
+47 días
+13430 días
Archivo de publicaciones
Пара полезных каналов для тех, кто увлекается кибербезом: 🧑‍💻 Этичный Хакер - Авторский канал c инструкциями по пентесту, д
Пара полезных каналов для тех, кто увлекается кибербезом: 🧑‍💻 Этичный Хакер - Авторский канал c инструкциями по пентесту, деанону, СИ, защите устройств и бесплатными курсами по информационной безопасности. 🏳Mr. Robot - Реальные кейсы, OSINT, обзоры инструментов с github, гайды по анонимности.

Импорт фотографий из командной строки Linux Представьте что у нас хранятся сотни тонн всевозможных снимков в совершенно разны
Импорт фотографий из командной строки Linux Представьте что у нас хранятся сотни тонн всевозможных снимков в совершенно разных местах, на разных носителях. Где-то они были разобраны по годам и месяцам, а где-то просто “свалены” в кучу и оставлены до лучших времен. Мы запускаем программу указываем ей начальную точку, откуда начинать, и идем заниматься своими делами. Скрипт сканирует все директории какие встретит на своем пути, включая и вложенные, в поисках фотографий. После завершения работы программы получаем фотоальбом с отсортированными снимками по годам и месяцам в каждом году, т.е. в виде: год / месяц / снимки. Да еще и без дубликатов фотографий. А сами снимки будут переименованы из непонятных типа IMG_654372984.jpg или AB54645456.jpg во вполне читабельные и понятные имена вида YYYYMMDD_hhmmss.jpg. При этом не пострадает ни один оригинал фотографии. 🌐 Ссылка на скрипт 🔨 bash_help

Как отлаживать bash-script-ы по шагам Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отл
Как отлаживать bash-script-ы по шагам Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам #!/bin/bash trap 'echo "# $BASH_COMMAND";read' DEBUG echo line1 echo line2 echo line3 Процесс отладки Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>. Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки. Ингредиенты - команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды - команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C - переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap. 🔨 bash_help

Как повысить эффективность Bash-скриптов Bash-скрипты — эффективное решение для автоматизации рутинных задач, но не всегда са
Как повысить эффективность Bash-скриптов Bash-скрипты — эффективное решение для автоматизации рутинных задач, но не всегда самое простое. Объемные сценарии характеризуются низкой производительностью и сложны для чтения. В этой статье мы рассмотрим, как оптимизировать работу, упростить с помощью утилит sed и awk и не совершать очевидных ошибок в написании скриптов. Инструменты обработки текста значительно расширяют возможности оболочки bash. Но с командами sed и awk можно не только редактировать вывод и файлы, включая сами скрипты. Утилиты служат наиболее эффективным решением некоторых задач автоматизации процессов. Sed — потоковый редактор файлов, позволяющий сэкономить время на выполнении простых функций: удаление, замена, вставка текста. Awk — язык программирования, синтаксис которого напоминает языки C и Perl. Хотя awk работает по тому же «построчному» принципу, но значительно превосходит sed по функциональным возможностям. При написании bash-скриптов инструмент удобно использовать для работы со структурированными данными, так как awk воспринимает поля (область текста, отделенную пробелами или табуляцией), переменные, арифметические функции и др. 🌐 Ссылка на статью 🔨 bash_help

Где найти лучшие курсы для сисадминов? Tutortop — образовательный маркетплейс №1, где представлено свыше 5000 курсов от более
Где найти лучшие курсы для сисадминов? Tutortop — образовательный маркетплейс №1, где представлено свыше 5000 курсов от более чем 300 школ и все их можно сравнить по рейтингу, цене и отзывам, а еще купить дешевле, чем напрямую 🔥 Ребята из tutortop собрали для вас подборку из лучших курсов по системному администрированию по мнению их пользователей: — Системный администратор на Linux с углубленным изучением ИБ от Академии АйТи. Рейтинг 4.7 из 5. — Специалист DevSecOps от Академия АйТи. Рейтинг 4.7 из 5. — SQL с нуля для анализа данных от Eduson. Рейтинг 4.8 из 5. Скидка 5% по промокоду TUTORTOP до 01.08 Курс «Веб-разработчик с индивидуальным сопровождением и гарантией трудоустройства» от SkyPro. Рейтинг 4.9 из 5. Скидка 15% по промокоду TUTORTOP до 01.08 ⚡️Получите скидку до 10 000 ₽ на все эти и десятки других курсов по IT на маркетплейсе tutortop!

Совсем немного про перенаправления &lt;, &lt;&lt; и &lt;&lt;&lt; Первое перенаправление "&lt;" из именованного потока или из
Совсем немного про перенаправления <, << и <<< Первое перенаправление "<" из именованного потока или из файла. Давно известное и годами перетёртое мозолями суровых админов. Поэтому сразу перейдем к двум другим, которые встречаются реже. <<, так называемая конструкция here document. Позволяет разместить многострочный текст прямо в скрипте и перенаправить его, словно из внешнего потока. $ cat <<EOF \ hello, \ World \ EOF hello, World Cat читает данные из файла. Мы перенаправляем ему в STDIN файл — конструкция here document генерит его прямо на месте, поэтому не нужно создавать отдельный файл. Это действительно удобный способ, чтобы вызвать какую-то внешнюю утилиту и скормить ей много данных. Но можно пользоваться и <<<. Во-первых, <<< лучше читается, а во-вторых через <<< тоже можно передавать многострочные данные. Сравните два примера на читабельность:
#!/bin/bash
. load_credentials

sqlplus -s $connstring << EOF
set line 1000
select name, lastlogin from users;
exit;
EOF

#!/bin/bash
. load_credentials

SLQ_REQUEST="
set line 1000
select name, lastlogin from users;
exit;"

sqlplus -s ${connstring} <<<"${SQL_REQUEST}"

Второй вариант выглядит потенциально удобнее. Мы можем задать многострочную переменную в удобном для нас месте, и использовать ее в <<<. А при коротком запросе все выглядит вообще прекрасно: #!/bin/bash . load_credentials sqlplus -s ${connstring} <<<"select name, lastlogin from users;exit;" Если оперировать скриптами побольше, и запросами подлиннее, то использование <<< с перенаправлениеим из переменных (а сами переменные мы можем объявить заранее, в специально отведенном и оборудованом комментариями месте), то код получается гораздо читабельнее. 🔨 bash_help

Можно ли создать hardlink на папку? Конечно можно! Но не всем. POSIX файловые системы активно пользуются хардлинками и мы их
Можно ли создать hardlink на папку? Конечно можно! Но не всем. POSIX файловые системы активно пользуются хардлинками и мы их все время видим! Пример: # создаем директорию test $ mkdir test # выводим информацию о количестве ссылок и номер iNode для test $ stat -c "LinkCount:%h iNode:%i" test LinkCount:2 iNode:522366 Как? Только создали и уже два линка? # заходим в созданную директорию test $ cd test # внутри выводим статистику для текущей директории "." $ stat -c "LinkCount:%h iNode:%i" . LinkCount:2 iNode:522366 В обоих случаях мы видим тот же номер iNode. То есть test и "." внутри него — это та же самая директория. И "." это не какой-то специальный алиас баша, и даже не операционной системы. Это просто жесткая ссылка на уровне файловой системы. Проверим еще один момент: # создаем поддиректорию test2 внутри нашего test $ mkdir test2 # заходим в поддиректорию test2 $ cd test2 # смотрим статистику о родительской директории ".." $ stat -c "LinkCount:%h iNode:%i" .. LinkCount:3 iNode:522366 ".." имеет тот же iNode 522366, соответствующий директории test. И счетчик ссылок увеличился.

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

Скрипт для запуска и остановки торрент-клиента во время простоя машины #!/bin/bash IDLE=600000 STOPCMD="transmission-remote -
Скрипт для запуска и остановки торрент-клиента во время простоя машины
#!/bin/bash

IDLE=600000
STOPCMD="transmission-remote -S"
STARTCMD="transmission-remote -s"

STOPPED="yes"
while true; do
    if [ `xprintidle` -gt $IDLE ]; then
        if [ $STOPPED = "yes" ]; then
            $STARTCMD
            STOPPED="no"
        fi
    else
        if [ $STOPPED = "no" ]; then
            $STOPCMD
            STOPPED="yes"
        fi
    fi
    sleep 60
done

Скрипт уходит в бесконечный цикл, каждую минуту проверяя, сколько миллисекунд прошло с момента, когда юзер что-либо делал (для этого используется команда xprintidle). Если прошло уже 600 000 мс (десять минут), скрипт выполняет команду, указанную в переменной STARTCMD. В противном случае он выполнит команду STOPCMD, но только тогда, когда до нее была выполнена команда STARTCMD. Если кратко: ничего не делаешь за компом десять минут — запускается STARTCMD, в данном случае это команда запуска всех закачек с помощью Transmission, если нет — приостановка всех закачек. Не любишь Transmission? Нет проблем, вот команды для Deluge: STOPCMD="deluge-console pause \*" STARTCMD="deluge-console resume \*"

Какой простой способ отрезать расширение у файла? Стандартный и популярный способ — использовать утилиту basename, который от
Какой простой способ отрезать расширение у файла? Стандартный и популярный способ — использовать утилиту basename, который отрезает весь путь слева, а если указать дополнительный параметр, то дополнительно отрежет справа и суффикс. Например пишем file.txt и суффикс .txt $ basename file.txt .txt file Но можно не запускать целый отдельный процесс для такого простого действия, и обойтись внутренними преобразованиями в bash (bash variable expansions):
$ filename=file.txt; echo ${filename%.*}
file

Или наоборот, отрезать имя файла и оставить только расширение: filename=file.txt; echo ${filename##*.} txt Как это работает? % — отрезает все символы с конца до первого подходящего паттерна (поиск идет справа налево) %% — отрезает все символы с конца до последнего подходящего паттерна (справа налево) # — отрезает с начала до первого подходящего паттерна (поиск идет слева направо) ## — отрезает с начала до последнего подходящего паттерна (слева направо) Таким образом, "${filename%.*}" означает — начиная справа налево проходим все символы (*) и доходим до первой точки. Отрезаем найденное. Если бы мы использовали "${filename%%.*)", то в файлах, где точка встречается больше одного раза, у нас бы оно дошло до последней точки, отрезав лишнее. $ filename="file.hello.txt"; echo "${filename%%.*}" file

Основы работы с терминалом и BASH Видеоуроки: 1 — Основные команды терминала. Первый скрипт на BASH. 2 — Условия 3 — Циклы 4
Основы работы с терминалом и BASH Видеоуроки: 1 — Основные команды терминала. Первый скрипт на BASH. 2 — Условия 3 — Циклы 4 — for, let, trap 5 — Функции, рекурсия, модули, массивы 6 — GNU awk 7 — expect, who, mesg, autoexpect 📹 Плейлист на YouTube 🔨 bash_help

Скрипт, загружающий случайные обои, опубликованные на reddit-канале wallpaper #!/bin/bash wget -O - http://www.reddit.com/r/w
Скрипт, загружающий случайные обои, опубликованные на reddit-канале wallpaper #!/bin/bash wget -O - http://www.reddit.com/r/wallpaper |\ grep -Eo 'http://i.imgur.com[^&]+jpg' |\ shuf -n 1 |\ xargs wget -O background.jpg feh --bg-fill background.jpg С помощью wget скрипт загружает страницу www.reddit.com/r/wallpaper, передает ее grep, который ищет на ней ссылки на imgur, выбирает случайную ссылку с помощью shuf, загружает ее опять же с помощью wget и устанавливает в качестве обоев, используя команду feh (это такой миниатюрный просмотрщик изображений, его нужно предварительно установить). Скрипт можно добавить на рабочий стол, и тогда по клику у тебя будут меняться обои. 🔨 bash_help

Bash скрипт для удаления файлов старше заданного количества дней в Linux Поговорим о том, как удалять файлы старше n-ого коли
Bash скрипт для удаления файлов старше заданного количества дней в Linux Поговорим о том, как удалять файлы старше n-ого количества дней, используя для этого простой скрипт написанный на bash. Создадим файл с названием "DelFileNDay.sh" используя для этого утилиту "cat".
cat > DelFileNDay.sh << EOF
#!/bin/bash
#DEL file > 30 DAY
DAY=30
DIR="/var/log/test/"
find $DIR -type f -mtime +$DAY -exec rm -f {} \;
EOF

DAY=30 - задаем количество дней старше, которых файлы будут удаляться. DIR="/var/log/test/" - задаем полный путь к директории из которой будут удаляться файлы. Даем файлу максимальные привелегии с помощью утилиты "chmod".
chmod 777 DelFileNDay.sh

Запускаем bash-скрипт.
./DelFileNDay.sh

Если нужно чтобы файлы удалялись автоматически, например раз в день или месяц, то поместите скрипт в директорию "/etc/cron.daily/" или "/etc/cron.monthly/". 🔨 bash_help

Bash-Scripts Коллекция Bash-скриптов для автоматизации рутинных задач и оптимизации рабочего процесса. От простого переименов
Bash-Scripts Коллекция Bash-скриптов для автоматизации рутинных задач и оптимизации рабочего процесса. От простого переименования файлов до более сложных развертываний — эти Bash-скрипты помогут вам. 🐙 Перейти на Github 🔨 bash_help

Bash для тестировщика Видеоуроки: 1 — Установка и настройка 2 — ls, mkdir, rm команды 3 — mv, cp, nano, less, vi, cat команды
Bash для тестировщика Видеоуроки: 1 — Установка и настройка 2 — ls, mkdir, rm команды 3 — mv, cp, nano, less, vi, cat команды 4 — Поиск через grep и find 5 — Команды с выводом и процессами 6 — Команды ping и curl 📹 Плейлист на YouTube 🔨 bash_help

Интересуешься и увлекаешься Linux? Значит знаешь про командную строку. Но насколько гибко ты её используешь? Действующие дево
Интересуешься и увлекаешься Linux? Значит знаешь про командную строку. Но насколько гибко ты её используешь? Действующие девопсы из @bashdays расскажут тебе простым языком про все тонкости и скрытые возможности работы в консоли. Присоединяйся к нашему сообществу и забудь про скучную документацию. С нами ты выйдешь на новый уровень, упростишь ежедневный workflow и повысишь свой ценник на рынкеПомимо консоли и bash, у нас ты найдешь множество тем, которые тебе пригодятся: linux, gitlab, k8s, monitoring, docker, ansible, ci/cd, nginx, mysql, logs, python и т.п. Подпишись и качай свой hard-skills вместе с нами 🤟

Простое преобразование вывода в хэш для поиска IDOR Иногда требуется конвертировать ввод в md5 / base64 / 32 и т.д непосредст
Простое преобразование вывода в хэш для поиска IDOR Иногда требуется конвертировать ввод в md5 / base64 / 32 и т.д непосредственно в консоле. Это бывает полезно, особенно когда вы ищите IDOR и конечная точка имеет значение в виде хэша, например: https://targetdomain.com/user/3bf1114a986ba87ed28fc1b5884fc2f8 Для решения этой задачи, вы можете использовать простой bash-скрипт, совместно с ffuf. Предположим, у вас есть конечная точка, которая принимает параметр id в виде md5. Мы можем проверить его на IDOR с помощью приведенной ниже команды, которая сгенерирует список чисел от 1 до 1000: seq 1 1000 | hashit md5 | ffuf -w - -u https://targetdomain.com/user/FUZZ 🔨 bash_help

Справочная информация по любой команде в Linux Рекомендуем взглянуть на сервис, который предоставляет удобный интерфейс для п
Справочная информация по любой команде в Linux Рекомендуем взглянуть на сервис, который предоставляет удобный интерфейс для поиска справочной информации по любой команде в Linux. Достаточно просто вбить в поисковую строку соответствующую команду со всеми аргументами и вы получите подробное объяснение того, что именно делает каждый аргумент. 🌐 Перейти на сайт 🔨 bash_help

Docker Backup and VirusTotal Scanner Bash-скрипт, который создает резервные копии изображений Docker или контейнеров, а затем
Docker Backup and VirusTotal Scanner Bash-скрипт, который создает резервные копии изображений Docker или контейнеров, а затем сканирует их с помощью VirusTotal 🐙 Перейти на Github 🔨 bash_help

GooFuzz Это скрипт, написанный на Bash Scripting , который использует расширенные методы поиска Google для получения конфиден
GooFuzz Это скрипт, написанный на Bash Scripting , который использует расширенные методы поиска Google для получения конфиденциальной информации в файлах или каталогах без отправки запросов к веб-серверу. 🐙 Перейти на Github 🔨 bash_help