BashMaster
8.23K subscribers
682 photos
14 videos
1 file
705 links
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов.

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
Forwarded from Cyber Media
UserGate открывает новую страницу в истории российского NGFW-строения!

Предлагаем вашему вниманию видео с честным нагрузочным тестированием нового решения – UserGate DCFW.

UserGate Data Center Firewall (DCFW) – высокопроизводительный межсетевой экран следующего поколения с широкими функциональными возможностями и высокой отказоустойчивостью для защиты дата-центров и крупных корпоративных сетей.

Это решение для тех, кому требуется защита сетей с трафиком, исчисляемым в десятках гигабит в секунду: корпоративные сервисы крупного бизнеса, государственные информационные системы, ЦОДы, интернет-провайдеры.

➡️ Смотреть запись

*Реклама, ООО «Юзергейт»
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Bash. Как обойтись без goto

✔️Если вы программировали в командой оболочке cmd в Windows, то вы, возможно, использовали оператор goto для того, чтобы выполнять различные блоки операторов. В bash нет оператора goto, и он, в общем, и не нужен. Однако, при переходе от cmd к bash может возникнуть вопрос, как же обойтись без goto в bash. Процесс выполнения скрипта в этих оболочках различается, тем не менее, можно написать в любой из них скрипт, который будет работать точно так же, как и скрипт в другой оболочке.

➡️ Пример 1: Несколько блоков, из которых должен выполниться только один.
Скрипт на cmd:
@echo off
if %1 == 1 goto LABEL1
if %1 == 2 goto LABEL2
if %1 == 3 goto LABEL3
goto END

:LABEL1
echo Parameter: 1
goto END

:LABEL2
echo Parameter: 2
goto END

:LABEL3
echo Parameter: 3
:END

▶️Пример очень простой, между меткой и оператором goto может быть значительно большее количество команд, конечно же. И для операторов после LABEL3 переход нам не нужен, потому что и так уже достигнут конец скрипта.

▶️Скрипт на bash:
#!/bin/bash

label1(){
echo "Parameter: 1"
}

label2(){
echo "Parameter: 2"
}

label3(){
echo "Parameter: 3"
}

if [ "$1" == "1" ]; then label1; fi
if [ "$1" == "2" ]; then label2; fi
if [ "$1" == "3" ]; then label3; fi

▶️В целом скрипты выполняются абсолютно идентичным способом. Различия вот в чем. В bash необходимо определить функцию до того, как она будет вызвана в первый раз. В cmd не используются функции, поэтому гибкость алгоритма обеспечивается непосредственными переходами при помощи goto на метку. Метка может быть в любом месте скрипта, как до команды перехода, так и после. В плане гибкости cmd имеет некоторое преимущество в том смысле, что метку можно вставить в любое место скрипта. Но bash с использованием функций позволяет сделать скрипт более строгим, более предсказуемым.

▶️А в плане результата данный пример и в cmd, и в bash одинаков. Главное понять, что в cmd сам скрипт является целиком линейным, а в bash за счет возможности создания функций не является, так как сама функция представляется при ее вызове как обычная команда.

➡️ Пример 2: При соблюдении условия будет выполняться дополнительная часть команд.
▶️Скрипт на cmd:
@echo off
if %1 == 1 goto LABEL1
if %1 == 2 goto LABEL2
if %1 == 3 goto LABEL3
goto END

:LABEL1
echo Parameter: 1
:LABEL2
echo Parameter: 1 or 2
goto END

:LABEL3
echo Parameter: 3
:END

▶️Получатся вложенный блок, который можно показательно выделить отступами
:LABEL1
echo Parameter: 1
:LABEL2
echo Parameter: 1 or 2
goto END

▶️Такой вариант в bash будет выглядеть следующим образом:

#!/bin/bash

label2(){
echo "Parameter: 1 or 2"
}

label1(){
echo "Parameter: 1"
label2
}

label3(){
echo "Parameter: 3"
}

if [ "$1" == "1" ]; then label1; fi
if [ "$1" == "2" ]; then label2; fi
if [ "$1" == "3" ]; then label3; fi

▶️Вложенный блок выделяется в отдельную функцию label2, вызов которой осуществляется из label1. НО! Эта функция должна быть УЖЕ ОПРЕДЕЛЕНА к моменту первого вызова, поэтому в скрипте она должна находиться ВЫШЕ функции label1.

🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Распродажа VPS для ваших задач!
DLine Media предлагает VPS от 100 рублей 😎

Преимущества:
▪️серверное железо
◽️быстрые NVMe диски
▪️ неограниченный трафик
◽️ топовые зарубежные и российские локации
▪️цены в рублях (!)
◽️оплата по договору или картой РФ
▪️собственный ЦОД
◽️выделенный VLAN
▪️поддержка IPv6
◽️VNC доступ из браузера
▪️удобная панель управления
◽️установка любой ОС
▪️низкая стоимость
◽️круглосуточная поддержка

Количество VPS по скидке ограничено, заказ на сайте:

https://tglink.io/f30ce2ed152d?erid=LjN8Ju4FG
⚙️ Tailspin

✔️Логи с подсветкой, которая будет работать одинаково стабильно для разных лог-файлов.

▶️Разбирает строки логов и выделяет различные форматы данных: даты, IP-адреса, UUID, номера, методы HTTP и другие. Правила подсветки настраиваются. Инструмент позволяет следить за файлами в директории и следовать за ними, поддерживает навигацию с помощью клавиатуры, поиск и фильтрацию.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Как повысить свой грейд? План простой: берешь и делаешь 🤌 Но облегчить процесс можно с видеокурсами Слёрма.

Gitlab CI/CD, Docker, RabbitMQ, JavaScript, Python, Linux для разработчиков и другие курсы самых разных востребованных направлений помогут вам сэкономить время, повысить грейд и прокачать навыки.

Видеокурсы — это не только записанные уроки, это еще:

🔵 стенды для практики
🔵 доступ в Git-репозиторий
🔵 помощь техподдержки

➡️ старт в любое время
➡️ обучение в своем темпе: доступ к курсу на 2 года

Начать учиться можно в любое время и бесплатно, активировав демо-доступ. А продолжить обучение с рассрочкой или учиться за счет работодателя.

Подробнее 👉 на сайте

Реклама ООО «Слёрм» ИНН 3652901451
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ UbuntuHardeningFramework — автоматизированная система усиления защиты для Ubuntu

✔️Bash скрипты для автоматического усиления защиты Ubuntu.

▶️Основные наборы инструментов включают обнаружение вторжений SSH, развертывание RKHunter, Lynis, брандмауэра, усиление защиты сетевого ядра, общей памяти и SSH. Со всеми остальными функциями вы можете ознакомится внутри репозитория.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Курс “Компьютерные сети” стартует 2 декабря!

Успейте записаться на курс по старой цене до конца ноября - 39.990 руб. 49.990 руб.

Содержание курса:
- Изучение топологии сетей, видов сетевого оборудования
- Маршрутизация данных и управление доступом к среде
- Протокол IP, транспортный и прикладной уровни
- Система имен DNS, безопасность в сетях и противодействие атакам

Кому полезен курс?
- Junior IT-специалистам, системным администраторам, Web-разработчикам, сетевым инженерам, которые хотят досконально освоить архитектуру сетей

Вы получите:
- Сертификат/удостоверение о повышении квалификации
- Сопровождение и поддержку Академии Кодебай
- Возможности трудоустройства/стажировки

@Codeby_Academy
Узнайте подробнее о курсе здесь
⚙️ MOULTI

✔️Инструмент, позволяющий менять способ отображения вывода ваших сценариев оболочки в вашем терминале.

▶️Moulti изменяет способ отображения вывода ваших shell-скриптов (bash, zsh и т.д.) в терминале. Он позволяет назначать многочисленные строки, выдаваемые вашими скриптами, "шагами", то есть визуальными, сворачиваемыми блоками, имеющими свой заголовок и цвет.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Как с помощью простой шаблонизации выстроить гибкий CI/CD-пайплайн с самого начала?

Расскажем на открытом уроке как эффективно использовать шаблоны:
1. Для минимизации времени на создание
2. Чтобы избежать переделки в будущем 

Практика: Создание адаптируемых пайплайнов с использованием шаблонов

👉 Регистрация и подробности о курсе CI/CD на основе GitLab
https://otus.pw/kAvIa/?erid=LjN8KVcVM

#реклама
О рекламодателе
⚙️ Bash-скрипт, содержащий обрабатываемые данные

