Темы для курса «Практикующего Linuxоида»

14/04/2019


Есть определенные ключевые предметы в профессиональной сфере ITшников, которые являются критичными для успешной работы и высокой производительности. Знание операционной системы Linux, я думаю, это один из этих ключевых предметов. В наших институтах, к сожалению, не преподают дисциплину по этой операционной системе. Практические знания по этому предмету нужны и системным администратором, и программистам, и инженерам, и специалистам по информационной безопасности. Большая часть серьезных приложений в современном мире создается для работы в ОС Linux. Соответственно, понимая принципы работы этой операционной системы, программисту становится гораздо проще писать код и использовать все имеющиеся возможности. Точно так же, для инженеров и администраторов просто критично необходимо знать ОС Linux. Это знание позволит быстро овладеть навыками работы со многим оборудованием и программным обеспечением. К примеру, система виртуализации VMware ESXi работает на базе Linux, много устройств Cisco работает на базе Linux, фаерволы CheckPoint используют Linux. И подобных примеров множество.

Для себя уже давно осознал, что чем больше ты узнаешь и изучаешь окружающий мир, тем большим ты должен делиться с миром и людьми. Если ты хорошо разбираешься в какой-то дисциплине, ты обязательно должен делиться этими знаниями и навыками. Долго размышлял о проведении курса по практическому применению ОС Linux. Литературы в Интернете по этому поводу, конечно же, очень много на различные тематики. Однако в реальности, как правило, необходимо хорошее понимание определенных ключевых происходящих процессов в операционной системе, а также возможности, которые дают основные утилиты и приложения. Обо всем остальном нужно иметь представление и при необходимости освежать знания с помощью интернет ресурсов.

Тематика

Так какие же темы в Linux наиболее важны в работе ITшника, которые позволят специалисту комфортно себя чувствовать с любыми современными системами. Что хотелось бы осветить в данном направлении по этой операционной системе. Попробую перечислить их ниже основываясь на своих знаниях и опыте.

Во-первых, это понимание загрузки операционной системы, различные уровни работы ОС, способы выключения и перезагрузки. Система под управлением Linux сразу выступает чем-то необычным для большинства ITшников, работающих годами на базе ОС Windows. Сразу оговорюсь, что в продакшене на серверах и оборудовании практически всегда используется ОС Linux без графической оболочки. Спецу необходимо отлично разбираться в CLI (коммандной оболочке) и понимать как получать нужную информацию о работе системы.

Во-вторых, это вопросы по установке операционной системы и методах обновления и добавления пакетов. Первым шагом, который необходимо будет осуществить в работе — это установить нужный дистрибутив Linux на то или иное железо (физическое или виртуальное). Необходимо понимать, какие методы установки/апдейта/удаления пакетов существуют в различных дистрибутивах Linux. Так же каждый спец должен понимать как установить нужное приложение без менеджера пакетов, а также найти при этом зависимости, которые могут помешать процессу установки.

В-третьих, основные команды по работе с файлами и файловыми системами. Каждый спец должен выучить определенное количество комманд, которые позволят ему комфортно работать в коммандной строке Linux. Это можно сравнить со знанием языка, чем больше комманд вы помните и можете применять, тем больше у вас возможностей для «общения» с операционной системой Linux. Вы должны уметь создавать файлы, удалять их, перемещать, находить, разбираться в файловой системе ОС, а также уметь работать с файлами и файловой системой. И многое многое другое…

В-четвертых, умение пользоваться редактором vi/vim. Один из мощнейших редакторов в Linux, который, по моему мнению, должен знать каждый уважающий себя специалист. Когда я начинал свою профессиональную деятельность, я потратил несколько недель на глубокой изучение этого редактора. Это в последствии принесло дивиденты с лихвой. Заморачиваться на всякие nano, mcedit и прочие аналоги, я не вижу смысла. Их освоение занимает не так много времени, но той мощи в работе с текстами, которую дает Vi, они не имеют.

В-пятых, фильтрация информации с помощью средств grep, awk, sed. Умение в больших массивах информации и файлах отфильтровать именно то, что нужно будет постоянно пригождаться в каждодневной работе ITшника. Чем лучше, Вы будете владеть инструментами grep, awk и sed, тем выше будет Ваша производительность труда. Навык работы с этими утилитами я считаю также одним из ключевых моментов при работе с ОС Linux.

В-шестых, написание скриптов средствами bash. Конечно же, многие презрительно относятся к программированию на bash, считая, что это и не программирование и не администрирование. Однако, с помощью bash скриптов часто производится автоматизация многих рутинных задач в очень быстрые промежутки времени. Если бы мы привлекали для этого средства Java или Python, на это уходило бы на порядок больше времени. Да и зачастую в системе есть уже готовые bash скрипты, которые приходится править и соответственно понимать логику их работы.

В-седьмых, работа с сетевыми подключениями и сетью в Linux. Наверное, первое с чего начинается работа в любом Linux «боксе» после базовой установки — это настройка параметров сети. Также первое на что обращается внимание при возникновение проблем — то как работает сеть. Есть ряд утилит, которые имеют одинаковое название и функционал с аналогами в Windows, это ping, traceroute, netstat. Однако, возможности Linux этим далеко не ограничиваются. То как правильно тюнить сетевые настройки и выявлять проблемы в сети — один из ключевых навыков IT админа или инженера.

В-восьмых, основные принципы работы с iptables. С помощью возможностей пакета iptables можно настраивать базовую защиту севрера от различых сетевых атак, выполнять динамическую трансляцию адресов NAT при выходе в сеть Интернет, пробрасывать TCP/UDP порты с локальных серверов наружу. Я считаю, каждый должен потратить определенный промежуток своего времени, чтобы уметь влегкую обращаться с этим инструментом в Linux.

В-девятых, финальная тема курса, компиллирование приложений из исходных кодов. Да, возможно, большинству программистов и инженеров и не предтся никогда самостоятельно компиллировать приложения в Linux. Однако, эти знания в том или ином случае пригождаются, когда именно в Вашем Linux «боксе» бинарники нужного приложения не работают. Я считаю, каждый спец должен знать как взять исходные файлы и скомпилировать их в GCC. Это может быть длительным и муторным процессом, но иногда выбора не остается, кроме как проводить компиляцию приложения или драйвера из исходников.

Результаты

По моему видению, материал должен быть направлен, прежде всего, на основные аспекты работы с операционной системой Linux, которые позволят специалисту иметь хорошую базу в этом направлении. Тот, кто изучит все это, должен суметь подойти к любому «боксу» с операционной системой Linux на борту и разобраться, что в нем происходит. Это будет технический минимум, который позволит чувствовать себя своим человеком в мире Linux. Специально не затрагивал вопросов по графической оболочке, так как она при работе с серверами и оборудованием не нужна. Вопросы установки и настройки графической оболочки Linux необходимы при работе на персональном ноутубке или рабочей станции, что с моей точки зрения, не так востребовано именно в самой работе.

Если кому-то интересна эта тематика и данное направление, пожалуйста, обращайтесь ко мне через все возможные каналы комуникаций. В частности, я всегда доступен в мессенджере Telegram по нику @andreyus.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *