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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
Крутая возможность для тех, кто уже работает с Linux и хочет глубже в него погрузиться.

В двух словах: три бесплатных онлайн-воркшопа по Linux. Из интересного: проходят по субботам, длятся 7 часов, а внутри много практики – настройка self-hosted мессенджера, VPN-решения или облачного хранилища.

Переходи по ссылке и выбирай свой воркшоп до 7 октября.
2👍1🔥1
⚙️ SSL Certification Expiration Checker — программа проверки истечения срока действия SSL-сертификатов

▶️ssl-cert-check — скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов.

➡️ Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥3
Я айтишник и я устал!
Рутина, прокрастинация, куча задач и 0 желания их выполнять. Еще и в семье конфликты. Че делать?

Хватит грызть самого себя и заставлять через силу - сделаешь только хуже!

Лучше подпишись на того, кто уже не первый год работает с IT-специалистами и помогает им справиться с апатией и прокрастинацией - Психолог с научным подходом.

✔️ Как оторваться от ленты соцсетей и сесть за работу с удовольствием?
✔️ Как перестать работать по выходным и при этом все успевать?
✔️ Как избавиться от постоянной тревожности?
✔️ Как успокоить конфликты в семье и перестать срываться на всех, а вместо этого получить поддержку и понимание со стороны близких?

Подписывайся на канал @remizov_changes - начни работать и жить в кайф, не скатываясь в кризисы и выгорание!

А в закрепе тебя уже ждут бонусы:
👨🏻‍💻 Видео, в котором ты найдёшь ответ на вопрос «Почему у тебя нет энергии и что с этим делать» + гайд как it-специалисту вернуть энергию, даже если не получается отдохнуть.

https://t.me/+2whiWg4haV84ODIy
2👍1🔥1
👉 Основы Docker. Большой практический выпуск

➡️В этом выпуске Вы узнаете что такое Docker, познакомитесь с базовыми понятиями. И конечно будут практические примеры.

0:00:00 Вступление
0:02:22 Что такое Docker?
0:16:29 Простой пример Hello World
0:31:34 Пример WEB приложения
0:35:55 Работаем с портами
0:41:10 Что такое docker volume
0:46:54 Поднимаем временную базу данных
0:55:26 Разворачиваем реальный проект
1:00:35 Что такое docker-compose
1:05:23 Создаем виртуальную машину (подробно)
1:08:25 Ставим Docker и Docker compose на Linux
1:10:17 Delpoy проекта с ипользованием GitHub
1:16:50 Delpoy проекта с ипользованием DockerHub

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

Канал: Артем Матяшов

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥7👍6
Разбираем как решать задачи на LeetCode

Примеры решений
Пояснения

Выбери своё направление:

1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift
👍31🔥1
⚙️ Rkhunter (Rootkit Hunter) — инструмент мониторинга безопасности

✔️Инструмент мониторинга безопасности для систем, совместимых с POSIX. Он сканирует системы на наличие руткитов и других возможных уязвимостей.

➡️ Для этого инструмент ищет:
▶️каталоги по умолчанию (где могут находиться руткиты);
▶️неправильно настроенные разрешения;
▶️скрытые файлы;
▶️модули ядра, содержащие подозрительные строки;
▶️сравнивает хэши важных файлов с известными хорошими.

➡️ Инструмент написан на Bash и может работать в большинстве UNIX-систем.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥3
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:

1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
👉 Bash

Видеоуроки:
1 — Введение
2 — Основы команд
3 — Файловая система
4 — Переменные shell
5 — Чтение текстовых файлов
6 — Основы потоков ввода-вывода
7 — Run Сommands File
8 — Pipes
9 — Command history
...
34 — Заключение. Путь развития

📹 Плейлист YouTube

Канал: dmdev

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53👍3
⚡️ IT-обучение теперь в Telegram!

В cвязи с недавнем замедлением Ютуба — лучшие обучающие каналы переехали в Telegram

Вот каналы для айтишников:

