en
Feedback
BashMaster

BashMaster

Open in Telegram

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

Show more
8 734
Subscribers
+124 hours
+47 days
+13430 days
Posts Archive
Как запустить небольшой код Python в Bash 1. Как выполнить код Python в Bash В командной строке Bash для выполнения кода испо
Как запустить небольшой код Python в Bash 1. Как выполнить код Python в Bash В командной строке Bash для выполнения кода используйте конструкцию вида: python -c "КОД" Ещё один вариант, который может пригодиться в более экзотических обстоятельствах: bash -c 'python -c "print (\"КОД\")"' 2. Как в скрипте Bash запустить программу на Python Для выполнения программы Python в скрипте Bash используйте команду вида:
python СКРИПТ.py АРГУМЕНТ1 АРГУМЕНТ2 АРГУМЕНТ3

Пример запуска скрипта extractor.py с передачей ему двух аргументов: значение переменной $line и 8080: python extractor.py $line 8080 3. Как в скрипте Bash запустить программу на Python и присвоить её вывод переменной Если вам нужно запустить скрипт Python, а затем вывод программы присвоить переменной Bash, то используйте конструкцию вида:
ПЕРЕМЕННАЯ=`python СКРИПТ.py АРГУМЕНТ1 АРГУМЕНТ2 АРГУМЕНТ3`

Пример: response=`python extractor.py $line 8080 2>/dev/null | sed -E "s/\/\/.+:/\/\/$line:/"` 4. Как в скрипт Bash встроить код Python Если код Python невозможно использовать в одной строке и вы не хотите использовать для вызова внешний скрипт, тогда вам подойдёт следующая конструкция:
#!/bin/bash
 
script=`cat <<_EOF_
КОД
_EOF_`
 
echo "$script" | python

Там где КОД вставьте код Python. Ещё один вариант этой конструкции:
python << END
... КОД ...
END

И ещё один вариант, в котором вывод присваивается в качестве значения переменной ABC: ABC=$(python << END ... END) 🔨 bash_help

Repost from КИБЕР МЕДИА
🗣 Михаил Стюгин, Positive Technologies: Автопилот в кибербезе нужен всем – крупным компаниям и среднему и малому бизнесу Кон
🗣 Михаил Стюгин, Positive Technologies: Автопилот в кибербезе нужен всем – крупным компаниям и среднему и малому бизнесу Концепция результативной кибербезопасности – это яркий тренд, у которого появляется все больше последователей в ИБ-сообществе. Одни уверяют, что можно выстроить защиту в организации так, что недопустимые события действительно могут не реализоваться никогда. Но есть и те, кто напоминает о случайностях и указывает на теорию вероятностей. Однако обе стороны согласны в одном – для того, чтобы недопустимые события не могли быть реализованы злоумышленником, нужны технологии. Они лежат в основе продуктов для информационной безопасности. ➡️ Об отдельном классе – метапродуктах – порталу Cyber Media рассказал Михаил Стюгин, руководитель направления автоматизации информационной безопасности Positive Technologies.

Полезные сочетания клавиш в оболочке bash для навигации по командной строке Давайте разберем полезные хоткеи, которые смогут
Полезные сочетания клавиш в оболочке bash для навигации по командной строке Давайте разберем полезные хоткеи, которые смогут оптимизировать вашу работу в терминале Linux/Unix. ^a, ^e – Переместить курсор. ^-a переместит курсор в начало строки. ^-e переместит курсор в конец строки. ^d – конец файла или EOF. Сообщает консольному приложению, что вы закончили вводить текст. ^i – Очистить буфер терминала. Это означает, что в терминале не будет истории для прокрутки назад. Однако это не работает в терминале MATE. ^z, – приостановка и возобновление вывода. Это означает, что программа должна прекратить вывод на ваше терминальное устройство. Если вы наберете fg, программа вернется на передний план. ^l – Очистить экран. Команда очистит экран и оставит чистый терминал для других команд. ^c – Остановить команду. Это сочетание клавиш остановит выполнение текущей команды в терминале. Перемещение по строке терминала Alt-B. Отправляет курсор на одно слово назад. Alt-F. Посылает курсор вперед на одно слово. По символам ^-b. Перемещает курсор на один символ назад. ^-f. Перемещает курсор на один символ вперед. ^-_. Отменяет последнее нажатие клавиши. Удалить/Вставить ^-w. Вырезать слово перед курсором и переместить его в буфер обмена. ^+k: Вырезать часть строки после курсора, добавив ее в буфер обмена. ^+u: Вырезать часть строки перед курсором, добавив ее в буфер обмена. ^+y: Вставить последнее, что вы вырезали из буфера обмена. Буква “y” здесь означает “вырезать”. 🔨 bash_help

