BashMaster
Open in Telegram
Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help
Show more8 880
Subscribers
+224 hours
-117 days
+730 days
Posts Archive
8 879
Сравнение строк
str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны.
str1 != str2 Возвращает истину, если строки не идентичны.
str1 < str2 Возвращает истину, если str1 меньше, чем str2.
str1 > str2 Возвращает истину, если str1 больше, чем str2.
-n str1 Возвращает истину, если длина str1 больше нуля.
-z str1 Возвращает истину, если длина str1 равна нулю.
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user is the current logged in user"
fi8 879
Проверки файлов
-d file Проверяет, существует ли файл, и является ли он директорией.
-e file Проверяет, существует ли файл.
-f file Проверяет, существует ли файл, и является ли он файлом.
-r file Проверяет, существует ли файл, и доступен ли он для чтения.
-s file Проверяет, существует ли файл, и не является ли он пустым.
-w file Проверяет, существует ли файл, и доступен ли он для записи.
-x file Проверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 Проверяет, новее ли file1, чем file2.
file1 -ot file2 Проверяет, старше ли file1, чем file2.
-O file Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G file Проверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi8 879
Математические операции
Для выполнения математических операций в файле скрипта можно использовать конструкцию вида
$((a+b))
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var28 879
Управляющая конструкция if-then
Управление потоком исполнения команд может быть достигнуто с помощью конструкции
if-then. Например, можно использовать ее для поиска пользователя в /etc/passwd и, в случае успешного нахождения, вывести сообщение о его существовании.
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi8 879
Сравнение чисел
В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
n1 -eq n2 Возвращает истинное значение, если n1 равно n2.
n1 -ge n2 Возвращает истинное значение, если n1 больше или равно n2.
n1 -gt n2 Возвращает истинное значение, если n1 больше n2.
n1 -le n2 Возвращает истинное значение, если n1 меньше или равно n2.
n1 -lt n2 Возвращает истинное значение, если n1 меньше n2.
n1 -ne n2 Возвращает истинное значение, если n1 не равно n2.
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi8 879
Подстановка команд
Bash-скрипты позволяют извлекать информацию из вывода команд и сохранять её в переменных для дальнейшего использования.
Сделать это можно двумя способами:
• С помощью значка обратного апострофа «
`»
• С помощью конструкции $()
mydir=$(pwd)
echo $mydir8 879
Пользовательские переменные
Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.
Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"8 879
Установка разрешений для файла сценария
Сохранив файл bash-скрипта, необходимо сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой
Permission denied.
chmod +x ./myscript
./myscript8 879
Уроки Linux для начинающих / Изучение Linux Ubuntu и Bash с нуля
В этом плейлисте вы научитесь устанавливать VirtualBox с Ubuntu, изучите основы пользовательского интерфейса и командной строки Linux, научитесь работать с файлами и директориями, изучите пакетный менеджер, работу с памятью, сжатие файлов и редакторы текста, разберёте команды поиска FIND и GREP.
📹 Плейлист YouTube
Если вы уже имеете эти навыки и знания, поделитесь ими с вашими друзьями ;)
8 879
🫥 Станьте Риком Санчезом в мире интернета
Сообщество Rick Academy запустило свой канал по хакингу, в котором можно найти сотни видеоуроков, статей, книг и курсов, которых нет в открытом доступе из соображений безопасности.
С этим контентом вы освоите:
✔️ Linux и все его возможности
✔️ Программирование
✔️ Кибербезопасность
✔️ Знания в области пентеста
✔️ Анонимность
✔️ Социальную инженерию
✔️ Работу вирусов, софтов и троянов
Откройте новые возможности интернета, получите доступ к невероятным ресурсам.
🪞Начать приключения: @RickAcademy
8 879
Переменные среды
Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя
Обратите внимание на то, что мы можем использовать системную переменную $HOME в двойных кавычках, это не помешает системе её распознать.
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"8 879
nohup для создания "бессмертных" процессов
nohup - это команда для создания долгоживущих процессов без зависимости от терминала. Когда вы запускаете программу из командной строки, она обычно завершается при закрытии терминала. Однако, если вы добавите символ
& и используете команду nohup, программа будет продолжать работу даже после закрытия терминала.
Это полезно, например, для запуска долгих задач или серверов, которые должны работать в фоновом режиме.
nohup firefox https://freecodecamp.org &8 879
Джуниоров не берут на работу!
Это потому что у них нет коммерческого опыта. Но где его взять, если не берут на работу без опыта?
Чтобы наработать опыт надо делать пет-проекты — это сайты, приложения и сервисы, которые похожи на коммерческие и показывают весь опыт джуна на практике.
Обычно новички не могут придумать такие проекты самостоятельно.
Поэтому один добрый тимлид выкладывает такие пет-проекты к себе в телеграм-канал, чтобы помочь новичкам, стартующим в профессии.
Подпишитесь, пока этот канал открыт
8 879
Отправка сообщений в терминал пользователя
Команда отправки сообщений,
write, довольно проста. Для того, чтобы ей воспользоваться, достаточно знать имя пользователя и имя его терминала. Однако, для успешной отправки сообщения, помимо актуальных данных о пользователе и терминале, надо знать, вошёл ли пользователь в систему, не запретил ли он запись в свой терминал. В результате, перед отправкой сообщения нужно выполнить несколько проверок.
Займёмся решением данной задачи, напишем bash-скрипт:
https://telegra.ph/Otpravka-soobshchenij-v-terminal-polzovatelya-05-318 879
Шпаргалка по Bash для начинающих
Часто забываете команды bash или другие возможности оболочки? Мы нашли для вас полезную статью-шпаргалку.
В ней вы найдёте шпаргалки на такие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.
Забыли, открыли, вспомнили и продолжили работу 👌
8 879
Вы знали, что каждый админ на Linux должен знать компьютерные сети на хорошем уровне?
🤔 Если вы хотите по-быстрому разобраться в сетях и при этом не читать книги по тысячи страниц, то ждём вас на канале Network Academy, где вы сможете быстро изучить основы компьютерных сетей за несколько минут.
ЗАХОДИТЕ 👉 Network Academy
8 879
Парсниг JSON в консоли
Если вам требуется просто спарсить единственное поле объекта JSON, полученного например из API-эндпоинта, тогда вы можете обойтись
sed.
Если же нужно, предположим, выбрать определенный ключ массива вложенного в глубину объекта, используйте утилиту jq (документация). Как минимум, jq выведет ваш JSON отформатированно и в цвете.8 879
Калькулятор в консоли
Вы можете вычислять математические выражения в bash, если заключите их в комбинацию
$(( )). Значение можно сразу вывести, записать в переменную или использовать еще как угодно.
echo $((2 * (30 - 19) / 5)) MATH=$((2**8 + 1))