👩‍💻 DevOps: @DevOps
📱 Python: @Python
📱 GitHub: @GitHub
📱 Frontend: @Frontend
⚙️ Backend: @Backend
🤓 Общее айти: @portalToIT
👩‍💻 Java: @Java
👩‍💻 C#: @Csharp
👩‍💻 С/С++: @Cpp
🖥 Базы Данных & SQL: @SQL
👩‍💻 Golang: @Golang
🖥 PHP: @PHP
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Разработка игр: @GameDev
🖥 Data Science: @DataScience
🤔 Хакинг & ИБ: @InfoSec
🐞 Тестирование: @QA
📱 Маркетинг: @Marketing
🖥 Дизайн: @Design

➡️ Сохраняйте себе, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
⚙️ 4-ZERO-3 — инструмент обхода ошибок 403/401 в ответах сервера

✔️Для справки: 401 Unauthorized (Не авторизован) - для доступа к запрашиваемому ресурсу требуется аутентификация. 403 Forbidden — сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу.

▶️Скрипт выведет cURL обхода авторизации, если найдет нужный метод.

➡️ Использует следующие методы обхода: header, protocol, port, HTTP, URL encode, MySQL

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥43
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:

1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
👍21🔥1
⚙️ Автоматизация сканирования открытых сетевых портов

✔️С ростом числа кибератак и угроз безопасности информационных систем автоматизация процесса анализа уязвимостей становится критически важной задачей.

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

➡️ В рамках данной статьи мы рассмотрим следующие пункты:
▶️разработка скрипта для поиска поддоменов;
▶️разработка скрипта для преобразования найденных поддоменов в IP-адреса;
▶️разработка скрипта для сканирования внешней сети при помощи утилиты Nmap и сбора информации о доступных портах;
▶️разработка телеграмм-бота для автоматизации.

🖼️ Дочитать статью на Habr'e

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥64
Залетай на CyberCamp 2024!

3–5 октября пройдет главный онлайн-кэмп по практической безопасности ⚡️

Эксперты BI.ZONЕ, F.A.C.C.T., Positive Technologies, R-Vision, Инфосистемы Джет, Лаборатория Касперского, Код Безопасности и других подготовили практику и кейсы для всех участников 🔥

Что еще будет на кэмпе:
🔗 Интерактивный эфир, доклады и практические задания для всех
🔗 Общий призовой фонд — 5 000 000 рублей
🔗 Призы и мерч для активных участников и лидеров рейтинга
🔗 Самые масштабные в России командные киберучения

Бронируйте время в календаре и присоединяйтесь! Участие бесплатное.

Регистрация и программа на сайте

P.S. Если вы еще не успели зарегистрироваться, поспешите — в этом году организаторы кэмпа заранее подготовили несколько докладов и заданий для участников. Все задания, которые откроют до начала эфира, закроются ровно в 8:00 мск 3 октября.
👍4🔥43
⚙️ Параллельное выполнение в bash

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

➡️ Использование фонового режима
▶️Для организации параллельной работы нескольких программ часто используется запуск в фоновом режиме при помощи знака амперсанда — &:
command1 &

▶️Команда будет работать в фоне, при этом из текущей оболочки можно выполнять команды. Таким образом уже можно распараллелить какие-то действия. Можно запустить сразу несколько команд таким образом и дождаться, пока они все отработают. Для ожидания запущенных дочерних процессов используется команда wait. Эта команда без параметров ожидает окончания работы всех дочерних процессов, соответственно, для ожидания окончания 5 процессов понадобится выполнить команду всего 1 раз. Это легко реализуется через цикл:
for i in {1..5}
do
# запуск одного фонового процесса
sleep 10 && echo $i &
done
# ожидание окончания работы
wait
echo Finished

▶️И результат работы этого скрипта:
$ ./wait5.sh
1
5
4
2
3
Finished

▶️Как видите, с виду одинаковые команды завершились не в том порядке, в котором мы их запустили. Давайте посмотрим теперь общее время выполнения скрипта:
$ time ./wait5.sh 
4
5
2
3
1
Finished

real 0m10.029s
user 0m0.000s
sys 0m0.008s

▶️Общее время работы скрипта чуть больше 10 секунд, что доказывает, что наши команды выполнились параллельно, а увеличение времени выполнения говорит о том, что они были запущены не в одно и то же время, были небольшие таймауты между запусками. Но они были очень маленькими, поэтому такой запуск пяти процессов занимает практически такое же время, как запуск одного.

➡️ Использование пайпа
▶️При использовании пайпов, которые перенаправляют вывод одной программы на вход другой, процессы выполняются параллельно. Отсюда вытекает еще один способ параллельного выполнения нескольких команд — перенаправить между ними какие-то данные с помощью пайпа:
program1 | program2 | program3

▶️Тут важно помнить — если вам не нужно передавать реально какие-то данные между программами, то надо предварительно убедиться, что входные данные эти программы получат в виде опций командной строки и не будут использовать те данные, которые были переданы им с помощью пайпа. Хотя здесь возможен такой вариант:
command1 --option > dev/null | command2 param1 param2 > /dev/null | command3

▶️Этот вариант до использования в скриптах, естественно, нужно обязательно проверить в ручном режиме и посмотреть в страницах руководств используемых программ (если там есть такая информация), что имеет больший приоритет — опции командной строки или стандартный поток ввода, потому что некоторые программы могут игнорировать командную строку, если данные передаются через стандартный поток ввода.

➡️ Параллельное выполнение и ограничение количества фоновых задач в скрипте
▶️Давайте рассмотрим такую практическую задачу — запустить 100 процессов параллельно, но так, чтобы работало одновременно не более 10 процессов. В общем, достаточно простая задача. Предположим, что все процессы работают произвольное количество времени. Пусть запуск одной задачи будет выглядеть как запуск команды sleep со случайным параметром от 0 до 29. Тогда скрипт будет выглядеть так:

#!/bin/bash

RANDOM=10
JOBS_COUNTER=0
MAX_CHILDREN=10
MY_PID=$$

for i in {1..100}
do
echo Cycle counter: $i
JOBS_COUNTER=$((`ps ax -Ao ppid | grep $MY_PID | wc -l`))
while [ $JOBS_COUNTER -ge $MAX_CHILDREN ]
do
JOBS_COUNTER=$((`ps ax -Ao ppid | grep $MY_PID | wc -l`))
echo Jobs counter: $JOBS_COUNTER
sleep 1
done
sleep $(($RANDOM % 30)) &
done
echo Finishing children ...
# wait for children here
while [ $JOBS_COUNTER -gt 1 ]
do
JOBS_COUNTER=$((`ps ax -Ao ppid | grep $MY_PID | wc -l`))
echo Jobs counter: $JOBS_COUNTER
sleep 1
done
echo Done


🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥4
Митап про карьерный рост в Linux

Эксперты из Orion soft, K2 Cloud и K2 Tech расскажут о ключевых шагах Linux-инженера на пути к большому ИТ.

В программе: какие навыки в Linux стоит качать, чего ждать на техническом интервью и как найти своё место в мире инфры. Полезная информация для всех, кто стремится развиваться в DevOps и не только.

Встречаемся онлайн 7 октября, в 19:00 (мск). Подробности и регистрация по ссылке
1👍1
⚙️ Homeshick

✔️ Менеджер дотфайлов, использующий git в качестве общего хранилища. Это отличный способ управлять dot-файлами, которые живут в вашем домашнем каталоге.

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

▶️Благодаря возможностям Git, Homeshick позволяет вам переносить на удаленные компьютеры симфонию настроек, в которую вы вложили всю свою душу.

➡️ С его помощью вы сможете сосредоточить еще больше энергии на улучшении своей рабочей среды, поскольку преимущества будут видны на любом используемом вами оборудовании.

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥3
Хотите научиться программировать на одном из самых мощных и востребованных языков? Запишитесь на бесплатный мини-курс Skillbox по разработке на C++ и создайте своё первое приложение всего за 5 дней: https://epic.st/rkQ-iw?erid=2VtzqwQRW48

На мини-курсе вас ждут:
— Погружение в C++: даже если вы никогда не занимались программированием, всё равно поймёте основы языка и напишете своё первое финансовое приложение
— Доступ к материалам навсегда: смотрите видео в удобное время и повторяйте пройденный материал, когда потребуется
— Поддержка эксперта: общение со спикером и разбор ваших практических работ на вебинаре

Запишитесь на мини-курс и получите 5 чек-листов разработчика на C++, а также год бесплатного изучения английского языка!

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
1😐1
⚙️ Несколько способов ускорить bash-скрипты

✔️Думаю, не сделаю открытия, если скажу, что в принципе bash-скрипты штука довольно медленная. Но это обычно не критично, потому что все-таки главная задача bash-скриптов — это автоматизация тех действий, которые выполняются руками. Так что по сравнению с ручным выполнением скорость просто фантастическая. Тем не менее, бывает необходимо ускорить скрипты, если обрабатываются какие-то большие объемы данных.

➡️ Скорость выполнения скриптов
Есть определенные факторы, которые влияют на скорость выполнения скриптов. К ним можно отнести:
▶️Использование внешних команд
▶️Использование излишне сложных или просто неоптимальных регулярных выражений
▶️Вывод в консоль каких-то данных
▶️Использование лишних команд
▶️Использование круглых или фигурных скобок
▶️и т.д.

➡️ И, соответственно, хороший скрипт
▶️Не использует специфические программы, которые есть не везде (требуют установки дополнительных пакетов)
▶️Использует минимум внешних команд
▶️Использует оптимизированные регулярные выражения (которые, как ни печально, многие вообще не используют), например, с минимальным использование захватывающих квантификаторов. Регулярки — это вообще отдельная интересная тема, по поводу которой могу порекомендовать книгу Джеффри Фридла «Регулярные выражения» (если ваш английский позволяет, то лучше в оригинале) и много практики.
▶️Не использует переменные для хранения данных, когда можно использовать пайп и запускать два процесса параллельно вместо последовательного запуска

Кроме скорости, естественно, есть еще такой фактор как совместимость. Если вы уверены, что в других оболочках скрипт выполняться не будет, или будет работать медленно, лучше откажитесь от совместимости в пользу скорости. Какой смысл писать скрипты, которые будут в 99% случаев выполняться в bash, но работать будут в 100% случаев медленно? Тем более что bash есть буквально везде, даже на смартфонах и роутерах. В наше время написание совместимых скриптов — это чаще вопрос предпочтений, чем реальной необходимости. Не очень приятного бывает осознавать, что скрипт может работать под разными оболочками, но работает 100% в баше, и, в связи с отсутствием «заточки» под баш, работает он заметно медленнее, чем мог бы.

➡️ Поэтому давайте рассмотрим некоторые моменты, касающиеся скорости скриптов на примерах
▶️Использование внешних команд
▶️Использование регулярных выражений
▶️Вывод в консоль данных
▶️Использование лишних команд

🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
⚙️ Руководство по использованию команды ulimit в Linux с примерами

✔️Команда ulimit в Linux позволяет ограничивать ресурсы, доступные для оболочки и её дочерних процессов. Эти ограничения включают максимальное количество открытых файлов, максимальный объём виртуальной памяти, размер файла дампа памяти и многое другое.

▶️Команда ulimit является важным инструментом для управления доступными ресурсами, предотвращая ситуации, когда один процесс может заблокировать все ресурсы системы. Она также помогает поддерживать стабильность системы, ограничивая ресурсы для каждого пользователя и процесса.

▶️В этой статье мы рассмотрим команду ulimit и приведём примеры её использования. Также будут рассмотрены практические аспекты её применения.

➡️ Виды ограничений
Ограничения, управляемые командой ulimit, можно разделить на два типа: жёсткие и мягкие ограничения. Рассмотрим их подробнее.

▶️Мягкие ограничения
Мягкие ограничения — это значения, которые можно изменить в пределах жёстких ограничений. Они позволяют временно менять пределы ресурсов для конкретного процесса.

▶️Жёсткие ограничения
Жёсткие ограничения — это максимальные значения ресурсов, которые можно установить для пользователя или процесса. Эти ограничения могут быть изменены только суперпользователем. Жёсткие ограничения задают строгие пределы для использования ресурсов, предотвращая злоупотребление ими.

➡️ Содержание статьи:
▶️Использование
▶️▶️Установка предела размера файла
▶️▶️Увеличение числа открытых файловых дескрипторов
▶️▶️Ограничение времени работы процессора
▶️Практическое применение
▶️▶️Предотвращение перегрузки системы
▶️▶️Улучшение безопасности
▶️▶️Разработка и тестирование
▶️▶️Оптимизация производительности системы
▶️Сохранение ограничений
▶️Заключение

🖼️ Дочитать статью

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥53
Есть ли жизнь DevOps после 40? 🚩

Признайтесь, кто тоже боится войти в новую профессию, потому что думает, что возраст — помеха?

В Слёрме знают, как избавиться от этого страха.

До 6 октября приглашаем вас присоединиться к курсу-профессии «DevOps Upgrade» с карьерной поддержкой.

Внутри:
275 часов интенсивной практики
видеолекции и живые встречи с экспертами курса
2 сертификации и 1 большой финальный проект (можно добавить в портфолио!)
диплом государственного образца

🔗 карьерная консультация от наставника
🔗 подготовка к собеседованию
🔗 рекомендательное письмо

Вы сможете не только освоить новую профессию, но и подготовиться к старту в ней и выгодно подсветить своё резюме.

Переходите на сайт, выбирайте тариф «Комфорт Карьера», и начните учиться уже сегодня 🏃‍♂️
👍3🔥1
⚙️ Команда exit в Bash и коды выхода

✔️Часто при написании сценариев Bash вам необходимо завершить сценарий при выполнении определенного условия или выполнить действие на основе кода выхода команды.

➡️ Статус выхода
▶️Каждая команда оболочки возвращает код выхода, когда она завершается успешно или безуспешно.

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

▶️Специальная переменная $? возвращает статус выхода последней выполненной команды:
date &> /dev/null
echo $?

▶️Команда date завершена успешно, код выхода равен 0
Если вы попытаетесь запустить ls в несуществующем каталоге, код выхода будет отличным от нуля:
ls /nonexisting_dir &> /dev/null
echo $?

2

▶️Код состояния можно использовать для выяснения причины сбоя команды. На странице руководства каждой команды содержится информация о кодах выхода.

▶️При выполнении многокомандного конвейера статус выхода конвейера соответствует состоянию последней команды:
sudo tcpdump -n -l | tee file.out
echo $?

▶️В приведенном выше примере echo $? напечатает код выхода команды tee .

➡️ Команда exit
Команда exit закрывает оболочку со статусом N Он имеет следующий синтаксис:
exit N

▶️Если N не задано, код состояния выхода — это код последней выполненной команды.

▶️При использовании в сценариях оболочки значение, указанное в качестве аргумента команды exit возвращается оболочке как код выхода.

➡️ Примеры
▶️Статус выхода команд может использоваться в условных командах, таких как if . В следующем примере grep завершит работу с нулем (что означает истину в сценариях оболочки), если «строка поиска» найдена в filename :
if grep -q "search-string" filename then
echo "String found."
else
echo "String not found."
fi

▶️При запуске списка команд, разделенных && (И) или || (ИЛИ), статус выхода команды определяет, будет ли выполнена следующая команда в списке. Здесь команда mkdir будет выполнена, только если cd вернет ноль:
cd /opt/code && mkdir project

▶️Если сценарий завершается exit без указания параметра, код выхода из сценария — это код последней команды, выполненной в сценарии.
#!/bin/bash

echo "doing stuff..."

exit

▶️Использование только exit — это то же самое, что и exit $? или пропуская exit .

▶️Вот пример, показывающий, как завершить сценарий, если он запущен пользователем без полномочий root:
#!/bin/bash

if [[ "$(whoami)" != root ]]; then
echo "Only user root can run this script."
exit 1
fi

echo "doing stuff..."

exit 0

▶️Если вы запустите сценарий как root, код выхода будет нулевым. В противном случае скрипт выйдет со статусом 1 .

➡️ Выводы
▶️Каждая команда оболочки возвращает код выхода при завершении. Команда exit используется для выхода из оболочки с заданным статусом.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43