Скрипт Bash для мониторинга использования процессора и памяти на Linux Скрипт может собирать информацию об использовании из ф
Скрипт Bash для мониторинга использования процессора и памяти на Linux Скрипт может собирать информацию об использовании из файла /proc/stat, а затем сохранять ее в файле лога. Его также можно настроить на отправку предупреждения по электронной почте, когда использование процессора или памяти превышает определенный порог. Кроме того, скрипт можно использовать для запроса у системы такой информации, как модель процессора, использование и средние значения нагрузки.
#!/bin/bash
# This script monitors CPU and memory usage

while :
do 
  # Get the current usage of CPU and memory
  cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}') # Print the usage echo "CPU Usage: $cpuUsage%" echo "Memory Usage: $memUsage MB" # Sleep for 1 second sleep 1 done Ниже перечислены другие инструменты/команды, которые можно использовать для мониторинга использования ЦП и памяти в системе Linux: free: Эта команда показывает общий объем свободной и используемой физической памяти и памяти подкачки в системе, а также буферов и кэшей, используемых ядром. top: Эта команда обеспечивает динамическое представление работающей системы в реальном времени. Она может отображать сводную информацию о системе, а также список задач, которыми в данный момент управляет ядро Linux. htop: Это интерактивный просмотрщик процессов для Linux. Это приложение в текстовом режиме, которое отображает информацию о процессах в удобном для пользователя виде. vmstat: Эта команда выдает информацию о процессах, памяти, подкачке, блочном вводе-выводе, ловушках и активности процессора. ps: Эта команда используется для отображения информации о текущих запущенных процессах. iostat: Эта команда сообщает статистику центрального процессора (CPU) и статистику ввода/вывода для устройств и разделов. ps: Эта команда используется для отображения информации о текущих запущенных процессах. iostat: Эта команда сообщает статистику центрального процессора (CPU) и статистику ввода/вывода для устройств и разделов. 🔨 bash_help

В ИБ-сообществе набирают популярность 2 канала по кибербезу: 🐥 No system is safe - один из древнейших ресурсов по информацио
В ИБ-сообществе набирают популярность 2 канала по кибербезу: 🐥 No system is safe - один из древнейших ресурсов по информационной безопасности в рунете. Книги, курсы, полезные тулсы, уроки по Linux, новости клирнета и даркнета. 🚓 Лаборатория хакера - канал кибер-детектива с 10-летним стажем. Обзоры github-инструментов для OSINT, пентеста, анонимизации и защиты.

Как сделать снимок с помощью веб-камеры Скрипт использует видеоплеер mpv, чтобы записать первые три кадра, снятые камерой, в
Как сделать снимок с помощью веб-камеры Скрипт использует видеоплеер mpv, чтобы записать первые три кадра, снятые камерой, в JPEG-файлы с именами 0000000.jpg, 00000002.jpg, 00000003.jpg, затем переименовывает третий снимок в файл photo.jpg, а остальные удаляет. Три снимка необходимы для того, чтобы камера успела провести инициализацию, обычно первые два получаются просто черными.
!#/bin/bash
mpv tv:// -frames 3 -vo jpeg
mv 00000003.jpg photo.jpg
rm -f 0000*.jpg

Иногда изображение выходит перевернутым; чтобы это исправить, mpv следует запускать с флагом -vf flip: $ mpv tv:// -frames 3 -vf flip -vo jpeg 🔨 bash_help

Скрипт для включения/выключения тачпада ноутбука Скрипт включает тачпад, если отключен, и наоборот. В своей работе использует
Скрипт для включения/выключения тачпада ноутбука Скрипт включает тачпад, если отключен, и наоборот. В своей работе использует утилиту synclient, позволяющую управлять тачпадами производства Synaptics (90% тачпадов делают они). При запуске без аргументов утилита выводит различную информацию о тачпаде, в том числе строку TouchpadOff = 1, если он активирован, и TouchpadOff = 2, если отключен. Скрипт находит это значение и в зависимости от состояния тачпада включает или отключает его.
#!/bin/sh
state=`synclient | grep TouchpadOff | cut -d '=' -f 2`
if [ $state = "1" ]; then
    synclient TouchpadOff=0
else
    synclient TouchpadOff=1
fi

🔨 bash_help

Скачиваем Youtube плейлист в формате mp3 одним bash-скриптом Bash-скрипт на входе получает ID плейлиста, на выходе – mp3 файл
Скачиваем Youtube плейлист в формате mp3 одним bash-скриптом Bash-скрипт на входе получает ID плейлиста, на выходе – mp3 файлы, которые можно слушать в любимом плеере. Скачать mp3 с Youtube нельзя, поэтому процесс делим на 3 шага: 1. скачиваем flv 2. извлекаем звуковую дорожку 3. удаляем временный flv На всякий случай напомню, что ID плейлиста это get-параметр «list». Зависимости: sudo apt-get install youtube-dl ffmpeg libavcodec-extra-53 - youtube-dl для скачивания видеофайла - ffmpeg libavcodec-extra-53 для конвертации в mp3 🖼️ Ссылка на скрипт 🔨 bash_help

Как присвоить переменной вывод команды в Bash Если вам нужно, чтобы полученное от команды значение присваивалось переменной,
Как присвоить переменной вывод команды в Bash Если вам нужно, чтобы полученное от команды значение присваивалось переменной, то это можно сделать несколькими способами. 1. Используя обратные кавычки (апострофы). Пример кода:
#!/bin/bash
 
VAR1="$1"
VAR2="$2"
 
MOREF=`sudo run command against $VAR1 | grep name | cut -c7-`
 
echo $MOREF

Для этого варианта нужно помнить следующее: не перепутайте обратные кавычки с одиночными кавычками. А ещё использование этого синтаксиса считается теперь устаревшим (но везде работающим). 2. В дополнение к обратным кавычкам можно использовать $(). Преимуществом данного способа является возможность вложенности. Пример:
OUTPUT="$(ls -1)"
echo "${OUTPUT}"

Использование кавычек (") имеет смысл при возможности появления значений в несколько строк. Ещё одним важным отличием $() от двойных кавычек является то, что при обращении к переменной, если ей присвоено значение $(), она пересчитывается каждый раз. А если значение переменной определено командой внутри обратных кавычек, то это значение считается только один раз (при присвоении), а затем только используется. 3. Можно создать пользовательскую функцию, содержащую необходимые команды, и использовать название функции вместо имени переменной. Пример:
func (){
   ls -l
}

Вызывать нужно по имени функции (в данном случае func). 4. И ещё более экзотический вариант – использование eval:
var="ls -l"
eval $var

🔨 bash_help

Как управлять WireGuard VPN через bash скрипт в Linux Перед созданием скрипта убедитесь, что У вас установлен в системе сам к
Как управлять WireGuard VPN через bash скрипт в Linux Перед созданием скрипта убедитесь, что У вас установлен в системе сам клиент WireGuard. Чтобы это проверить, введите команду в терминале:
sudo apt install wireguard resolvconf

Если он уже установлен, то система об этом сообщит. Но если нет, то установите и все его зависимости. После чего просто скопируйте свой конфиг wg0.conf в папку:
sudo nano /etc/wireguard/wg0.conf

Bash скрипт управления WireGuard
#!/bin/bash 
function wgstart() {
    echo ""
echo "Запустить VPN: "
echo ВАШ_ПАРОЛЬ_ОТ_ROOT | sudo -S su
sudo wg-quick up wg0
echo ""
}

function wgstop() {
    echo ""
echo "Остановить VPN: "
    echo ""
    echo ВАШ_ПАРОЛЬ_ОТ_ROOT | sudo -S su
sudo wg-quick down wg0
    echo ""
}

function wgedit() {
    echo ""
echo "Редактировать VPN конфиг: "
    echo ""
    echo ВАШ_ПАРОЛЬ_ОТ_ROOT | sudo -S su
sudo nano /etc/wireguard/wg0.conf
    echo ""
}


##
# Color  Variables
##
green='\e[32m'
blue='\e[34m'
clear='\e[0m'

##
# Color Functions
##

ColorGreen(){
echo -ne $green$1$clear
}
ColorBlue(){
echo -ne $blue$1$clear
}

menu(){
echo -ne "
Управление VPN WireGuard
$(ColorGreen '1)') Запуск VPN WG
$(ColorGreen '2)') Остановка VPN WG
$(ColorGreen '3)') Редактировать VPN WG
$(ColorBlue 'Выберите, что нужно сделать:') "
        read a
        case $a in
        1) wgstart ; menu ;;
        2) wgstop ; menu ;;
            3) wgedit ; menu ;;
            *) echo -e $red"Неправильный вариант."$clear; WrongCommand;;
        esac
}

# Call the menu function
menu

Замените фразу «ВАШ_ПАРОЛЬ_ОТ_ROOT» на пароль от Вашей учетной записи которая имеет права администратора root. Эта команда внутри скрипта сама вводит Ваш пароль перед выполнением запуска или остановки службы WG. Создайте файл WireGuard.sh и дайте ему права на выполнение.
chmod +x ./WireGuard.sh

Наконец пришло время выполнить скрипт:
bash wireguard-manager.sh

🔨 bash_help

2 канала для изучения IT-технологий в области Администрирования и ИБ: 💻 @admguides — авторские гайды по настройке серверов и программ на ОС Windows/Linux. 📖 @admbooks — электронные книги по компьютерным технологиям и информационной безопасности.

Как вывести список директорий используя ls в Bash Для обработки в скриптах может понадобиться в определённой директории получ
Как вывести список директорий используя ls в Bash Для обработки в скриптах может понадобиться в определённой директории получить только список только папок без файлов. Далее показано, как это сделать разными способами. 1. С помощью ls увидеть все папки кроме скрытых */ - это шаблон, который соответствует всем подкаталогам в текущем каталоге (* будет соответствовать всем файлам и подкаталогам; / ограничивает его каталогами). Точно так же, чтобы вывести список всех подкаталогов в /home/mial/bin/aur, используйте:
ls -d /home/mial/bin/aur/*/

Чтобы вывести только каталоги в текущей папке:
ls -d */

Чтобы вывести данные в столбик:
ls -1 -d */

2. С помощью ls увидеть все папки вместе со скрытыми Обратите внимание, что */ не найдёт любые скрытые папки. Чтобы включить и их, укажите их явно:
ls -d .*/ */

3. С помощью ls и cut Следующий способ показывает каталоги только в текущей папке, но делает это в виде столбика:
ls -d */ | cut -f1 -d'/'

Чтобы показать вместе со скрытыми каталогами:
ls -d .*/ */ | cut -f1 -d'/'

