📌 Основы регулярных выражений (RegEx)
🔹 Символы для поиска
. – любой символ, кроме новой строки
\w – любой буквенно-цифровой символ + _
\W – любой НЕ буквенно-цифровой символ
\d – любая цифра (0-9)
\D – любой НЕ цифровой символ
\s – любой пробельный символ
\S – любой НЕ пробельный символ
🔹 Якоря
^ – начало строки
$ – конец строки
\b – граница слова
\B – НЕ граница слова
🔹 Квантификаторы
* – 0 или больше повторений
+ – 1 или больше повторений
? – 0 или 1 повторение
{n} – ровно n повторений
{n,} – n или больше повторений
{n,m} – от n до m повторений
🔹 Классы символов
[abc] – любой из символов a, b, c
[^abc] – любой символ, кроме a, b, c
[a-z] – любой символ от a до z
[0-9] – любая цифра от 0 до 9
🔹 Группы и альтернативы
(...) – захватывающая группа
(?:...) – НЕ захватывающая группа
| – “или” между выражениями
🔹 Экранирование специальных символов
\ – экранирование (\. означает точку)
🔹 Примеры
\d{3}-\d{2}-\d{4} – совпадает с SSN (123-45-6789)
\w+@\w+\.\w+ – совпадает с email-адресом
📌 Полезно при поиске, валидации данных и обработке текста!
👉 @sysadminof
🔹 Символы для поиска
. – любой символ, кроме новой строки
\w – любой буквенно-цифровой символ + _
\W – любой НЕ буквенно-цифровой символ
\d – любая цифра (0-9)
\D – любой НЕ цифровой символ
\s – любой пробельный символ
\S – любой НЕ пробельный символ
🔹 Якоря
^ – начало строки
$ – конец строки
\b – граница слова
\B – НЕ граница слова
🔹 Квантификаторы
* – 0 или больше повторений
+ – 1 или больше повторений
? – 0 или 1 повторение
{n} – ровно n повторений
{n,} – n или больше повторений
{n,m} – от n до m повторений
🔹 Классы символов
[abc] – любой из символов a, b, c
[^abc] – любой символ, кроме a, b, c
[a-z] – любой символ от a до z
[0-9] – любая цифра от 0 до 9
🔹 Группы и альтернативы
(...) – захватывающая группа
(?:...) – НЕ захватывающая группа
| – “или” между выражениями
🔹 Экранирование специальных символов
\ – экранирование (\. означает точку)
🔹 Примеры
\d{3}-\d{2}-\d{4} – совпадает с SSN (123-45-6789)
\w+@\w+\.\w+ – совпадает с email-адресом
📌 Полезно при поиске, валидации данных и обработке текста!
👉 @sysadminof
👍9✍1
Подборка Telegram каналов для программистов
https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
https://t.me/bash_srv Bash Советы
https://t.me/win_sysadmin Системный Администратор Windows
https://t.me/lifeproger Жизнь программиста. Авторский канал.
https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.me/rabota1C_rus Вакансии для программистов 1С
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.me/DevLab1C 1С:Предприятие 8
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Telegram
Bash Советы
🚀 Секреты и советы по Bash
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале.
🔹 Автоматизация, скрипты и оптимизация работы в Linux.
🔹 Стать мастером Bash легко – просто подпишись!
💻 Прокачивай терминал вместе с нами! 👇
👍3
Уровни коммутаторов L1, L2, L3, L4
Существует несколько уровней, различающихся по своим задачам, целям использования и местоположению в сетевой инфраструктуре. Это может быть уровень ядра, агрегации, доступа, распределения и прочие варианты. Разделение является частью иерархической архитектуры сети и используется для оптимизации производительности, масштабируемости и контролируемости сети в зависимости от конкретных нужд организации.
https://telegra.ph/Urovni-kommutatorov-03-16
👉 @sysadminof
Существует несколько уровней, различающихся по своим задачам, целям использования и местоположению в сетевой инфраструктуре. Это может быть уровень ядра, агрегации, доступа, распределения и прочие варианты. Разделение является частью иерархической архитектуры сети и используется для оптимизации производительности, масштабируемости и контролируемости сети в зависимости от конкретных нужд организации.
https://telegra.ph/Urovni-kommutatorov-03-16
👉 @sysadminof
👍9👎4❤1
Дело всегда в TCP_NODELAY
Занимаясь отладкой проблем в легаси-системах, я первым делом проверяю, включён ли режим
Но для начала давайте проясним, о чём вообще речь. Лучше всего нам в этом поможет документ RFC896, изданный Джоном Нейглом в 1984 году. Вот описание задачи:
https://habr.com/ru/companies/ruvds/articles/890874/
👉 @sysadminof
Занимаясь отладкой проблем в легаси-системах, я первым делом проверяю, включён ли режим
TCP_NODELAY
. И так делаю не только я. Все знакомые мне разработчики распределённых систем потратили немало часов на решение проблем с задержкой, которые быстро исправлялись простым включением этой опции сокета, указывая на ошибочность базовых настроек или использование устаревшей концепции.Но для начала давайте проясним, о чём вообще речь. Лучше всего нам в этом поможет документ RFC896, изданный Джоном Нейглом в 1984 году. Вот описание задачи:
Обработка малых пакетов сопряжена с одной специфичной проблемой. Когда для передачи односимвольных сообщений с клавиатуры используется TCP, обычно для отправки одного байта полезных данных задействуется пакет размером 41 байт (один байт данных и 40 байт заголовка). Такие издержки в 4 000%, конечно, раздражают, но в слабо нагруженных сетях ещё терпимы.
https://habr.com/ru/companies/ruvds/articles/890874/
👉 @sysadminof
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Про Linux
1 - навигация по файловой системе
2 - Операции с файлами и папками
3 - Команда Grep: поиск по файлам и папкам
4 - Aliases: как упростить работу в терминале
5 - Как установить MySQL на Ubuntu/Mint
6 - Как установить PostgreSQL на Ubuntu/Mint
7.1 - crontab: запуск задач по расписанию
7.2 - crontab: как запускать Python-скрипт по расписанию
источник
👉 @sysadminof
1 - навигация по файловой системе
2 - Операции с файлами и папками
3 - Команда Grep: поиск по файлам и папкам
4 - Aliases: как упростить работу в терминале
5 - Как установить MySQL на Ubuntu/Mint
6 - Как установить PostgreSQL на Ubuntu/Mint
7.1 - crontab: запуск задач по расписанию
7.2 - crontab: как запускать Python-скрипт по расписанию
источник
👉 @sysadminof
👍11
Ravada - Менеджер удаленных виртуальных рабочих столов
Это программа, позволяющая пользователю подключаться к удаленному виртуальному рабочему столу. Ravada предназначена для системных администраторов, имеющих некоторый опыт работы с GNU/Linux и желающих развернуть проект VDI.
Его внутренняя часть была разработана и реализована таким образом, чтобы обеспечить возможность добавления в фреймворк будущих гипервизоров. В настоящее время поддерживается KVM, в планах - LXC.
Требования к клиенту следующие: наличие web-браузера и программы удаленного просмотра, поддерживающей протокол spice.
В текущем релизе мы используем гипервизоры KVM: KVM в качестве бэкенда для виртуальных машин. Поддержка LXC находится в стадии разработки.
https://github.com/UPC/ravada
👉 @sysadminof
Это программа, позволяющая пользователю подключаться к удаленному виртуальному рабочему столу. Ravada предназначена для системных администраторов, имеющих некоторый опыт работы с GNU/Linux и желающих развернуть проект VDI.
Его внутренняя часть была разработана и реализована таким образом, чтобы обеспечить возможность добавления в фреймворк будущих гипервизоров. В настоящее время поддерживается KVM, в планах - LXC.
Требования к клиенту следующие: наличие web-браузера и программы удаленного просмотра, поддерживающей протокол spice.
В текущем релизе мы используем гипервизоры KVM: KVM в качестве бэкенда для виртуальных машин. Поддержка LXC находится в стадии разработки.
https://github.com/UPC/ravada
👉 @sysadminof
👍4
Mikrotik и несколько провайдеров. Балансировка каналов
Как мы уже говорили, сегодня очень многие рабочие процессы прямо зависят от наличия доступа в интернет, поэтому несколько каналов доступа - это не прихоть и не роскошь, а насущная необходимость. Одной из первых задач, которые решаются несколькими каналами, является отказоустойчивость, но потом возникают иные вопросы, а именно полноценное использование двух каналов, ведь это совсем не дело если оплаченный резервный канал простаивает. Поэтому в данной статье мы разберем методы балансировки каналов на оборудовании Mikrotik и рассмотрим связанные с этим проблемы и способы их решения.
https://telegra.ph/Mikrotik-i-neskolko-provajderov-Balansirovka-kanalov-03-18
👉 @sysadminof
Как мы уже говорили, сегодня очень многие рабочие процессы прямо зависят от наличия доступа в интернет, поэтому несколько каналов доступа - это не прихоть и не роскошь, а насущная необходимость. Одной из первых задач, которые решаются несколькими каналами, является отказоустойчивость, но потом возникают иные вопросы, а именно полноценное использование двух каналов, ведь это совсем не дело если оплаченный резервный канал простаивает. Поэтому в данной статье мы разберем методы балансировки каналов на оборудовании Mikrotik и рассмотрим связанные с этим проблемы и способы их решения.
https://telegra.ph/Mikrotik-i-neskolko-provajderov-Balansirovka-kanalov-03-18
👉 @sysadminof
👍4❤1
Как увеличить размер каталога /tmp/
Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
Теперь проверим, есть ли у нас каталог в фстабе:
Если нет, создаем, если существует то выполняем следующую команду:
Теперь готов каталог
👉 @sysadminof
Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
# mount -t tmpfs tmpfs /tmp -o size=1024M,mode=1777,remount
Теперь проверим, есть ли у нас каталог в фстабе:
# cat/etc/fstab
Если нет, создаем, если существует то выполняем следующую команду:
# none /tmp tmpfs size=1024M,mode=1777,rw 0 0
Теперь готов каталог
/tmp/
с размером, указанным в операторе “size” размером 1024 mb.👉 @sysadminof
👍4
Как отлаживать bash-script-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
👉 @sysadminof
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после #!/bin/bash, чтоб скрипт можно было отлаживать по шагам
#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем Ctrl+C и выходим из отладки.
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👉 @sysadminof
👍10
Работа с протоколом Ethernet
Введение
Общие сведения о сетях
Стандарты Ethernet (часть I, часть II)
Коммутация
VLAN
Безопасность (часть I, часть II)
источник
👉 @sysadminof
Введение
Общие сведения о сетях
Стандарты Ethernet (часть I, часть II)
Коммутация
VLAN
Безопасность (часть I, часть II)
источник
👉 @sysadminof
👍7❤2