🚀 Приглашаем на звонок для начинающих DevOps'ов!
📅 Когда: 15го июня в 10.00 МСК
📍 Где: Онлайн, ссылка для подключения будет в группе DevOps фабрики
Ты узнаешь:
🔹 Что учить, чтобы стать DevOps специалистом
🔹 Какой начальный уровень нужен
На звонке от DevOps фабрики рассмотрим:
Хард скиллы: какие технические знания и навыки необходимы
Софт скиллы: как развивать коммуникативные и управленческие умения
Обсудим, как потренироваться с нужными технологиями и куда расти, чтобы достичь успеха в этой сфере.
🎤 Задай свой вопрос: Что предпринять в твоем конкретном случае? Мы поможем разобраться!
Ссылку опубликую в канале :
Не упусти шанс начать свой путь в DevOps с правильного старта!
📅 Когда: 15го июня в 10.00 МСК
📍 Где: Онлайн, ссылка для подключения будет в группе DevOps фабрики
Ты узнаешь:
🔹 Что учить, чтобы стать DevOps специалистом
🔹 Какой начальный уровень нужен
На звонке от DevOps фабрики рассмотрим:
Хард скиллы: какие технические знания и навыки необходимы
Софт скиллы: как развивать коммуникативные и управленческие умения
Обсудим, как потренироваться с нужными технологиями и куда расти, чтобы достичь успеха в этой сфере.
🎤 Задай свой вопрос: Что предпринять в твоем конкретном случае? Мы поможем разобраться!
Ссылку опубликую в канале :
Не упусти шанс начать свой путь в DevOps с правильного старта!
Сегодня заумных простыней не будет, тем не менее следующая кишка на bash тебе пригодится.
✔️ Делает она следующее
При запуске программы (в моём случае это mc), в терминал вываливается список всех файлов, которые программа открывает в домашнем каталоге.
Штука очень полезная для дебага. Когда не знаешь к каким файлам программа обращается, а очень хочется.
Эту команду можно усовершенствовать, поменяв пути и добавив например вызовы write. Тут уже от ситуации зависит.
При первом запуске mc я получил такой список:
Пользуйтесь!
tags: #bash #linux #debug
—
🔔
strace -o "| grep -Eo '/home/[^\"]+' >&2" -zfe '/^open' mc
✔️ Делает она следующее
При запуске программы (в моём случае это mc), в терминал вываливается список всех файлов, которые программа открывает в домашнем каталоге.
Штука очень полезная для дебага. Когда не знаешь к каким файлам программа обращается, а очень хочется.
Эту команду можно усовершенствовать, поменяв пути и добавив например вызовы write. Тут уже от ситуации зависит.
При первом запуске mc я получил такой список:
/home/user/.config/mc/ini
/home/user/.config/mc/ini
/home/user/.config/mc/panels.ini.E4M2O2
/home/user/.config/mc/ini
/home/user/.config/mc/ini
/home/user/.config/mc/ini~
/home/user/.config/mc/ini
/home/user/.bash_history
Если в твоём сознании живёт стройный и прекрасный мир программ, и ты человек с утончённой душевной организацией, воздержись от использования этого инструмента, лучше сходи на pornhub.
Пользуйтесь!
tags: #bash #linux #debug
—
🔔
Есть ли DevSecOps в Самаре? На Positve Tech Day 18 июня он точно появится! 🙂
В Самаре впервые пройдет конференция Positive Tech Day от Positive Technologies, на которой соберутся топовые эксперты компании по безопасной разработке — они выступят на треке «DevSecOps на Волге», где расскажут об Application Security.
Так что если у вас еще не было планов на июнь — сохраняйте дату, приходите бесплатно послушать доклады и задать вопросы! Будет полезно как новичкам, так и тем, что уже давно в теме.
🤔 На «DevSecOps на Волге» вы узнаете:
• из чего состоит практика безопасной разработки и как ее внедрить;
• как защитить конвейер CI/CD и ничего не испортить;
• как выбирать и применять AppSec-инструменты;
• как выстроить взаимодействие между людьми, чтобы DevSecOps работал.
Участие бесплатное по предварительной регистрации.
В Самаре впервые пройдет конференция Positive Tech Day от Positive Technologies, на которой соберутся топовые эксперты компании по безопасной разработке — они выступят на треке «DevSecOps на Волге», где расскажут об Application Security.
Так что если у вас еще не было планов на июнь — сохраняйте дату, приходите бесплатно послушать доклады и задать вопросы! Будет полезно как новичкам, так и тем, что уже давно в теме.
🤔 На «DevSecOps на Волге» вы узнаете:
• из чего состоит практика безопасной разработки и как ее внедрить;
• как защитить конвейер CI/CD и ничего не испортить;
• как выбирать и применять AppSec-инструменты;
• как выстроить взаимодействие между людьми, чтобы DevSecOps работал.
Участие бесплатное по предварительной регистрации.
Прочитал недавно в полезняшках — про кириллические символы, ну и пошел экспериментировать, но немного в другом векторе. Раскроем так сказать тему сисек.
Сегодня займемся поиском шрифтов в Linux, которые поддерживают русскую букву «А». И посмотрим какие из них могут использоваться совместно с утилитой convert.
Чо еще в субботу делать 🍷 Завтра пауза с постами, приведу к нам сюда еще единомышленников.
Для начала нужно узнать какие вообще шрифты в системе поддерживают этот символ. Для этого используем утилиту «fc-list» из пакета «fontconfig».
Для поиска возьмем код символа «0410» в utf-8. Он соответствует кириллической букве «А».
Также можно указать диапазон
✔️ Поехали! Выводим все шрифты, которые поддерживают кодовую точку «0410».
Есть нюанс. В список могут попасть шрифты, которые будут содержать кодовые точки, но у них не будет изображений символов.
Далее сопоставляем найденные шрифты, с теми которые поддерживает утилита convert.
Чо тут происходит. Мы отдаём через pipe результаты отработки команды fc-list на стандартный ввод grep.
w = шаблон, соответствует слову
o = выводим только совпадения, а не всю строку
f = файл строки в качестве шаблона поиска
Конструкция
Она имеет вид:
Запускается процесс список и его входной или выходной поток связывается с именованным каналом FIFO или одним из файлов в
Имя этого файла передается в качестве аргумента текущей команде как результат подстановки.
Если использовать >(список), запись в файл будет давать входные данные процессу список.
Если используется <(список), файл, переданный в качестве аргумента, необходимо читать для получения результатов работы процесса список.
Получается в качестве аргумента команда grep получит файл. Содержимым которого будет результат работы команды
Проверяем:
В итоге получаем нужный список шрифтов.
Ну а дальше можем заряжать все это в bash скрипт и гордится, какие мы с тобой охуенные.
Для примера давай сгенерим кучу изображений с русской буквой «А» используя найденные шрифты.
После запуска скрипта, в каталоге появится портянка файлов с изображениями, учти этот момент, чтобы не засрать себе поапочку. Лучше сразу в tmp это делай.
У меня всё, не смею тебя больше отвлекать. Изучай. Увидимся!
tags: #bash #linux
—
🔔
Сегодня займемся поиском шрифтов в Linux, которые поддерживают русскую букву «А». И посмотрим какие из них могут использоваться совместно с утилитой convert.
Чо еще в субботу делать 🍷 Завтра пауза с постами, приведу к нам сюда еще единомышленников.
Для начала нужно узнать какие вообще шрифты в системе поддерживают этот символ. Для этого используем утилиту «fc-list» из пакета «fontconfig».
Для поиска возьмем код символа «0410» в utf-8. Он соответствует кириллической букве «А».
Также можно указать диапазон
:charset=0410-044f
(охватывает все заглавные и строчные буквы русского алфавита от А до Я) ну или язык :lang=ru
.✔️ Поехали! Выводим все шрифты, которые поддерживают кодовую точку «0410».
fc-list ':charset=0410' --format '%{file}\n'
Есть нюанс. В список могут попасть шрифты, которые будут содержать кодовые точки, но у них не будет изображений символов.
Далее сопоставляем найденные шрифты, с теми которые поддерживает утилита convert.
Утилита convert является частью пакета программного обеспечения ImageMagick. Это мощный инструмент для создания, редактирования, преобразования и отображения растровых изображений.
fc-list ':charset=0410' --format '%{file}\n' | grep -wof - <(convert -list font)
Чо тут происходит. Мы отдаём через pipe результаты отработки команды fc-list на стандартный ввод grep.
w = шаблон, соответствует слову
o = выводим только совпадения, а не всю строку
f = файл строки в качестве шаблона поиска
Конструкция
<(convert -list font)
это подстановка процессов. Доступна в системах, поддерживающих именованные каналы (FIFO) или метод именования открытых файлов через /dev/fd.
Она имеет вид:
<(список) или >(список)
Запускается процесс список и его входной или выходной поток связывается с именованным каналом FIFO или одним из файлов в
/dev/fd.
Имя этого файла передается в качестве аргумента текущей команде как результат подстановки.
Если использовать >(список), запись в файл будет давать входные данные процессу список.
Если используется <(список), файл, переданный в качестве аргумента, необходимо читать для получения результатов работы процесса список.
Получается в качестве аргумента команда grep получит файл. Содержимым которого будет результат работы команды
convert -list font.
Проверяем:
echo <(convert -list font)
cat <(convert -list font)
В итоге получаем нужный список шрифтов.
Font: URWGothic-Book
family: URW Gothic
style: Normal
stretch: Normal
weight: 400
glyphs: URWGothic-Book.otf
Font: URWGothic-BookOblique
family: URW Gothic
style: Oblique
stretch: Normal
weight: 400
glyphs: URWGothic-BookOblique.otf
Ну а дальше можем заряжать все это в bash скрипт и гордится, какие мы с тобой охуенные.
Для примера давай сгенерим кучу изображений с русской буквой «А» используя найденные шрифты.
#!/bin/bash
code=0410
char=$(printf '%b' '\U'$code)
fc-list ':charset='$code --format '%{file}\n' |\
grep -wof - <(convert -list font) | while read line
do
name=${line##*/}
name=${name%.*}
convert -font "$line" -pointsize 48 label:"$char" ./${name}.png
done
После запуска скрипта, в каталоге появится портянка файлов с изображениями, учти этот момент, чтобы не засрать себе п
У меня всё, не смею тебя больше отвлекать. Изучай. Увидимся!
tags: #bash #linux
—
🔔
❓Как 1С-разработчику без стресса перейти из Конфигуратора в EDT?
Ждем вас на практическом открытом уроке для начинающих и опытных разработчиков, администраторов и DevOps 1С, где мы разберем:
- процесс адаптации к разработке в EDT;
- различия в подходе к повседневным действиям разработчика в 1С;
- как выстроить постепенное освоение интерфейса EDT.
Спикер Юрий Пасхин — программист-разработчик в компании ЕАЕ-Консалт, опытный руководитель команд, архитектор и наставник.
Встречаемся 13 июня в 20:00 мск в преддверии старта курса «Профессиональная разработка в 1С:EDT + Git». Все участники вебинара получат специальную цену на обучение!
👉Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/otCu/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Ждем вас на практическом открытом уроке для начинающих и опытных разработчиков, администраторов и DevOps 1С, где мы разберем:
- процесс адаптации к разработке в EDT;
- различия в подходе к повседневным действиям разработчика в 1С;
- как выстроить постепенное освоение интерфейса EDT.
Спикер Юрий Пасхин — программист-разработчик в компании ЕАЕ-Консалт, опытный руководитель команд, архитектор и наставник.
Встречаемся 13 июня в 20:00 мск в преддверии старта курса «Профессиональная разработка в 1С:EDT + Git». Все участники вебинара получат специальную цену на обучение!
👉Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/otCu/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
И снова понедельник и снова на работу. Сегодня про оптимизацию и управляющие последовательности. Бест-практики, трувей ёпта!
Если в своих скриптах или программах ты часто используешь одинаковые управляющие последовательности, имеет смысл сохранить результаты работы утилиты tput в переменную.
Скучная теория
✔️ Практика
Чтобы не усложнять, рассмотрим пример на основе clear. Эта команда очищает экран.
Помещаем в переменную очистку экрана. Теперь проверяем:
После выполнения одной из этих команд, экран терминала будет очищен.
А почему просто не выполнить команду clear без этих вонючих tp...
Если в своих скриптах или программах ты часто используешь одинаковые управляющие последовательности, имеет смысл сохранить результаты работы утилиты tput в переменную.
Скучная теория
tput используется для управления терминалом и выполнения различных задач, связанных с его настройкой и управлением.
Управляющие последовательности — это специальные последовательности символов, используемые для управления поведением терминала. Они позволяют изменять цвета текста, перемещать курсор, очищать экран и выполнять другие действия, не изменяя сам текст.
✔️ Практика
Чтобы не усложнять, рассмотрим пример на основе clear. Эта команда очищает экран.
clear=$(tput clear)
Помещаем в переменную очистку экрана. Теперь проверяем:
printf '%s' $clear
echo -n $clear
После выполнения одной из этих команд, экран терминала будет очищен.
А почему просто не выполнить команду clear без этих вонючих tp...
Умеете кодить и хотите узнать, в каком направлении можно развивать свою карьеру?
Интенсивы с упором на практику вам в помощь!
Зачастую на таких коротких программах не просто учат востребованным скилам, но и объясняют, в каких сферах и профессиях они нужны.
Например, недавно Школа анализа данных Яндекса анонсировала SRE Week.
На открытом интенсиве будут рассказывать как об эксплуатации больших информационных систем, так и о задачах SRE-специалистов: траблшутинге, SLA, capacity planning и многом другом. Это отличный шанс для разработчиков попробовать себя в новой сфере, а для студентов — построить траекторию развития в IT.
SRE Week пройдёт с 17 по 22 июня. Участие бесплатное. Доступ к лекциям дают всем зарегистрированным, однако, чтобы получить сертификат, нужно пройти отбор и успешно сдать итоговую работу.
Подайте заявку до 16 июня и слушайте лекции топовых экспертов
Интенсивы с упором на практику вам в помощь!
Зачастую на таких коротких программах не просто учат востребованным скилам, но и объясняют, в каких сферах и профессиях они нужны.
Например, недавно Школа анализа данных Яндекса анонсировала SRE Week.
На открытом интенсиве будут рассказывать как об эксплуатации больших информационных систем, так и о задачах SRE-специалистов: траблшутинге, SLA, capacity planning и многом другом. Это отличный шанс для разработчиков попробовать себя в новой сфере, а для студентов — построить траекторию развития в IT.
SRE Week пройдёт с 17 по 22 июня. Участие бесплатное. Доступ к лекциям дают всем зарегистрированным, однако, чтобы получить сертификат, нужно пройти отбор и успешно сдать итоговую работу.
Подайте заявку до 16 июня и слушайте лекции топовых экспертов
SRE Week Школы анализа данных
Открытый онлайн-интенсив от ШАДа и Яндекса. Эксперты поделятся опытом работы с большими нагруженными системами и покажут, как действовать в аварийных ситуациях
Привет. Завтра оказывается внеплановый выходной, придется вечером идти за пивом и досматривать «Задача трёх тел» и «Сёгуна».
И раз такие пироги, расскажу тебе про очередную хуйню, с помощью которой я в данный момент делаю себе ой как больно.
Все посты для этого канала я пишу в Obsidian, это не только текстовый редактор, но и вообще комбайн для сбора и структурирования информации.
Короче если ищешь куда складировать знания, рекомендую присмотреться к Obsidian, работает на любой операционке, включая мобилки.
✔ И еще это основной инструмент адептов Zetelkasten.
Звучит это правда как — Флюгегехаймен!
Теперь про боли. В последни год я редко пишу код, совсем забросил свой любимый vim и успешно забыл все комбинации клавиш.
Ситуация конечно интересная — тратишь кучу времени на изучение комбинаций в vim, доводишь их до инстинктов и мышечной памяти. Но спустя месяц, все эти скиллы куда-то бесследно испаряются.
Походу как у бодибилдиров, накачал за год банки, на месяц сделал паузу и превратился снова в дрища. Ну пиздец же.
А чтобы не просрать эти скиллы, нужно ежедневно их применять. А как их применять, если нет необходимости?
Просто так дрочить вприсядку тоже не хочется, хочется чем-то полезным заниматься и не деградировать.
В общем в Obsidian есть нативная поддержка vim. Я конечно знатно прихуел, но воодушевился.
То есть я могу теперь писать для вас посты в комфортной для себя среде и не проёбывать скиллы по виму.
Это же прекрасно! 🤙
Правда я растерял всю свою прыть и поэтому приходится заново затачивать свои зажившие пальцы под аккорды вима.
Мыши кололись, плакали, но продолжали есть кактус…
Ты наверное предложишь мне писать посты сразу в виме, идея хорошая, но от Obsidian я тащусь не меньше чем от вима. Все же это немного разные инструменты.
Вот те ссылка на Obsidian чтоб не искать
Так что, теперь я совмещаю приятное с полезным. Люблю изобретать.
Может и тебя этот пост натолкнет на какие-то правильные мысли. И ты скрестишь своего бульдога с носорогом.
Кстати когда я в Obsidian включил режим VIM, он мне выдал интересный попапчик, в котором до включения режима, предложил пройти небольшой квест. Прям повеселило! 👇
tags: #рабочиебудни
—
🔔
И раз такие пироги, расскажу тебе про очередную хуйню, с помощью которой я в данный момент делаю себе ой как больно.
Все посты для этого канала я пишу в Obsidian, это не только текстовый редактор, но и вообще комбайн для сбора и структурирования информации.
Короче если ищешь куда складировать знания, рекомендую присмотреться к Obsidian, работает на любой операционке, включая мобилки.
✔ И еще это основной инструмент адептов Zetelkasten.
Цеттелькастен (нем. Zettelkasten, буквальный перевод «ящики для заметок») — система ведения заметок и управления личными знаниями, используемая в исследованиях и учёбе.
Звучит это правда как — Флюгегехаймен!
Теперь про боли. В последни год я редко пишу код, совсем забросил свой любимый vim и успешно забыл все комбинации клавиш.
Ситуация конечно интересная — тратишь кучу времени на изучение комбинаций в vim, доводишь их до инстинктов и мышечной памяти. Но спустя месяц, все эти скиллы куда-то бесследно испаряются.
Походу как у бодибилдиров, накачал за год банки, на месяц сделал паузу и превратился снова в дрища. Ну пиздец же.
А чтобы не просрать эти скиллы, нужно ежедневно их применять. А как их применять, если нет необходимости?
Просто так дрочить вприсядку тоже не хочется, хочется чем-то полезным заниматься и не деградировать.
В общем в Obsidian есть нативная поддержка vim. Я конечно знатно прихуел, но воодушевился.
То есть я могу теперь писать для вас посты в комфортной для себя среде и не проёбывать скиллы по виму.
Это же прекрасно! 🤙
Правда я растерял всю свою прыть и поэтому приходится заново затачивать свои зажившие пальцы под аккорды вима.
Мыши кололись, плакали, но продолжали есть кактус…
Ты наверное предложишь мне писать посты сразу в виме, идея хорошая, но от Obsidian я тащусь не меньше чем от вима. Все же это немного разные инструменты.
Вот те ссылка на Obsidian чтоб не искать
Так что, теперь я совмещаю приятное с полезным. Люблю изобретать.
Может и тебя этот пост натолкнет на какие-то правильные мысли. И ты скрестишь своего бульдога с носорогом.
Кстати когда я в Obsidian включил режим VIM, он мне выдал интересный попапчик, в котором до включения режима, предложил пройти небольшой квест. Прям повеселило! 👇
tags: #рабочиебудни
—
🔔
Obsidian
Obsidian - Sharpen your thinking
The free and flexible app for your private thoughts.
Как говорится никогда не строй планы заранее. Вчера я успешно задрых и проебал момент с чаркой пива и сериальчиками. Ну хоть выспался, 12 часов сна пошли на пользу.
А сегодня я принес тебе Puter. Это операционка прям в браузере. Даже терминал есть, но урезанный.
Фишка этой операционки — ты можешь ее в докере поднять у себя и радоваться, прекрасно подходит для всяких малинок если иксы ставить прям впадлу. Ну и куча софта предустановлено, открывай и пиши код до посинения.
✔ Вся эта кухня в оупенсорсе на гитхабе.
В демо версии есть хром браузер. Через него можно побегать по сайтам не светя свою жопку с айпишником.
Айпишники кстати там разные попадаются, сейчас мне показывает — Пиздастан Редмонд.
Ну ты понял, как этим можно воспользоваться 😲
Короче я принес, а ты уже сам смотри, мож где сгодится в хозяйстве. Увидимся!
tags: #services
—
🔔
А сегодня я принес тебе Puter. Это операционка прям в браузере. Даже терминал есть, но урезанный.
Фишка этой операционки — ты можешь ее в докере поднять у себя и радоваться, прекрасно подходит для всяких малинок если иксы ставить прям впадлу. Ну и куча софта предустановлено, открывай и пиши код до посинения.
✔ Вся эта кухня в оупенсорсе на гитхабе.
В демо версии есть хром браузер. Через него можно побегать по сайтам не светя свою жопку с айпишником.
Айпишники кстати там разные попадаются, сейчас мне показывает — Пиздастан Редмонд.
Ну ты понял, как этим можно воспользоваться 😲
Кстати отлично запускается порнохабина, даже ЗВУК есть!
Короче я принес, а ты уже сам смотри, мож где сгодится в хозяйстве. Увидимся!
tags: #services
—
🔔
This media is not supported in your browser
VIEW IN TELEGRAM
MaxPatrol SIEM — не делайте это сами 🦾
27 июня в 14:00 (мск)
💥 MaxPatrol SIEM берет на себя рутинную работу аналитика по мониторингу и управлению событиями.
Регистрируйтесь на онлайн-запуск MaxPatrol SIEM 8.2, чтобы узнать, как ML-модуль BAD 🤖 не только выдает второе мнение по событию в виде risk score, но и самостоятельно обнаруживает целенаправленные атаки.
Регистрируйтесь, чтобы узнать обо всех обновлениях системы и получить гайд по подключению источников. Авторы лучших вопросов получат памятные призы!
👉 Зарегистрироваться
27 июня в 14:00 (мск)
💥 MaxPatrol SIEM берет на себя рутинную работу аналитика по мониторингу и управлению событиями.
Регистрируйтесь на онлайн-запуск MaxPatrol SIEM 8.2, чтобы узнать, как ML-модуль BAD 🤖 не только выдает второе мнение по событию в виде risk score, но и самостоятельно обнаруживает целенаправленные атаки.
Регистрируйтесь, чтобы узнать обо всех обновлениях системы и получить гайд по подключению источников. Авторы лучших вопросов получат памятные призы!
👉 Зарегистрироваться
Здрасти. Такое ощущение, что сегодня понедельник.
Вчера коллега принёс вопрос — часто встречаю в настройках терминала, выбор каких-то xterm, vt100, linux, rxvt и т.п.
Чо это такое и как влияет на потенцию?
Вопрос на самом деле хороший, но его в приличном обществе предпочитают не задавать. Потому что мало кто про это вообще задумывался. По итогу эту настройку игнорируют и оставляют по умолчанию.
Давай разберемся, что же это за зверь и какой вариант выбрать правильно.
✔ TL;DR Выбирай xterm-256color
Все эти vt100, xterm и др. всё это типы терминалов. vt100 был разработан в конце 1970х, а xterm более современная версия. Но все равно все они уёбищные.
Поэтому каждый из нас выбирает что-то мастхевное, Tilix, Quake, iTerm и т.п. Их можно заточить под свои хотелки и максимально кастомизировать.
Давай посмотрим чем vt100 отличается от xterm.
Добавляем в .bashrc экспорт и перезаходим:
Теперь выполняем:
И видим что управляющие символы не сработали. А ...
Вчера коллега принёс вопрос — часто встречаю в настройках терминала, выбор каких-то xterm, vt100, linux, rxvt и т.п.
Чо это такое и как влияет на потенцию?
Вопрос на самом деле хороший, но его в приличном обществе предпочитают не задавать. Потому что мало кто про это вообще задумывался. По итогу эту настройку игнорируют и оставляют по умолчанию.
Давай разберемся, что же это за зверь и какой вариант выбрать правильно.
✔ TL;DR Выбирай xterm-256color
Все эти vt100, xterm и др. всё это типы терминалов. vt100 был разработан в конце 1970х, а xterm более современная версия. Но все равно все они уёбищные.
Поэтому каждый из нас выбирает что-то мастхевное, Tilix, Quake, iTerm и т.п. Их можно заточить под свои хотелки и максимально кастомизировать.
Давай посмотрим чем vt100 отличается от xterm.
Добавляем в .bashrc экспорт и перезаходим:
export TERM=vt100
Теперь выполняем:
echo -e "\e[31mHello Bashdays\e[0m"
И видим что управляющие символы не сработали. А ...
🚩🚩🚩🚩🚩🚩🚩
Тема: Нужен ли swap в Linux?
Мы разберем:
- что такое swap;
- нужен ли он сегодня;
- как он работает, какие данные в него уходят;
- за что на самом деле отвечает параметр swappiness;
- структуру кеша в Linux.
🏆 Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.
5️⃣6️⃣7️⃣ Не упустите возможность! Регистрируйтесь сейчас https://otus.pw/CxGq/
🔑 Специальная цена на курс «Administrator Linux. Professional» для участников.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Тема: Нужен ли swap в Linux?
Мы разберем:
- что такое swap;
- нужен ли он сегодня;
- как он работает, какие данные в него уходят;
- за что на самом деле отвечает параметр swappiness;
- структуру кеша в Linux.
🏆 Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.
5️⃣6️⃣7️⃣ Не упустите возможность! Регистрируйтесь сейчас https://otus.pw/CxGq/
🔑 Специальная цена на курс «Administrator Linux. Professional» для участников.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как говорится — у хорошего айтишника и бычий хуй веревка!
Привет. Сегодня про find и временные метки.
У утилиты find есть ключ
Формат теста такой:
Временные метки:
Поддерживаемые форматы (t):
Вот несколько из них, которые можно получить с помощью утилиты date.
Также date умеет отнимать/прибавлять даты.
Более подробно можешь почитать в гнутой доке. Или заглянуть командой:
Теперь давай поищем файлы в домашнем каталоге у которых время модификации, менялось с заданной даты. Минус 2 часа от текущего времени.
Ага, получаем ожидаемый список. Ок, теперь создадим файл bashdays.txt, у которого время модификации будет -2 часа от текущего времени.
Проверяем:
Смотрим поле Modify, ага все верно, время -2 часа от текущего времени.
Снова запускаем поиск файлов, у которых время модификации свежее времени модификации файла bashdays.txt
Выводим дополнительную информацию со временем модификации найденных файлов:
Допускается задавать разные временные метки искомых файлов и образца. Поиск файлов у которых время модификации новее времени изменения файла bashdays.txt
Чтобы узнать, при каких условиях изменяются временные метки. Можете поизучать man-страницы к системному вызову stat.
Где это можно применить? Ну например, для зачистки старых бэкапов, если предпочитаешь использовать для этого самописные скрипты. На самом деле дофига где применить можно, всё зависит от фантазии и потребностей.
Завтра выходной строим, в воскресение вернусь. Хороших предстоящих выходных, береги себя!
tags: #linux #bash
—
🔔
Привет. Сегодня про find и временные метки.
У утилиты find есть ключ
-newer
. Тест (-newer) возвращает истину, если метка X новее метки Y.Формат теста такой:
-newerXY
Y — Указывает временную метку образца.
X — Указывает временную метку искомых файлов.
Временные метки:
с — время изменения
m — время модификации
a — время последнего доступа
t — буквальное время, а не имя файла (только Y)
B — время создание файла (поддерживается не везде)
Поддерживаемые форматы (t):
Вот несколько из них, которые можно получить с помощью утилиты date.
date --rfc-3339=ns
date --rfc-2822
date +'@%s.%N'
TZ=UTC0 date +'%Y-%m-%d %H:%M:%S'
date +'%Y-%m-%d %H:%M:%S %z'
LC_ALL=C TZ=UTC0 date
Также date умеет отнимать/прибавлять даты.
date -d'- 1 hours'
Более подробно можешь почитать в гнутой доке. Или заглянуть командой:
info coreutils date
Теперь давай поищем файлы в домашнем каталоге у которых время модификации, менялось с заданной даты. Минус 2 часа от текущего времени.
find ~/ -newermt "$(date --rfc-2822 -d '- 2 hours')"
Ага, получаем ожидаемый список. Ок, теперь создадим файл bashdays.txt, у которого время модификации будет -2 часа от текущего времени.
touch -mt $(date '+%Y%m%d%H%M.%S' -d '-2 hours' ) bashdays.txt
Проверяем:
stat bashdays.txt
Смотрим поле Modify, ага все верно, время -2 часа от текущего времени.
Снова запускаем поиск файлов, у которых время модификации свежее времени модификации файла bashdays.txt
find ~/ -newermm bashdays.txt
Выводим дополнительную информацию со временем модификации найденных файлов:
find ~/ -newermm bashdays.txt -printf '%t\n'
Допускается задавать разные временные метки искомых файлов и образца. Поиск файлов у которых время модификации новее времени изменения файла bashdays.txt
find ~/ -newermc bashdays.txt -printf '%t\n'
Чтобы узнать, при каких условиях изменяются временные метки. Можете поизучать man-страницы к системному вызову stat.
Где это можно применить? Ну например, для зачистки старых бэкапов, если предпочитаешь использовать для этого самописные скрипты. На самом деле дофига где применить можно, всё зависит от фантазии и потребностей.
Завтра выходной строим, в воскресение вернусь. Хороших предстоящих выходных, береги себя!
tags: #linux #bash
—
🔔
Сегодня без прелюдий. Давай через утилиту ps узнаем время, когда был запущен процесс.
Делается это довольно просто. Для начала запустим подопытного. У меня будет гуёвая убунта. Запускаю firefox.
Можешь с ярлыка на рабочем столе его заранить. А если нет иксов, подставь cron или какой-нибудь свой скрипт который крутится в фоне.
Дальше открываем терминал и фапаем:
В ответ видим строку:
Это и есть та самая временнáя метка, когда был запущен процесс. В моем случае firefox.
Аналогично можно узнать метку любой запущенной программы или процесса.
Формат поля lstart универсальный и его понимает тест(-newer) из предыдущего поста про find.
Давай поищем файлы в домашнем каталоге, которые были модифицированы после запуска firefox.
Выводится достаточно большой список. Это хороший кейс, когда пытаешься что-то отдебажить.
Некоторые версии утилиты ps могут создать головняк...
Делается это довольно просто. Для начала запустим подопытного. У меня будет гуёвая убунта. Запускаю firefox.
/usr/bin/firefox
Можешь с ярлыка на рабочем столе его заранить. А если нет иксов, подставь cron или какой-нибудь свой скрипт который крутится в фоне.
Дальше открываем терминал и фапаем:
ps --no-headers -C firefox -o lstart
В ответ видим строку:
Sun Jun 16 05:54:24 2024
Это и есть та самая временнáя метка, когда был запущен процесс. В моем случае firefox.
Аналогично можно узнать метку любой запущенной программы или процесса.
Формат поля lstart универсальный и его понимает тест(-newer) из предыдущего поста про find.
Давай поищем файлы в домашнем каталоге, которые были модифицированы после запуска firefox.
find ~/ -newermt "$(ps --no-headers -C firefox -o lstart)"
Выводится достаточно большой список. Это хороший кейс, когда пытаешься что-то отдебажить.
Некоторые версии утилиты ps могут создать головняк...
🗓 20 июня , 18:00
📌 Selectel Network MeetUp№10. Юбилейный, терапевтический.
Коллеги из приглашают на свой десятый митап, где поднимут наболевшие темы. Обсудят работу с дешевыми и дорогими коммутаторами, организацию Wi-Fi в компании и способы защиты от сетевых атак.
Основные темы:
▫️ Защита от SYN-flood.
▫️ Работа с коммутаторами.
▫️ Опыт работы и заблуждения о Wi-Fi.
Будет полезно всем, кто работает с сетями и сетевым оборудованием, а особенно сетевым администраторам, инженерам и архитекторам.
Участие бесплатное, регистрируйтесь по ссылке и приходите в офис в Санкт-Петербурге или подключайтесь онлайн: https://slc.tl/fl4u4
Реклама ООО «Селектел» erid: 2VtzqvVQzhd
📌 Selectel Network MeetUp№10. Юбилейный, терапевтический.
Коллеги из приглашают на свой десятый митап, где поднимут наболевшие темы. Обсудят работу с дешевыми и дорогими коммутаторами, организацию Wi-Fi в компании и способы защиты от сетевых атак.
Основные темы:
▫️ Защита от SYN-flood.
▫️ Работа с коммутаторами.
▫️ Опыт работы и заблуждения о Wi-Fi.
Будет полезно всем, кто работает с сетями и сетевым оборудованием, а особенно сетевым администраторам, инженерам и архитекторам.
Участие бесплатное, регистрируйтесь по ссылке и приходите в офис в Санкт-Петербурге или подключайтесь онлайн: https://slc.tl/fl4u4
Реклама ООО «Селектел» erid: 2VtzqvVQzhd
Не переношу жару, черт его знает как в детстве мы сидели во дворе и пили водку на солнце в +45 градусов, сейчас бы я так не смог.
Сегодня будем проводить ректальное тестировать переменной PATH с помощью кишки.
Эта кишка проверяет элементы в переменной PATH. И выводит на экран которые не существуют, или к которым нет доступа на чтение.
Давай разберем каждый элемент отдельно:
Отключает функцию pathname expansion (или globbing). Это предотвращает интерпретацию символов
Устанавливает разделитель полей (Internal Field Separator, IFS) на двоеточие «:». Это необходимо для правильного разбора переменной PATH, где пути разделены двоеточием.
Запускает цикл for, который перебирает каждый элемент переменной PATH. Выражение
Внутри цикла проверяется каждый элемент «i» из PATH.
Проверяет, существует ли каталог
Если каталог не существует или недоступен для чтения, то выводится значение «i» (путь).
Думаю более менее понятно. Если видишь огромную кишку, разбивай её на части и тогда с ней проще будет разобраться.
В общем суть такая — если переменная PATH не установлена или пустая, команда завершится и будет выдано сообщение «хуй с маслом».
Поля переменной PATH отображаются на экран, если не соответствуют минимальным требованиям, или являются нулевыми. Bash будет искать в текущей директории.
✔ Минимальные требования.
Каждый элемент пути должен иметь бит исполнения. Последний элемент должен быть каталогом и обладать разрешением на чтение, исполнение.
Для запуска программы достаточно, чтоб исполняемый файл программы имел бит исполнения и все каталоги в пути имели бит исполнения, чтения (не требуется если указываете полный путь до исполняемого файла).
У меня например после запуска кишки, выдало:
Пошел смотреть и точно, в переменной PATH этот каталог указан, а физически его нет на диске.
Для исследования путей удобно использовать команду namei.
Ну а так вроде всё, изучай!
tags: #bash #linux
—
🔔
Сегодня будем проводить ректальное тестировать переменной PATH с помощью кишки.
( set -f; IFS=':'; for i in ${PATH:?'хуй с маслом'};do [[ -r "$i" && -d "$i/." ]] || echo "$i";done )
Эта кишка проверяет элементы в переменной PATH. И выводит на экран которые не существуют, или к которым нет доступа на чтение.
Давай разберем каждый элемент отдельно:
set -f
Отключает функцию pathname expansion (или globbing). Это предотвращает интерпретацию символов
*, ? и []
как шаблонов имен файлов.IFS=':'
Устанавливает разделитель полей (Internal Field Separator, IFS) на двоеточие «:». Это необходимо для правильного разбора переменной PATH, где пути разделены двоеточием.
for i in ${PATH:?'хуй с маслом'}
Запускает цикл for, который перебирает каждый элемент переменной PATH. Выражение
${PATH:?'empty path'}
проверяет, что переменная PATH не пустая; если она пустая, выводится сообщение «хуй с маслом» и выполнение прерывается.do [[ -r "$i" && -d "$i/." ]] || echo "$i"; done
Внутри цикла проверяется каждый элемент «i» из PATH.
[[ -r "$i" && -d "$i/." ]]
Проверяет, существует ли каталог
(-d "$i/.")
и доступен ли он для чтения (-r "$i")
.|| echo "$i"
Если каталог не существует или недоступен для чтения, то выводится значение «i» (путь).
Думаю более менее понятно. Если видишь огромную кишку, разбивай её на части и тогда с ней проще будет разобраться.
Это как в тайм-менеджмент, что-то там блядь про делёжку слона на маленькие кусочки.
В общем суть такая — если переменная PATH не установлена или пустая, команда завершится и будет выдано сообщение «хуй с маслом».
Поля переменной PATH отображаются на экран, если не соответствуют минимальным требованиям, или являются нулевыми. Bash будет искать в текущей директории.
man bash → PARAMETERS → Shell Variables → PATH
PATH The search path for commands. It is a colon-separated list of directories in which the shell looks for commands (see COMMAND EXECUTION below). A zero-length (null) directory name in the value of PATH indicates the current directory. A null directory name may appear as two adjacent colons, or as an initial or trailing colon. The default path is system-dependent, and is set by the administrator who installs bash. A common value is `/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin'
✔ Минимальные требования.
Каждый элемент пути должен иметь бит исполнения. Последний элемент должен быть каталогом и обладать разрешением на чтение, исполнение.
Для запуска программы достаточно, чтоб исполняемый файл программы имел бит исполнения и все каталоги в пути имели бит исполнения, чтения (не требуется если указываете полный путь до исполняемого файла).
У меня например после запуска кишки, выдало:
/snap/bin
Пошел смотреть и точно, в переменной PATH этот каталог указан, а физически его нет на диске.
Для исследования путей удобно использовать команду namei.
namei -m /etc
f: /etc
drwxr-xr-x /
drwxr-xr-x etc
Тему про PATH поднимал раннее в этом посте.
Ну а так вроде всё, изучай!
tags: #bash #linux
—
🔔
╯╭┳┳┳╮╰┈╮╰┈╯╭┈╮
╮┣╭━╮┃▕╲╰┈┈┈╯╱▏
┊┣┃┈╰╯▕╱▔▔▔▔▔╲▏
╯┣╰┳┳┳┳▏▊┈▂┈▊▕╭
╮╰━▏┊┊┊╲┈╰┻╯┈╱┊
╰╮┊▏▂▂▂▂▔▂▕▔▔╭╯
╮┊▕▂▏▂▏▕▂▏▂▏╭╯
Тыкни и подпишись на GITHUB котика
╮┣╭━╮┃▕╲╰┈┈┈╯╱▏
┊┣┃┈╰╯▕╱▔▔▔▔▔╲▏
╯┣╰┳┳┳┳▏▊┈▂┈▊▕╭
╮╰━▏┊┊┊╲┈╰┻╯┈╱┊
╰╮┊▏▂▂▂▂▔▂▕▔▔╭╯
╮┊▕▂▏▂▏▕▂▏▂▏╭╯
Тыкни и подпишись на GITHUB котика
Здравствуйте товарищи. Ну чо, как оно?
Поехали еBash’ить. Сегодня разберем интересную задачку, которую я подкидываю на собесы. Задача со звездочкой.
Суть задачи: нужно вывести строки в окно терминала и пронумеровать их используя только один вызов sed. Аналогично выводу команды nl.
То есть должно получиться такое:
Только это нужно сделать с помощью одного вызова sed.
Обычно кто берется ее решать, спустя какое-то время говорят — Роман, иди нахуй, это сделать невозможно!
Так говорят бедолаги, которым либо лень что-то делать, либо писька еще не отросла. Всё возможно, было бы желание.
Короче поехали решать. Давай попробуем сразу с sed несколько вариантов.
Ну чет да… ожидаемый результат совсем не ожидаемый.
Дело в том, что когда sed встречает команду «=», он тут же пишет текущий номер строки с завершающим символом «\n» или «\0». То есть номер и строка разделены «\n» или «\0».
Поэтому в примерах по sed для решения этой задачи, используют два вызова.
Вот так всё корректно отработает, но задачу мы не решили, условия другие. Нам можно использовать лишь один sed.
✔ Чо будем делать? Думать ёпта!
Для начала надо посмотреть, а что мы имеем и на что можем повлиять.
Утилита sed пишет строки. Куда она их пишет? Вот и решение…
Вставляем в начало каждой строки, управляющую последовательность. Которая переместит курсор на предыдущую строку и установит его например в 3 колонку.
Получаем ожидаемый результат:
Поздравляю! Задача решена с помощью всего лишь одного вызова sed.
Изучай. Всех с пятницей и хороших предстоящих выходных. Береги себя!
tags: #bash #linux
—
🔔
Поехали еBash’ить. Сегодня разберем интересную задачку, которую я подкидываю на собесы. Задача со звездочкой.
Суть задачи: нужно вывести строки в окно терминала и пронумеровать их используя только один вызов sed. Аналогично выводу команды nl.
То есть должно получиться такое:
printf '%s\n' {a..d} | nl
1 a
2 b
3 c
4 d
Только это нужно сделать с помощью одного вызова sed.
Обычно кто берется ее решать, спустя какое-то время говорят — Роман, иди нахуй, это сделать невозможно!
Так говорят бедолаги, которым либо лень что-то делать, либо писька еще не отросла. Всё возможно, было бы желание.
Короче поехали решать. Давай попробуем сразу с sed несколько вариантов.
printf '%s\n' {a..d} | sed '='
printf '%s\n' {a..d} | sed -n 'p;='
printf '%s\n' {a..d} | sed -n '=;p'
Ну чет да… ожидаемый результат совсем не ожидаемый.
Дело в том, что когда sed встречает команду «=», он тут же пишет текущий номер строки с завершающим символом «\n» или «\0». То есть номер и строка разделены «\n» или «\0».
Поэтому в примерах по sed для решения этой задачи, используют два вызова.
printf '%s\n' {a..d} | sed '=' | sed 'N;s/\n/ /'
Вот так всё корректно отработает, но задачу мы не решили, условия другие. Нам можно использовать лишь один sed.
✔ Чо будем делать? Думать ёпта!
Для начала надо посмотреть, а что мы имеем и на что можем повлиять.
Утилита sed пишет строки. Куда она их пишет? Вот и решение…
Вставляем в начало каждой строки, управляющую последовательность. Которая переместит курсор на предыдущую строку и установит его например в 3 колонку.
printf '%s\n' {a..d} | sed '=;s/^/\x1b[1A\x1b[3G/'
Получаем ожидаемый результат:
1 a
2 b
3 c
4 d
Поздравляю! Задача решена с помощью всего лишь одного вызова sed.
Если очевидные решения не приносят результата, всегда можно воспользоваться неочевидными. Благо таких неочевидных решений бесконечное множество.
Изучай. Всех с пятницей и хороших предстоящих выходных. Береги себя!
tags: #bash #linux
—
🔔
Зрасти. Сегодня замутим простую проверку корректности формата файла. Для этого воспользуемся утилитой sed.
Вводные
Есть файл с последовательностью символов
Пример такого файла:
Теперь нужно, чтобы при проверке такого файла, программа прерывалась и выводила номер строки, которая нарушает формат. Если файл содержит допустимую последовательность или пустой, то — молчим.
✔ Создаем скрипт check
Необычно? Необычно! Это скрипт на языке Sed. Давай Разберем, что тут происходит.
… аналогично для 2 и 3
Погнали чекать кейсы. Не забудь на check впиздярить
1. Выводится 3 номер строки
2. Пусто. Файл валиден.
3. Выводится 9 номер строки
4. Пусто. Файл валиден.
5. Пусто. Файл валиден.
6. Выводится 7 номер строки
Чтиво: адресация, команды, шаблоны
tags: #bash #linux
—
🔔
Вводные
Есть файл с последовательностью символов
1, 2, 3, 4, 5
. Каждая цифра с новой строки. Эти символы могут располагаться в любой позиции строки. Строка может содержать другие символы отличные от символов заданной последовательности. Пример такого файла:
1
2
3
4
a1
b2
3c
4d
Теперь нужно, чтобы при проверке такого файла, программа прерывалась и выводила номер строки, которая нарушает формат. Если файл содержит допустимую последовательность или пустой, то — молчим.
✔ Создаем скрипт check
#!/usr/bin/sed -nf
$bE ; /1/!bE ; n
$bE ; /2/!bE ; n
$bE ; /3/!bE ; n
/4/b
:E = ; q
Необычно? Необычно! Это скрипт на языке Sed. Давай Разберем, что тут происходит.
$bE
= Если находимся на последней строке переход к метке «E»./1/!bE ; n
= Если текущая строка не содержит 1, переход к метке «E». В противном случае переходим к следующей строке.… аналогично для 2 и 3
/4/b
= Если текущая строка содержит 4, перейти в конец скрипта.:E = ; q
= метка «E» печатает текущую строку и завершает выполнение.Погнали чекать кейсы. Не забудь на check впиздярить
+x
.printf '%s\n' {1..3} | ./check
printf '%s\n' {1..4} | ./check
printf '%s\n' {1..4} {1..5} | ./check
printf '%s\n' {1..4} {1..4} | ./check
printf '%s\n' a{1..4} b{1..4} | ./check
printf '%s\n' a{1..4} b{1..3} | ./check
1. Выводится 3 номер строки
2. Пусто. Файл валиден.
3. Выводится 9 номер строки
4. Пусто. Файл валиден.
5. Пусто. Файл валиден.
6. Выводится 7 номер строки
Вместо перехода на метку можно просто выходить и возвращать нужное значение с помощью команды «q» которая в GNU версии принимает аргумент.
Чтиво: адресация, команды, шаблоны
tags: #bash #linux
—
🔔
Забавная хуита. Виндовз что с тобой?
Короче если создать текстовый файл с содержимым «This content is no longer available.» и сохранить его, винда начинает жестко угорать.
Мол, вы пиздец хакер и только что создали вирус под названием Trojan:Win32/Casdet!rfn. Касдет-пиздет.
Прикольно. Что-то из оперы EICAR
По-видимому, это коллизия хэшей. Потому что только Windows Defender его детектит, вот репорт с вирус-тотал.
tags: #мозготрах
—
🔔
Короче если создать текстовый файл с содержимым «This content is no longer available.» и сохранить его, винда начинает жестко угорать.
Мол, вы пиздец хакер и только что создали вирус под названием Trojan:Win32/Casdet!rfn. Касдет-пиздет.
Trojan:Win32/Casdet!rfn – это вредоносная программа, относящаяся к категории удаленного доступа (RAT). Она позволяет злоумышленникам получить контроль над вашим компьютером, красть ваши данные и устанавливать другие вредоносные программы.
Прикольно. Что-то из оперы EICAR
X5O!P%[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
По-видимому, это коллизия хэшей. Потому что только Windows Defender его детектит, вот репорт с вирус-тотал.
tags: #мозготрах
—
🔔
🗓 27 июня, 16:00
📌 Как быстро мигрировать инфраструктуру в Selectel
На бесплатном вебинаре от коллеги расскажут, как перенести инфраструктуру с минимальным даунтаймом и при этом предусмотреть все нюансы миграции. Сколько времени занимает переезд проекта, с какими проблемами можно столкнуться и как убедиться, что после миграции ничего не сломалось.
Основные темы:
◽️ План переноса.
◽️ Потенциальные проблемы.
◽️ Инструменты для миграции.
◽️ Тестирование сервисов.
Все участники смогут принять участие в акции «100% скидка на облачные ресурсы на 1 месяц» и получат типовой план переноса инфраструктуры.
Регистрируйтесь на мероприятие и участвуйте в розыгрыше приза за лучший вопрос: https://slc.tl/rkovh
Реклама ООО «Селектел» erid: 2VtzquiyU5m
📌 Как быстро мигрировать инфраструктуру в Selectel
На бесплатном вебинаре от коллеги расскажут, как перенести инфраструктуру с минимальным даунтаймом и при этом предусмотреть все нюансы миграции. Сколько времени занимает переезд проекта, с какими проблемами можно столкнуться и как убедиться, что после миграции ничего не сломалось.
Основные темы:
◽️ План переноса.
◽️ Потенциальные проблемы.
◽️ Инструменты для миграции.
◽️ Тестирование сервисов.
Все участники смогут принять участие в акции «100% скидка на облачные ресурсы на 1 месяц» и получат типовой план переноса инфраструктуры.
Регистрируйтесь на мероприятие и участвуйте в розыгрыше приза за лучший вопрос: https://slc.tl/rkovh
Реклама ООО «Селектел» erid: 2VtzquiyU5m