✔️Давайте на примере простого скрипта рассмотрим, как написать скрипт, хранящий данные внутри самого себя. Это будет список задач, хранимый в том же самом скрипте, который добавляет задачи, удаляет их и выводит список задач в его текущем состоянии. Итоговый скрипт будет за вычетом самого списка задач занимать менее 750 байт. Его удобно использовать, например, с Dropbox’ом, Яндекс.Диском или Copy для синхронизации задач между несколькими компьютерами

➡️ Самое первое, что нужно сделать — это определить команды, используемые в скрипте и написать обработку параметров командной строки.
case $1 in
add|del|show)
ACTION=$1
shift
TASK=$@
${ACTION}_task
;;
*)
show_help
;;
esac

▶️У нас есть три команды: add, del, show. Самое первое, что сделаем — запомним действие, которое указано в командной строке, в переменную ACTION. Затем сдвинем позиционные параметры скрипта, чтобы удалить из этого списка само действие. Переменной TASK приравняем содержимое командной строки, которое в итоге получится. После этого запустим функцию с именем ДЕЙСТВИЕ_task, которая выполняет соответствующее действие. Если же в качестве первого параметра указано что-то иное или ничего не указано, будет вызвана функция show_help, отображающая краткую помощь.
show_help(){
cat << EOF

Description: script which keeps tasks list (or any other list) inside itself
Usage: $0 [add|show|del]'

Commands:
add [task description]
del [task description part (will delete any tasks that include entered string)]
show

EOF
exit
}

▶️Теперь создадим функции, необходимые для выполнения указанных действий. Начнем с простого, с вывода списка задач.
show_task(){
echo "----------TASK LIST--------"
cat << TASKLISTEND
TASKLISTEND
}

▶️Эта функция просто выводит всё, что находится между строкой cat << TASKLISTEND и строкой TASKLISTEND
Именно между этими строками мы и будем хранить список задач. Теперь осталось написать еще две функции: добавление и удаление задачи. Добавлять задачу будем так:
get_task(){
if [ "$TASK" == "" ]
then
echo -n "Enter task description: "
read TASK
fi
}

add_task(){
get_task
sed -i $0 -re "s/(^TASKLISTEND$)/$TASK\n\1/"
$0 show
}

▶️Непосредственно добавлением задачи занимается функция add_task, а функция get_task просто запрашивает с клавиатуры задачу, если она не была указана в командной строке. Добавление осуществляется потоковым редактором sed. Он находит в файле $0 (сам файл скрипта) строку, в которой содержится слово "TASKLISTEND" и вставляет перед ним еще одну строку, содержащую описание задачи, и перевод строки.

▶️Удаление реализуется похожим образом:
del_task(){
get_task
sed -i $0 -e "/ TASKLISTEND$/,/^TASKLISTEND$/ {/$TASK/d}"
$0 show
}

▶️Как видите, здесь мы тоже получаем описание задачи при помощи функции get_task, а затем выполняем удаление строки из списка, в которой находится часть описания задачи, попадающей в интервал между двумя строками. Строка начала интервала строк содержит пробел и слово TASKLISTEND в конце строки, а строка конца интервала содержит одно единственное слово TASKLISTEND. Между этими двумя строками мы и удаляем найденную строку, если такая есть.

▶️Вот, собственно, и всё. Полный текст скрипта tsklst.sh:

#!/bin/bash

get_task(){
if [ "$TASK" == "" ]
then
echo -n "Enter task description: "
read TASK
fi
}

add_task(){
get_task
sed -i $0 -re "s/(^TASKLISTEND$)/$TASK\n\1/"
$0 show
}

del_task(){
get_task
sed -i $0 -e "/ TASKLISTEND$/,/^TASKLISTEND$/ {/$TASK/d}"
$0 show
}

show_task(){
echo "----------TASK LIST--------"
cat << TASKLISTEND
TASKLISTEND
}

show_help(){
cat << EOF

Description: script which keeps tasks list (or any other list) inside itself
Usage: $0 [add|show|del]'

Commands:
add [task description]
del [task description part (will delete any tasks that include entered string)]
show

EOF
exit
}

case $1 in
add|del|show)
ACTION=$1
shift
TASK=$@
${ACTION}_task
;;
*)
show_help
;;
esac


🖼️ Ссылка на источник

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Linux-Commands

