По умолчанию в большинстве дистрибутивов Linux сейчас используется оболочка bash. У нее есть много интересных возможностей.
Не все знают, но у bash есть автодополнение - можно начать писать имя команды и если она есть где-то в переменной path, bash автоматически ее дополнит. Применить автодополнение можно клавишей TAB. Правила автодополнения на самом деле чуть более сложные и их можно редактировать самостоятельно. Для многих распространённых команд такие правила уже созданы и, скорее всего, уже установлены в вашем дистрибутиве.
clear
reset
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7✍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7✍3
Бесплатный однодневный интенсив по искусственному интеллекту!
За 1 день научим тебя писать нейронные сети. Напишешь 9 нейронок с нуля, без опыта программирования!
На интенсиве ты создашь:
- 3 нейронки из области компьютерного зрения
- 3 нейронки по распознаванию и обработке текста
- 3 нейронки по сегментации, временным рядам и аудио
Регистрируйся прямо сейчас, исследуй футуристичный мир нейросетей с нами!
Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8KQEYZ
За 1 день научим тебя писать нейронные сети. Напишешь 9 нейронок с нуля, без опыта программирования!
На интенсиве ты создашь:
- 3 нейронки из области компьютерного зрения
- 3 нейронки по распознаванию и обработке текста
- 3 нейронки по сегментации, временным рядам и аудио
Регистрируйся прямо сейчас, исследуй футуристичный мир нейросетей с нами!
Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8KQEYZ
✍3😐2👍1
Мы люди серьёзные — сначала думаем, а потом делаем (или не делаем). Набросаем нечто вроде ТЗ: Уведомление должно быть ненавязчивым, а также всё должно быть красиво и удобно!
В качестве среды исполнения будет bash, coreutils — в общем всё, что есть в фундаментальных трудах предков, с учётом современных реалий.
Имеются удобные для нас факторы — т. к. скрипт выполняется в графической сессии пользователя, то выполняется он с его правами и установленной переменной
DISPLAY
.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5✍3
Курс "Профессия Пентестер" стартует 22 июля!
- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности
Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети
Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!
Пишите нам @Codeby_Academy или
Узнайте подробнее о курсе
- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности
Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети
Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!
Пишите нам @Codeby_Academy или
Узнайте подробнее о курсе
👍3✍1🔥1
Зачастую нам необходимо запустить некоторые команды внутри контейнера. Есть несколько способов, которыми мы можем выполнить команду внутри контейнера и получить требуемый результат.
Мы можем напрямую обращаться к оболочке контейнера и выполнять наши команды, как в обычном терминале Linux. Чтобы получить интерактивную оболочку остановленного (не в рабочем состоянии) контейнера, вы можете использовать:
$ docker run -it ubuntu bash
Мы попали прямо в новый контейнер Ubuntu, где мы можем запускать наши команды.
Если контейнер уже запущен, вы можете использовать команду exec, как показано ниже.
Узнаем идентификатор контейнера.
$ docker ps
Затем зайдем в контейнер с идентификатором, например, c2d969adde7a
$ docker exec -it c2d969adde7a bash
root@c2d969adde7a:/#
В приведенном выше выводе вы можете заметить, что мы запустили сеанс bash контейнера nginx, который находился в рабочем состоянии.
Здесь мы можем выполнить любую поддерживаемую команду и получить результат.
Обратите внимание: в вашем контейнере может не быть bash, и если это так, вы можете использовать sh.
docker exec -it c2d969adde7a sh
Зачастую нам просто нужен вывод одной или двух команд и не требуется полноценный интерактивный сеанс для нашей задачи.
Вы можете запустить требуемую команду внутри контейнера и получить ее вывод напрямую, не открывая новый сеанс оболочки, используя команду exec без флага
-it
.Cинтаксис будет таким:
$ docker exec <container-id or name> <command>
Это не совсем тот способ, которым вы можете запускать команды внутри контейнера, хотя он может быть полезен в ситуациях разработки или для начальной отладки развертывания и т.д.
Мы можем использовать команду RUN внутри Dockerfile.
Вот наш пример Dockerfile:
FROM nginx:latest
RUN nginx -V
Данный метод просто извлекает последний образ nginx из реджестри, а затем запускает команду
nginx -V
, чтобы отобразить версию Nginx при создании образа.Please open Telegram to view this post
VIEW IN TELEGRAM
✍8🔥5👍3
Курс по Kubernetes для разработчиков. Видеокурс по Docker в подарок ⤵️
❓ Ваша компания решила мигрировать сервисы на Kubernetes?
❓ Большая часть интересных вам вакансий требует навыков в K8s?
❓ Вы не врубаетесь, где границы ответственности девопсов и разработчиков в работе с кубами?
Разбираемся с этим на курсе Слёрма «Kubernetes для разработчиков» 😎
Старт потока — 22 июля.
ПРОГРАММА КУРСА
Вас ждут:
✅ 7 недель обучения
✅ 112 часов практики + 26 часов теории
✅ Общий чат со студентами, экспертами и куратором
✅ Стенды для отработки практических навыков
✅ Сдача сертификации
✅ Итоговый проект
Эксперты — действующие devops-инженеры:
➡️ Марсель Ибраев, Senior System Engineer G42 Cloud
➡️ Павел Селиванов, архитектор Yandex Cloud
🎁 При оплате обучения до 22 июля — видеокурс по основам Docker в подарок🎁
🔗 ПРОЙТИ ПЕРВЫЕ ТРИ УРОКА БЕСПЛАТНО
❓ Ваша компания решила мигрировать сервисы на Kubernetes?
❓ Большая часть интересных вам вакансий требует навыков в K8s?
❓ Вы не врубаетесь, где границы ответственности девопсов и разработчиков в работе с кубами?
Разбираемся с этим на курсе Слёрма «Kubernetes для разработчиков» 😎
Старт потока — 22 июля.
ПРОГРАММА КУРСА
Вас ждут:
✅ 7 недель обучения
✅ 112 часов практики + 26 часов теории
✅ Общий чат со студентами, экспертами и куратором
✅ Стенды для отработки практических навыков
✅ Сдача сертификации
✅ Итоговый проект
Эксперты — действующие devops-инженеры:
➡️ Марсель Ибраев, Senior System Engineer G42 Cloud
➡️ Павел Селиванов, архитектор Yandex Cloud
🎁 При оплате обучения до 22 июля — видеокурс по основам Docker в подарок🎁
🔗 ПРОЙТИ ПЕРВЫЕ ТРИ УРОКА БЕСПЛАТНО
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7✍4🔥4😐3
⚠️ Как создать собственный тип данных с помощью PostgreSQL?
Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.
🔹Разберем несколько примеров детально "до винтика"
🦾 PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля.
👉 Регистрация и подробности
https://otus.pw/KVCL/?erid=LjN8KRVSz
Расскажем на открытом уроке «Пользовательские типы данных в PostgreSQL» в рамках практического курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS
🔹На открытом уроке рассмотрим как можно создать пользовательский тип и как с ним работать.
🔹Разберем несколько примеров детально "до винтика"
🦾 PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. Тестируйте занятие на бесплатном уроке и начните обучение уже 30 июля.
👉 Регистрация и подробности
https://otus.pw/KVCL/?erid=LjN8KRVSz
✍2
/bin
находятся бинарные или исполняемые файлы. Программы пишутся в исходном коде, который представляет собой текст, читаемый человеком. Затем исходный код компилируется в машинный двоичный код. Они называются двоичными, потому что машинный код представляет собой серию нулей и единиц. Важно знать, что команды, программы и приложения, которые вы можете использовать, иногда находятся в каталоге /bin
./bin
содержит оболочки типа bash и часто используемые команды, такие как cp
, mv
, rm
, cat
, ls
, grep
, tar
, kill
, echo
, ps
, gzip
, ping
, su
и vi
, которые используются как системным администратором, так и непривилегированными пользователями. Он содержит необходимые двоичные файлы (в отличие от каталога /usr/bin
), в том числе для загрузки. Он также может содержать команды, которые косвенно используются скриптами.Список всех программ в
/bin
можно посмотреть с помощью команды ls
, которая обычно используется для просмотра содержимого каталогов : ls /bin
/bin
:cat
— Утилита для конкатенации файлов в стандартный выводchgrp
— Утилита для изменения группы, которой принадлежит файл или директорияchmod
— Утилита для изменения прав доступа к файламchown
—Утилита для изменения владельца и группы файловcp
— Утилита для копирования файлов и каталоговdate
— Утилита для вывода или установки системных данных и времениdd
— Утилита для преобразования и копирования файлаdf
— Утилита для создания отчета об использовании дискового пространства файловой системыdmesg
— Утилита для вывода буфера сообщений ядра в стандартный поток вывода (по умолчанию на экран)echo
— Утилита для отображения строки текстаfalse
— Утилита, единственное действие которой — возвратить ненулевое значение (обычно 1)hostname
— Утилита для отображения или установки имени хоста системыkill
— Утилита отправляет сигнал процессу(-ам), указанному с помощью каждого из операндов идентификатор_процессаln
— Утилита командной строки для создания ссылок между файламиlogin
— Утилита, которая позволяет пользователям войти в системуls
— Утилита для просмотра содержимого каталогаmkdir
— Утилита для создания каталоговmknod
— Утилита создаёт запись в файловой системе (обычный файл, файл устройства или именованный канал)more
— Утилита для постраничного просмотра текстаmount
— Утилита для монтирования файловой системыmv
— Утилита для перемещения/переименования файловps
— Утилита для сообщения о состоянии процессаpwd
— Утилита выводит полный путь от корневого каталога к текущему рабочему каталогуrm
— Утилита для удаления файлов или каталоговrmdir
— Утилита для удаления пустых каталоговsed
— Утилита Sed работает с текстовыми файламиsh
— Это интерпретатор командного языка, который выполняет команды, прочитанные из строки командной строки, стандартный ввод или указанный файлstty
— Утилита для изменения и печати настроек терминальной строкиsu
— Утилита для изменения идентификатора пользователяsync
— Утилита Unix, предназначенная для обновления файловых систем и для синхронизации данных на диске с данными в памятиtrue
— Утилита, единственное действие которой — возвратить значение 0umount
— Утилита для размонтирования файловых системuname
— Утилита для вывода информации о системеPlease open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7✍5😐1
Курс "Профессия Пентестер" стартует 22 июля!
- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности
Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети
Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!
Пишите нам @Codeby_Academy или
Узнайте подробнее о курсе
- Научитесь атаковать сети, WEB-сайты, операционные системы и локальные устройства и проводить внутренний и внешний пентест
- Участвуйте в BugBounty программах или постройте карьеру в сфере информационной безопасности
Полный цикл обучения:
- от освоения Kali Linux и администрирования, до написания эксплойтов и шелл-кода, обхода антивирусных решений
- от сетевой разведки до эксплуатации уязвимостей, повышения привилегий и закрепления в сети
Хотите стать пентестером? Присоединяйтесь к нам – защищайте мир от угроз, находя уязвимости и предотвращая кибератаки!
Пишите нам @Codeby_Academy или
Узнайте подробнее о курсе
✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10✍7👍3
Причина написания этой статьи: "все диски необходимо шифровать!". Это нужно не только на случай утери устройства, но и на случай замены на новое. Зачастую об этом вспоминаешь только после того, как выбросил незашифрованный носитель. После чего молишься, чтобы его на свалке никто никогда не нашёл. Но чтобы шифрование не превратилось в боль, оно должно открываться незаметно...
root
пользователя./root/luks_passwd
пишем пароль для расшифровки тома./root/luks_unlock
, который будет разблокировать и монтировать раздел:key_file='/root/luks_passwd' # путь к файлу с ключом
mount_point='/mnt/files' # точка монтирования
UUID='658f0eb8-fdc6-4440-a8fd-46b7bc8ae0ba' # UUID диска, который надо примонтировать к точке
name='files' # название диска для mapper
# определяем имя диска по его UUID (напр. /dev/sda1)
disk=''
while [[ ${#disk} == 0 ]]; do
# диск может подключаться не сразу после старта системы, поэтому делаем много попыток с задержко
echo "Получаем путь к диску по его UUID=${UUID}"
disk=$( blkid | grep ${UUID} | awk '{print $1}' | tr -d ':|\n' )
if [[ ${#disk} == 0 ]]; then
sleep 5
else
echo "Диск ${name} найден тут: ${disk}"
fi
done
# расшифровываем диск
while [[ ! -e /dev/mapper/${name} ]]; do
echo "Расшифровываем диск ${name}: ${disk}"
cat ${key_file} | cryptsetup luksOpen ${disk} ${name} -
if [[ ! -e /dev/mapper/${name} ]]; then
sleep 5
else
echo "Диск успешно расшифрован ${name}: ${disk}"
fi
done
# монтируем
while [[ "$( lsblk -o MOUNTPOINT | grep -i ${mount_point} | wc -l | tr -d '\n' )" == 0 ]]; do
echo "Монтируем ${name}: ${disk}"
mount /dev/mapper/${name} ${mount_point}
sleep 5
done
Ставим скрипт
/root/luks_unlock
на автозагрузку через крон. Для этого можно в файле /etc/crontab
добавить в конец такую строку:@reboot root bash /root/luks_unlock
Но этот файл затрётся при полном обновлении системы (например, через команду
do-release-upgrade
в Ubuntu). Поэтому лучше записать в персональные cron
задачи. Для этого выполняем crontab -e
и пишем в конец:SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot bash /root/luks_unlock
Обратите внимание, что если не задать
SHELL
и PATH
, то скрипт не выполнится корректно, потому что ему будет непонятно, откуда брать утилиты lsblk
и blkid
. А вот в общесистемном crontab
файле эти директивы определены.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍6🔥5
Если ты читаешь «BashMaster», скорее всего у тебя уже имеется базовый опыт системного администрирования. И это хорошо, потому что уже в этот вторник, 23-го июля, школа IT-профессий Level Up запускает новый поток курса «DevOps-инженер. Интенсив», который поможет ускоренно изучить профессию, а точнее перейти на новый уровень.
Чему ты научишься?
- понимать основные принципы и философию DevOps
- пользоваться инструментами для автоматизации процессов разработки
- автоматизировать процессы деплоя с помощью инструментов CI/CD
- понимать основные этапы и методы разработки ПО
- четко видеть свою роль в процессах разработки
- лучше контролировать и управлять production, development, и тестовыми-средами
- многое другое
Подробнее о курсе, программе, преподавателе (он хорош) - по ссылке.
Эксклюзивно для подписчиков «BashMaster» честная (действует даже при рассрочке) скидка 20% по промокоду
Реклама. ООО "ОБРАЗОВАТЕЛЬНЫЕ РЕШЕНИЯ". ИНН 7801715236. erid: 2VtzqvLWQMQ
Чему ты научишься?
- понимать основные принципы и философию DevOps
- пользоваться инструментами для автоматизации процессов разработки
- автоматизировать процессы деплоя с помощью инструментов CI/CD
- понимать основные этапы и методы разработки ПО
- четко видеть свою роль в процессах разработки
- лучше контролировать и управлять production, development, и тестовыми-средами
- многое другое
Подробнее о курсе, программе, преподавателе (он хорош) - по ссылке.
Эксклюзивно для подписчиков «BashMaster» честная (действует даже при рассрочке) скидка 20% по промокоду
BASHHELP
Реклама. ООО "ОБРАЗОВАТЕЛЬНЫЕ РЕШЕНИЯ". ИНН 7801715236. erid: 2VtzqvLWQMQ
👍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍6🔥4
Уйти в пентест? Стать devops-инженером или системным администратором?
Только вам решать, куда расти, если вы знаете Linux.
Курс "Основы Linux" обучит вас тонкостям работы с ОС: от работы в командной строке до создания прикладных программ.
- 70% практики
- сопровождение куратора
- финальный проект для портфолио
- сертификат или удостоверение о повышении квалификации
- одна из самых низких цен на обучение
Старт 8 августа (длительность 3,5 месяца)
@Codeby_Academy
+74994441750
Узнать подробнее
Только вам решать, куда расти, если вы знаете Linux.
Курс "Основы Linux" обучит вас тонкостям работы с ОС: от работы в командной строке до создания прикладных программ.
- 70% практики
- сопровождение куратора
- финальный проект для портфолио
- сертификат или удостоверение о повышении квалификации
- одна из самых низких цен на обучение
Старт 8 августа (длительность 3,5 месяца)
@Codeby_Academy
+74994441750
Узнать подробнее
✍3👍2
ssh-keygen -lf <(ssh-keyscan ip_адрес 2>/dev/null)
ssh-keyscan ip_адрес | ssh-keygen -lf -
ssh-keyscan 127.0.0.1 | ssh-keygen -lf -
ssh-keygen
надо указать параметр с ключом -E
и названием алгоритма:ssh-keygen -E md5 -lf <(ssh-keyscan ip_адрес 2>/dev/null)
Please open Telegram to view this post
VIEW IN TELEGRAM
✍11👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
"Разработка игр — это дорого!" Но как же minecraft, among us?
Indie Spotlight 👈 чат для инди-разработчиков, в котором найдётся ответ на любой вопрос:
— Как собрать и управлять командой по разработке игр?
— Как продвинуть игру без бюджета?
— Как монетизировать проект в условиях санкций?
👆Также у проекта есть телеграм-канал, где вы сможете ознакомиться с играми других разработчиков, оценить игры других участников, а также принять участие в розыгрышах призов таких, как Playstation 5, мониторы и раздачи ключей к играм💡
Это первое подобное комьюнити в телеграм:
➡️ Вступить в чат
➡️ Перейти в канал
Indie Spotlight 👈 чат для инди-разработчиков, в котором найдётся ответ на любой вопрос:
— Как собрать и управлять командой по разработке игр?
— Как продвинуть игру без бюджета?
— Как монетизировать проект в условиях санкций?
👆Также у проекта есть телеграм-канал, где вы сможете ознакомиться с играми других разработчиков, оценить игры других участников, а также принять участие в розыгрышах призов таких, как Playstation 5, мониторы и раздачи ключей к играм
Это первое подобное комьюнити в телеграм:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
ls(1)
достаточно хорошо справляется с отображением атрибутов одного файла (по крайней мере, в некоторых случаях), но когда просишь у неё список файлов, возникает огромная проблема: Unix позволяет использовать в имени файла почти любой символ, в том числе пробелы, переносы строк, точки, символы вертикальной черты, да и практически всё остальное, что вы можете использовать как разделитель, за исключением NUL
. Существуют предложения по «исправлению» этой ситуации внутри POSIX
, но они не помогут в решении текущей ситуации.ls
разделяет имена файлов переносами строк. И никаких проблем не возникает, пока не встретится файл, в имени которого есть перенос строки. Так как очень немногие реализации ls
позволяют завершать имена файлов символаи NUL
, а не переносами строк, это не позволяет получить безопасным образом список имён файлов при помощи ls
(по крайней мере, портируемым способом).$ touch 'a space' $'a\nnewline'
$ echo "don't taze me, bro" > a
$ ls | cat
a
a
newline
a space
Этот вывод показывает, что у нас есть два файла с именем
a
, один с именем newline
и один с именем space
.Но если воспользоваться
ls -l
, то можно увидеть, что это совершенно не так:$ ls -l
total 8
-rw-r----- 1 lhunath lhunath 19 Mar 27 10:47 a
-rw-r----- 1 lhunath lhunath 0 Mar 27 10:47 a?newline
-rw-r----- 1 lhunath lhunath 0 Mar 27 10:47 a space
Проблема в том, что из вывода
ls
ни пользователь, ни компьютер не может сказать, какие его части составляют имя файла. Это каждое слово? Нет. Это каждая строка? Нет. На этот вопрос есть только один правильный ответ: мы не можем этого понять.ls
повреждает данные имён файлов (в нашем случае она превратила символ переноса строки между словами a
и newline
в вопросительный знак. (Некоторые системы вместо него ставят \n
.) В некоторых системах команда не делает этого, когда вывод происходит не в терминал, а в других имя файла всегда повреждается. В конечном итоге, никогда не стоит считать, что вывод ls
будет истинным представлением имён файлов, с которыми вы работаете.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍7🔥4
Forwarded from localhost
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39👍11