По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Интересным вопросом в Linux системах, является управление регулярными выражениями. Это полезный и необходимый навык не только профессионалам своего дела, системным администраторам, но, а также и обычным пользователям линуксоподобных операционных систем. В данной статье я постараюсь раскрыть, как создавать регулярные выражения и как их применять на практике в каких-либо целях. Основной областью применение регулярных выражений является поиск информации и файлов в линуксоподобных операционных системах. Для работы в основном используются следующие символы: " ext" - слова начинающиеся с text "text/" - слова, заканчивающиеся на text "^" - начало строки "$" - конец строки "a-z" - диапазон от a до z "[^t]" - не буква t "[" - воспринять символ [ буквально "." - любой символ "a|z" - а или z Регулярные выражения в основном используются со следующими командами: grep - утилита поиска по выражению egrep - расширенный grep fgrep - быстрый grep rgrep - рекурсивный grep sed - потоковый текстовый редактор. А особенно с утилитой grep. Данная утилита используется для сортировки результатов чего либо, передавая ей результаты по конвейеру. Эта утилита осуществляет поиск и передачу на стандартный вывод результат его. ЕЕ можно запускать с различными ключами, но можно использовать ее другие варианты, которые представлены выше. И есть еще потоковый текстовый редактор. Это не полноценный текстовый редактор, он просто получает информацию построчно и обрабатывает. После чего выводит на стандартный вывод. Он не изменяет текстовый вывод или текстовый поток, он просто редактирует перед тем как вывести его для нас на экран. Начнем со следующего. Создадим один пустой файл file1.txt, через команду touch. Создадим в текстовом редакторе в той же директории файл file.txt. Как мы видим в файле file.txt просто набор слов. Далее мы с помощью данных слов посмотрим, как работают команды. Первая команда - grep man grep Получаем справку по данной команде. Как можно понять из справки команда grep и ее производные - это печать линий совпадающих шаблонов. Проще говоря, команда grep помогает сортировать те данные, что мы даем команде, через знак конвейера на ввод. Причем в мануале мы можем видеть egrep, fgrep и т.д. данные команды мы можем не использовать. Использовать можно только grep с ключами различными, т.е. ключи просто заменяют эти команды. Можно на примере посмотреть, как работает данная команда. Например, grep oo file.txt На картинке видно, что команда из указанного файла выбрала по определенному шаблону "oo". Причем даже делает красным цветом подсветку. Можно добавить еще ключик -n, тогда данная команда еще и выведет номер строки в которой находится то, что ищется по шаблону. Это полезно, когда работаем с каким-нибудь кодом или сценарием. Когда необходимо, что-то найти. Сразу видим, где находится объект поиска или что-то ищем по логам. При использовании шаблона очень важно понимать, что команда grep, чувствительна к регистрам в шаблонах. Это означает, что Boo и boo это разные шаблоны. В одном случае команда найдет слово, а в другом нет. Можно команде сказать, чтобы она не учитывала регистр. Это делается с помощью ключа -i. Посмотрим содержимое нашего каталога командой ls, а затем отфильтруем только то, что заканчивается на "ile". Получается следующее, когда мы даем на ввод команде grep шаблон и где искать, он работает с файлом, а когда мы даем команду ls она выводи содержимое каталога и мы это содержимое передаем по конвейеру на команду grep с заданным шаблоном. Соответственно grep фильтрует переданное содержимое согласно шаблона и выводит на экран. Получается, что команде grep дали, то команда и обработала. Наглядно можно посмотреть на рисунке выше. Мы просматриваем командой cat содержимое файла и подаем на ввод команде grep с фильтрацией по шаблону. Давайте найдем файлы в которых содержится сочетание "ple". grep ple file.txt в данном случае команда нашла оба слова содержащие шаблон. Давайте найдем слово, которое будет начинаться с "ple". Команда будет выглядеть следующим образом: grep ^ple file.txt. Значок "^" указывает на начало строки. Противоположная задача найти слова, заканчивающиеся на "ple". Команда будет выглядеть следующим образом grep ple$ file.txt. Т.е. применять к концу строки, говорит значок "$" в шаблоне. Можно дать команду grep .o file.txt. В данном выражении знак "." , заменяет любую букву. Как вы видите вывод шаблона ".ple" вывел только одно слово т.к только слово couple удовлетворяло шаблону , т.к перед "ple" должен был содержаться еще один символ любой. Попробуем рассмотреть другую команду egrep. egrep (Extended grep) man egrep - отошлет к справке по grep. Данная команда позволяет использовать более расширенный набор шаблонов. Рассмотрим следующий пример команды: egrep '^(b|d)' file.txt Шаблон заключается в одинарные кавычки, для того чтобы экранировать символы, и команда egrep поняла, что это относится к ней и воспринимала выражение как шаблон. Сам же шаблон означает, что поиск будет искать слова, в начале строки (знак ^) содержащие букву b или d. Мы видим, что команда вернула слова, начинающиеся с буквы b или d. Рассмотрим другой вариант использования команды egrep. Например: egrep '^[a-k]' file.txt Получим все слова, начинающиеся с "a" по "к". Знак "[]" - диапазона. Как мы видим слова, начинающиеся с большой буквы, не попали. Все эти регулярные выражения очень пригодятся, когда мы что-то ищем в файлах логах. Усложним еще шаблон. Возьмем следующий: egrep '^[a-k]|[A-K]' file.txt Усложняя выражение, мы добавили диапазон заглавных букв сказав команде grep искать диапазон маленьких или диапазон больших букв с начала строки. Вот теперь все хорошо. Слова с Заглавными буквами тоже отобразились. Как вариант egrep можно запускать просто grep с ключиком -e. Про fgrep man fgrep - отошлет к справке по grep. Команда fgrep не понимает регулярных выражений вообще. Получается следующим образом если мы вводим: egrep c$ file.txt. То команда согласно шаблону, ищет в файле букву "c" в конце слова. В случае же с командой fgrep c$ file.txt, команда будет искать именно сочетание "с$". Т.е. команда fgrep воспринимает символы регулярных выражений, как обычные символы, которые ей нужно найти, как аргументы. Рекурсивный rgrep Создадим каталог mkdir folder . Создадим файл great.txt в созданной директории folder со словом Hello при помощью команды echo "Hello" folder/great.txt И если мы скажем grep Hello * , поищи слово Hello в текущей директории. Получится следующая картина. Как мы видим grep не может искать в папках. Для таких случаев и используется утилита rgrep. rgrep Hello * Дает следующую картину. Совершенно спокойно в папке найдено было, то что подходило под шаблон. Данная утилита пробежалась по всем папкам и файлам в них и нашла подходящее под шаблон слово. Т.е. если нам необходимо провести поиск по всем файлам и папкам, то необходимо использовать утилиту rgrep. Команда sed man sed - стрим редактор. Т.е потоковый редактор для фильтрации и редактирования потока данных. Например, sed -e ‘s/oo/aa’ file.txt - открыть редактор sed и заменить вывод всех oo на aa в файле file.txt. Нужно понимать, что в результате данной команды изменения в файле не произойдут. Просто данные из файла будут взяты и с изменениями выведены на стандартный вывод, т.е. экран. Для сохранения результатов мы можем сказать, чтобы вывел в новый файл указав направление вывода. sed -e ‘s/oo/aa’ file.txt newfile.txt В данном редакторе мы можем ему сказать использовать регулярные выражения, для этого необходимо добавить ключ -r. У данного редактора очень большой функционал.
img
Когда вы только начинаете свой путь в IT, естественно и правильно сфокусироваться на изучении языков программирования, стремиться к сертификатам и пополнению портфолио новыми проектами. Но быть выдающимся специалистом —  не значит только лишь блестяще владеть техническими навыками. Если вы хотите подняться на новую ступень карьерной лестницы, нужно продемонстрировать нечто большее, чем просто умение писать код. Исследования в области карьерного образования показывают, что работодатели признают важность софт-скиллов при приеме на работу. Но есть загвоздка: хоть большинство работодателей и согласны с важностью софт-скиллов, мало кто может ответить, какие именно из них критически важны.  Наличие софт-скиллов означает быть доступным, приятным, надежным и заслуживающим доверия – по сути, тем, с кем другим людям нравится работать и о котором они хотят узнать больше. Это открывает вам двери для новых возможностей. В этой статье перечислим 5 наиболее значимых софт скиллов для программистов, а также расскажем, на что обратить внимание при развитии этих навыков. Что такое софт-скиллы Софт-скиллы не связаны с прямыми трудовыми обязанностями сотрудника. В ИТ — это навыки, которые не имеют прямого отношения к разработке или тестированию, но все же необходимы для успешной работы в команде. Люди часто ошибочно приравнивают софт-скиллы к умению общаться, но это не всегда так. Вообще софт-скиллы делятся на две категории: общение (межличностное общение и эмоциональный интеллект) и постановка целей (лидерство, самоконтроль, управление временем). Зачем все это программисту, если его основная задача — написание кода? Самый минимум для каждого профи — это умение эффективно общаться с коллегами. Сегодня большинство продуктов создаются командами, поскольку в одиночку разработать успешный и прибыльный проект практически невозможно. Да, вы можете вложить свой талант, время и усилия, работая без посторонней помощи. Но шансы на успех будут намного выше, если вы будете работать с другими специалистами. ? Быть командным игроком без навыков межличностного общения (умения задавать вопросы, слушать и аргументировать свою точку зрения) практически невозможно. Программистам также нужны софт-скиллы, чтобы планировать свое время, ставить эффективные цели и управлять своими эмоциями.? ? Рано или поздно вы, вероятно, начнете думать о карьерном росте: с каждой новой ступенькой значение soft skills возрастает. Вы просто не сможете получить должность руководителя группы или менеджера без лидерских качеств, эмоционального интеллекта или навыков управления конфликтами.  У многих людей эти навыки не появятся сами по себе – их нужно начинать развивать уже сейчас. И к развитию софт-скиллов следует относиться не менее серьезно, чем к хард-скиллам. Итак, о каких именно навыках идет речь? Давайте разберемся. Коммуникация Программист — это, в первую очередь, технический специалист. Согласитесь, что без специальных знаний коллега без аналогичных знаний просто не поймет, чем вы занимаетесь. И здесь на сцену выходит коммуникативный навык — софт-скилл, который поможет успешно обсуждать свою работу с командой, менеджерами проектов и другими отделами.  Обмен идеями и фидбеком — естественная часть командной работы, но чтобы прийти к успеху в переговорах, вам нужно уметь формулировать свои идеи и относиться к коллегам с уважением. Два профессионала с противоположными идеями должны не спорить, а дискутировать, а для этого необходим эмоциональный интеллект. Коммуникация в рабочих вопросах требует непредвзятости и готовности слушать — в конце концов, чужая идея и правда может оказаться лучше вашей, и это нормально. Единственный способ понять это — переключиться с продвижения собственных предположений на поиск рабочего решения. В бизнесе это часто называют «политикой победы лучших идей» или громоздким термином « меритократия идей ».  Креативность На первый взгляд кажется, что креативность нужна лишь в работе творческих специалистов — художников, дизайнеров и контентщиков. Что тут может предложить программист? На самом деле дела обстоят так: работодатель нанимает вас как профи потому, что вы можете предложить компании что-то уникальное.  Какой бы шаблонной задачей вы не занимались, помните, что вы не просто AI, который может воспроизвести все решения, описанные в учебниках. Вы — классный специалист, который может усовершенствовать любую технологию и придумать нестандартный выход из самой сложной ситуации. Это и есть софт-скилл, который называется креативностью. Найдите возможность творить в своей сфере — и вы поймете, как этот навык повышает ваши шансы на должность мечты. Сотрудничество Расти в карьере — цель многих разработчиков, но важно соблюдать баланс между своими интересами и и интересами команды. Навык сотрудничества также связан с «политикой лучших идей», ведь открытый, дружелюбный специалист может стать той важной точкой, в которой, как в идеальном блюде, сойдутся мысли его команды, собственные идеи и конструктивная критика руководства. Да, в некоторых случаях это означает, что для реализации выберут не вашу идею или решение. Но глобально навыки общения и командной работы принесут только пользу вашей карьере. Если ваша цель — новые грейды и зарплата, роль руководителя может запросто стать вашим будущим. А это значит, что умение слушать, принимать чужую точку зрения и раскрывать сильные стороны своей команды — ключевые навыки. Эмпатия и эмоциональный интеллект Эмпатия — это умение понять, что другой человек чувствует в данный момент. Софт-скиллы программиста начинаются с понимания человеческих взаимодействий, а эмоциональный интеллект играет ключевую роль в этом процессе. Эмпатия, как и коммуникация, помогает понимать точку зрения людей, не связанных с разработкой, и совместно находить решения проблем. Разработчики также должны понимать нужды конечных пользователей, так как изменение требований является обычной практикой в Agile-разработке. Обладая высоким эмоциональным интеллектом, вы сможете: сохранять спокойствие, когда вы сталкиваетесь с непредвиденными обстоятельствами; сохранять фокус на достижении целей организации; понимать проблемы, с которыми могут столкнуться коллеги, и оказывать им помощь. 5. Тайм-менеджмент  Тайм-менеджмент — важнейший навык, когда дело касается работы в IT. Как правило, у программистов есть заинтересованные люди на разных сторонах проекта — и руководители, и заказчики, и конечные пользователи, и PM’ы — и всем важно увидеть результат в срок. Грамотная организация времени помогает сосредоточиться на важных целях и приоритетах, что сделает работу более целенаправленной и эффективной. Неочевидный бонус тайм-менеджмента состоит в том, что когда мы управляем своим временем эффективно, у нас есть больше свободы для отдыха, релаксации, хобби и личного развития — а это повышает качество жизни и хорошо влияет на работу. Что учесть при прокачке софт-скиллов Важно понимать, что софт-скиллы ничем не отличаются от любых других навыков. Вы должны практиковать их регулярно, если хотите прийти к совершенству, и может пройти некоторое время, прежде чем они начнут приносить свои плоды.  Первый шаг к самосовершенствованию — это оценка имеющихся у вас навыков и областей, в которых вы можете вырасти. Подумайте о своей эффективности на рабочем месте и составьте список способностей, которые вы хотите прокачать. Допустим, проблема в том, что вы не всегда четко излагаете свою позицию. В результате между вами и вашими коллегами часто возникают недопонимания, что замедляет совместную работу. Это может привести к срыву сроков, конфликтам и финансовым потерям. «Почему» ясно: вам нужно работать над этим навыком ради своей команды и своей компании. Беспристрастный взгляд коллеги или руководителя также поможет вам оценить ваш уровень софт-скиллов. Попросите кого-нибудь, с кем вы работаете, проанализировать вашу работу — и возьмите конструктивную критику на заметку. Помните, что активное применение новых навыков жизненно важно для достижения цели. Например, если вы хотите лучше решать проблемы, вы можете добровольно взять на себя управление сложным проектом. Если вы хотите лучше управлять своим временем, вы можете попрактиковаться в учете времени и понять, сколько времени вы тратите на каждую задачу.  Заключение  Поскольку IT — одна из самых высокооплачиваемых сфер, спрос на разработчиков программного обеспечения постоянно растут. По этой причине кандидаты должны обладать различными техническими и нетехническими навыками, которые следует учитывать в работе.  При выборе между двумя кандидатами с одинаковыми хард-скиллами предпочтение будет отдано кандидату, который также обладает уверенными софт-скиллами. Выгоднее брать на работу человека, который умеет брать на себя ответственность, любит проявлять инициативу, руководить процессом, умеет общаться с коллективом и хорошо распределять время.    
img
Вы помните из прошлых статей, что BGP был создан для поддержки многих различных протоколов и NLRI непосредственно с момента его возникновения. В результате чего BGP поддерживает такие технологии, как IPV6, MPLS, VPN и многое другое. Вы будете приятно удивлены тем, что как только вы овладеете основами BGP, которые мы рассмотрели в этом цикле статей, работа с BGP в IPv6 покажется очень простой! Предыдущие статьи цикла про BGP: Основы протокола BGP Построение маршрута протоколом BGP Формирование соседства в BGP Оповещения NLRI и политики маршрутизации BGP Масштабируемость протокола BGP Видео: Основы BGP за 7 минут BGP с IPv6 BGP настолько удивительно гибок, что, как обсуждалось ранее в этом цикле статей, можно использовать IPv4 в качестве «несущего» протокола для IPv6 NLRI. В данном случае мы рассматриваем IPv6 как «пассажирский» протокол. Давайте сначала рассмотрим конфигурацию и используем два простых маршрутизатора, как показано на рисунке 1. Рисунок 1: Простая топология для IPv6 протокола BGP Пример 1 показывает конфигурацию и проверку такой сети. Обратите внимание, что эта конфигурация требует установки соответствующего адреса следующего прыжка IPv6 для префиксного объявления. Это не требуется при использовании IPv6 как протокола «перевозчика», так и протокола «пассажира». Пример 1: IPv4 «перевозящий» IPv6 NLRI ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL( config)#ipv6 unicast-routing ATL(config)#route-map IPV6NH permit 10 ATL(config-route-map)#set ipv6 next-hop 2001:1212:1212::1 ATL(config-route-map)#exit ATL(config)#int lo 100 ATL(config-if)#ipv6 address 2001:1111:1111: :/64 eui-64 ATL(config-if )#router bqp 200 ATL(config-router)#neiqhbor 10.10.10.2 remote-as 200 ATL(config-router) #address-family ipv4 unicast ATL(config-router-af)#neiqhbor 10.10.10.2 activate ATL(config-router-af)#address-family ipv6 unicast ATL(config-router-af)#neiqhbor 10.10.10.2 activate ATL(config-router-af)#neiqhbor 10.10.10.2 route-map IPV6NH out ATL(config-router-af)#network 2001:1111:1111: :/64 ATL(config-router-af)#end ATL# Пример 2 показывает проверку этой конфигурации на ATL 2. Обратите внимание, что поскольку EUI-64 действует на интерфейсе обратной связи ATL, вам нужно будет скопировать полный IPv6-адрес из этого интерфейса, чтобы выполнить тестирование командой ping. Пример 2: проверка настройки BGP IPv4/IPv6 ATL#show ip bgp ipv6 unicast ATL2#ping 2001:1111:1111:0:C801:6FF:FEDB:0 Как вы можете догадаться, гораздо более «чистая» конфигурация заключается в использовании IPv6 для передачи информации IPv6 префикса. «Чистая» - это имеется в виду гораздо простая конфигурация. Пример 3 демонстрирует эту конфигурацию. Обратите внимание, что были удалены все IPv4 с устройств, поэтому необходимо установить 32-битный router ID для BGP, поскольку он не может установить его автоматически из интерфейса на устройстве. Пример 3: проверка настройки BGP IPv4/IPv6 ATL1#conf t ATL1(config)#router bgp 200 *Jan 9 03:31:21.039: %BGP-4-NORTRID: BGP could not pick a router-id. Please configure manually. ATL1(config-router)#bgp router-id 1.1.1.1 ATL1(config-router)#neighbor 2001:1212:1212::2 remote-as 200 ATL1(config-router)#address-family ipv6 unicast ATL1(config-router-af)#neighbor 2001:1212:1212::2 activate ATL1(config-router-af)#network 2001:1111:1111::/64 ATL1(config-router-af)#end ATL1# Возможно, вам будет интересно проверить соседство BGP после настройки IPv6. Мы очень любим использовать команду show ip bgp summary для проверки настроек в IPv4. Для IPv6 используйте команду show bgp ipv6 unicast summary. Как вы помните из предыдущей части этой серии статей, существует много замечательных механизмов фильтрации, которые мы можем применить в IPv4 BGP. Замечательная новость заключается в том, что этот же набор методов, доступны и для IPv6. Ментоды включают в себя такие механизмы, как: Prefix lists AS Path Filtering Route maps Пример 4 показывает пример конфигурации фильтрации с использованием списка префиксов. Обратите внимание, что эта конфигурация действительно не требует от вас повторного изучения каких-либо технологий. Пример 4: фильтрация префиксов IPv6 в BGP ATL#conf t ATL(config)#ipv6 prefix-list MYTEST deny 2001:1111:1111::/64 ATL(config)#ipv6 prefix-list MYTEST permit ::/0 le 128 ATL(config)#router bgp 200 ATL(config-router)#address-family ipv6 unicast ATL(config-router-af)#neighbor 2001:1212:1212:: 2 prefix-list MYTEST out ATL(config-router-af)#end ATL# ATL#clear ip bgp *
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59