Чтобы показать только директории в папке /home/mial/bin/aur:
ls -d /home/mial/bin/aur/*/ | cut -f1 -d'/'

4. Используя ls и grep В этом варианте применяется фильтрация вывода с помощью grep. Этот способ имеет ограничение — папки должны выводиться в виде подробного списка:
ls -l | grep "^d"

Чтобы показать вместе со скрытыми папками:
ls -al | grep "^d"

Для вывода только имён директорий (возможны проблемы с директориями, имеющими пробелы в названиях):
ls -l | grep "^d" | cut -f 10 -d ' '

🔨 bash_help

Bash скрипт для сканирования диапазона портов Наш скрипт будет принимать два аргумента – IP-адрес для сканирования и диапазон
Bash скрипт для сканирования диапазона портов Наш скрипт будет принимать два аргумента – IP-адрес для сканирования и диапазон портов для сканирования.
#!/bin/bash

ip=$1
startport=$2
endport=$3

function portscan {
    for ((counter=$startport; counter<=$endport; counter++))
    do
        (echo > /dev/tcp/$ip/$counter) > /dev/null 2>&1 && echo "$counter open"
    done
}

portscan

Для использования необходимо предоставить ему права на выполнение и запустить его с IP-адресом и диапазоном портов для сканирования. - Сохраните скрипт в файл, например portscan.sh - Сделайте скрипт исполняемым: chmod +x portscan.sh - Запустите скрипт с IP-адресом и диапазоном портов: ./portscan.sh 192.168.1.1 20 80 - Будет произведено сканирование портов с 20 по 80 на IP-адресе 192.168.1.1. 🔨 bash_help

Информационная безопасность и OSINT. 2 полезных и крупных ресурса в TG: 📚 @it_secur — Редкая литература для специалистов в области информационной безопасности любого уровня и направления. Читайте, развивайтесь, практикуйте. 👨🏻‍💻 @infosecurity — Самый крупный ресурс в Telegram, посвященный этичному хакингу, OSINT и Cоциальной Инженерии.

Уроки по Bash скриптам Видеоуроки: 1 — Привет Мир 2 — Переменные 3 — Команда read и Параметры 4 — Условный оператор if 5 — Ус
Уроки по Bash скриптам Видеоуроки: 1 — Привет Мир 2 — Переменные 3 — Команда read и Параметры 4 — Условный оператор if 5 — Условный оператор case 6 — Вложенные условия 7 — Массивы 8 — Циклы 9 — Функции 10 — Рекурсия 11 — Перенаправление ввода/вывода 📹 Плейлист на YouTube 🔨 bash_help

Хочешь быть на шаг впереди киберпреступников? Присоединяйся к каналу Hack Proof и узнавай о реальных кейсах в сфере Информаци
Хочешь быть на шаг впереди киберпреступников? Присоединяйся к каналу Hack Proof и узнавай о реальных кейсах в сфере Информационной безопасности. Мы погружаемся в мир OSINT, социальной инженерии и обозреваем инструменты с github, чтобы помочь тебе защититься и сохранить анонимность в сети!

Как в Bash реализовать «Нажмите любую кнопку для продолжения» Иногда нужно приостановить вывод в скрипте, чтобы обратить вним
Как в Bash реализовать «Нажмите любую кнопку для продолжения» Иногда нужно приостановить вывод в скрипте, чтобы обратить внимание пользователя на информацию и убедиться, что пользователь увидел её (или имел возможность её увидеть). В Bash это можно сделать с помощью утилиты read. Эта утилита читает строку из стандартного ввода. Пример использования: read -p "Нажмите ENTER для продолжения" Эта команда позволит пользователю продвинуться далее (а скрипт продолжит выполнение) после того, как пользователь нажмёт кнопку ENTER. Если вам нужно, чтобы для продолжения можно было нажать любую кнопку, то используйте следующую конструкцию: read -n 1 -s -r -p "Нажмите любую кнопку для продолжения" В этой команде следующее значение опций: -n определяет количество символов, после которого будет остановлено чтение. По умолчанию чтение останавливается при вводе разделителя строк (например, кнопкой ENTER). В нашем случае команда read перестаёт считывать вводимые данные после первого символа -s скрывает пользовательский ввод -r приводит к тому, что строка будет интерпретирована как «сырая» (без учёта экранирования обратными слэшами). То есть обратным слэшам не будет позволено экранировать символы -p как и в первом примере, содержит сообщение, показываемое пользователю. 🔨 bash_help

У Skillfactory бесплатный курс с профориентацией в IT. Забегайте: free.skillfactory.ru/itrentgen Реклама. ООО "СКИЛФЭКТОРИ".
У Skillfactory бесплатный курс с профориентацией в IT.  Забегайте: free.skillfactory.ru/itrentgen Реклама. ООО "СКИЛФЭКТОРИ". ИНН 9702009530. erid: 2RanynDRnaL

Как преобразовать строку в нижний регистр В этой заметке будет показано, как преобразовать строку в нижний регистр (строчные
Как преобразовать строку в нижний регистр В этой заметке будет показано, как преобразовать строку в нижний регистр (строчные буквы). Чтобы конвертировать строку в маленькие буквы независимо от её текущего регистра, используйте одну следующую команду:
a="Hi all"
echo "${a,,}"
hi all

Начиная с Bash 5.1 имеется параметр преобразования L, который предназначен для перевода строки в нижний регистр:
${var@L}

Пример:
v="heLLo"
echo "${v@L}"
hello

🔨 bash_help

Как отключить историю оболочки bash в Linux Оболочка bash сохраняет введенные из терминала команды в файл истории. Вы можете
Как отключить историю оболочки bash в Linux Оболочка bash сохраняет введенные из терминала команды в файл истории. Вы можете вызвать список команд, введенных ранее. Команда history отображает команды bash, которые вы выполнили ранее. Эти команды составляют историю команд. По умолчанию в истории отображается нумерованный список из 500 последних команд, начиная с самых ранних и заканчивая самыми последними. Значение переменной HISTSIZE используется в качестве числа команд для сохранения в списке истории. Как отобразить текущую историю? Нужно просто ввести команду history: history history | less history | more history | grep 'find' Как узнать количество сохраненных в истории команд? Используйте команду echo или printf : echo "$HISTSIZE" или printf "%d\n" $HISTSIZE Где хранится история bash команд? Инициализируется история из файла с именем переменной HISTFILE. По умолчанию используется файл ~/.bash_history. Для просмотра текущих настроек можно использовать: echo "$HISTFILE" или printf "%s\n" "$HISTFILE" Как отключить историю оболочки BASH на Linux или Unix? Переменную HISTFILE можно удалить, набрав следующую команду сброса:
unset HISTFILE

Добавьте указанную выше строку в конец нового файла /etc/profile.d/disable.history.sh или ~/.bash_profile: echo 'unset HISTFILE' >> /etc/profile.d/disable.history.sh или
echo 'unset HISTFILE' >> ~/.bash_profile

Как навсегда отключить историю bash с помощью команды set? Другой вариант — передать параметр +o history встроенной команде set:
set +o history

Аналогично добавьте set +o history в конец нового файла /etc/profile.d/disable.history.sh или ~/.bash_profile. Как очистить историю bash? Введите следующую команду в текущем сеансе:
history -c

Чтобы удалить одну команду под номером 42 из истории в Linux / Unix: history -d 42 🔨 bash_help