✔️Шпаргалка основных команд Git Bash, терминала OSX, терминала linux.

➡️ Файловая система
▶️Просмотр содержимого папки
▶️Перемещение по файловой системе
▶️Создание папок и файлов
▶️Копирование файлов
▶️Переименование или перемещение файлов
▶️Удаление папок и файлов
➡️ Алиасы
➡️ Разное
➡️ Использование переменных
➡️ Подстановка команд в переменные
➡️ Математические операции
➡️ Управляющая конструкция if-then
➡️ Управляющая конструкция if-then-else
➡️ Конструкция CASE
➡️ Циклы
➡️ Сравнение чисел
➡️ Сравнение строк
➡️ Проверки файлов
➡️ Операторы

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
На счету каждая секунда загрузки сайта?
 
Ускорить доставку контента поможет CDN — Content Delivery Network.
Как работает технология, каким проектам подходит и как защищает инфраструктуру от DDoS-атак — рассказываем в новой полезной подборке.
 
Вы научитесь:
🔹 подключать и настраивать CDN,
🔹 снижать нагрузку на серверы веб-проектов,
🔹 повышать производительность онлайн-сервисов,
🔹 оптимизировать изображения с помощью Image Stack.
 
Переходите в Академию Selectel, чтобы познакомиться с базовыми принципами работы сети → https://slc.tl/6z171

Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqurTRD9
⚙️ bash_backup — скрипт резервного копирования на Bash

✔️Чтобы начать работать со скриптом, необходимо перейти в папку где находится скрипт backup.sh через команду перехода между директориями cd.

▶️Далее необходимо дать права на исполнение, чтобы не писать каждый раз bash backup.sh ... Если выдать такие права, то не будет необходимости в написании слова bash для выполнение скрипта. Используйте chmod +x backup.sh, чтобы выдать права на исполнение.

▶️Теперь мы готовы к запуску скрипта. Чтобы проверить запускается ли скрипт, введите ./backup.sh. В ответ на этот запрос, у вас должно появиться следующее сообщение:
Use -h or --help to see how to work with script


➡️Для вывода помощи на экран используйте команду ./backup.sh -h/--help:
Usage for creating backup: ./backup.sh <source directory> <backup directory>  
Usage for getting version of manager: ./backup.sh -v/--version
Usage for recover backup: ./backup.sh -r/--recover <backup filename> <recover directory>

▶️Чтобы увидеть версию скрипта, выполните: ./backup.sh -v/--version:
Backup manager v1.0.1

▶️Для создания резервной копии используйте следующую команду:
./backup.sh <source directory> <backup directory>

Если директория, которую Вы хотите зарезервировать, не существует, то произойдет выход из программы. Если папки куда Вы хотите сохранить бэкап не существует, то она создастся. Так как архив защищается, то он потребует установить пароль на этот архив, чтобы его не смог восстановить левый человек. "source directory" - директория, которую нужно зарезервировать. "backup directory" - директория, куда сохранится копия.

▶️Чтобы восстановить бэкап, нужно ввести команду:
./backup.sh -r/--recover <backup filename> <recover directory>

▶️У вас потребуется пароль, поставленный на эту копию, чтобы пошел процесс восстановления. Если пароль неверный, то ничего не восстановится. Здесь "backup filename" - это имя бэкапа, а "recover directory" - директория в которую нужно восстановить бэкап.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Ansible: Какой тип инвентаря применяется в Ansible по умолчанию? 🤔

a) База данных
b) Динамический инвентарь
c) Инвентарь в формате JSON
d) Файл инвентаря

Пройдите тест и получите скидку на курс «Ansible: Infrastructure as Code».

На курсе мы:
систематизируем знания по Ansible и изучаем подход IaC;
учимся писать плейбуки и роли;
деплоим Flask-приложение;
настраиваем IaC в Gitlab;
обеспечиваем поддержку наших решений вдолгую.

5 вопросов по Ansible ждут вас внутри бота.
Проверяйте себя и до встречи на обучении! 🔥

Реклама ООО «Слёрм» ИНН 3652901451
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
⚙️ Сравнение SHELLs: BASH vs ZSH vs FISH. Делаем красочный и удобный терминал

✔️В этом видео автор показывает и сравнивает три популярных оболочки для терминала: Bash, Zsh и Fish. Он рассказывает о их особенностях, функционале, удобстве использования и отличиях в настройках.

📹 Смотреть на YouTube

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему /31 префикс — новая эра в настройке сетей?

Вечером 3 декабря на открытом вебинаре разберемся, почему и как появился /31 префикс и сравним его с классическим /30 : 👉 https://tglink.io/bdc47ff9b38c 👈

💬Что обсудим на занятии:
•  Почему появилась возможность использования сетей с маской /31.
•  Как настраивается линк с такой адресацией и какие особенности нужно учитывать.
•  Чем /31 префикс отличается от классического подхода с /30

Дальнейшее освоение тонкостей профессии сетевого инженера вас ждёт на онлайн-курсе «Специализация Network Engineer». 

👉Проводит вебинар преподаватель курса в Отус, сертифицированный инструктор Сетевой академии CISCO по направлениям SECURITY и R&SW. Эксперт WorldSkills и Abilympics по компетенции «Сетевое и системное администрирование».

Регистрируйтесь на урок 3.12 в 20:00 (мск) и получите спец.цену на курс: 👉 https://tglink.io/bdc47ff9b38c?erid=LjN8KN9ry 👈

#реклама
О рекламодателе
⚙️ Оболочка Bash — шпаргалка для начинающих

✔️В данной шпаргалке затрагиваются следующие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.

🖼️ Ссылка на шпаргалку

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ 1000+ ГБ IT-контента уже ждут вашего внимания!

Каналы, которые собрали всё самое полезное для IT-специалистов:

😎 PyLinux — для тех, кто совмещает Python и Linux: готовые bash наработки, гайды и другие полезности...

🐍 Ghostly Python — разбери Python по косточкам: уроки, советы, библиотеки и тонны практики.

⚙️ IToolBox — мощный арсенал инструментов и готовых решений для разработчиков.

😎 IT Syndicate — топовые курсы и материалы по Backend, Frontend, DevOps и не только.

👻 Ghostly Coder — бесценная библиотека книг и статей для IT-специалистов.

➡️ Ссылки действительны всего 48 часов, успей подписаться!
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ SSHClick — SSH Config manager

✔️Менеджер файлов конфигурации SSH, который помогает управлять ими через терминал. Перед использованием программы рекомендуется создать резервную копию файлов конфигурации SSH, так как есть риск случайно потерять некоторые настройки.

➡️ SSHClick можно использовать с командами show и list для хостов, не изменяя при этом файл конфигурации SSH. Только команды, которые изменяют конфигурацию, будут редактировать и переписывать/реструктурировать файл SSH Config. В этом случае любые добавленные комментарии или информация, которые не в форме, понятной SSHClick, будут отброшены, а конфигурация будет отформатирована в стиле SSHClick.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
AMD vs Intel: какой процессор лучше? Ищите ответ в Железном обзоре
 
Вы увидите противостояние суперпроцессоров AMD 9004 и Intel Xeon Scalable5,  поймете особенности каждого. И главное — узнаете лидера серверного сегмента в 2024 году.
 
В выпусках Железного обзора ребята из @Selectel разбирают серверы и их комплектующие до последней микросхемы и обсуждают все характеристики (даже те, о которых вы не знали). В этом команде помогает 15-летний опыт собственной сборки серверов.
 
А на какой процессор ставите вы? Пишите в комментариях под видео и подписывайтесь на YouTube-канал, чтобы не пропустить новые выпуски Железного обзора.
 
Смотреть видео  

Реклама, АО «Селектел», ИНН: 7810962785
⚙️ Как проверить загрузку процессора в командной строке Linux

✔️Статья рассказывает о том, как проверять использование процессора (CPU) в операционной системе Linux.

▶️Для этого существуют несколько командных инструментов:

1. top – классическая утилита для мониторинга процессов и нагрузки на CPU в реальном времени.
2. htop – усовершенствованная версия top с удобным интерфейсом и возможностью управления процессами.
3. mpstat – инструмент для получения подробной статистики использования CPU, включая показатели для отдельных ядер.
4. pidstat – аналог mpstat, позволяющий отслеживать использование CPU конкретными процессами.
5. sar – утилита для сбора и анализа различных системных метрик, включая историю использования CPU.

➡️ Эти инструменты помогают выявить проблемы с нагрузкой на процессор и оптимизировать работу системы.

🖼️ Прочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM