Введение в Linux

В настоящее время, семейство операционных систем Linux является одним из двух самых популярных в мире, наравне с операционными системами семейства Windows.  Данное семейство операционных систем является одним из ответвлений операционных систем семейства Unix.

Наиболее популярные дистрибутивы данного семейства: Ubuntu (Desktop или Server) и CentOS (Desktop или Server).

Дистрибутив — это форма распространения программного обеспечения, то есть программное обеспечение может распространятся в виде файлов, архива с файлами или в виде упакованного файла-дистрибутива с  удобной программой-распаковщиком и выбором настроек.

Данные операционные системы можно установить, как на реальную машину (ПК, ноутбук, сервер), так и на виртуальную машину, сервер, облако. Многие компании в настоящее время выбирают данное семейство операционных систем для работы своих сервисов, таких как FTP-, WEB-сервера, сервера баз данных и многих других. Данные операционные системы считаются более надежными, чем операционные системы семейства Microsoft.

Все операционные системы семейства Linux можно разделить на 3 больших группы DesktopServerSpecial Edition. Все три группы операционных систем очень близки по своему функционалу, и их отличие состоит в назначении самой операционной системы и установленных пакетах (программах). Любые пакеты легко устанавливаются и стираются различия между группами операционных систем, но согласитесь, что достаточно удобно, когда мы берем готовый дистрибутив (далее по тексту «сборка») и после его установки получаем готовую к работе операционную систему со всеми пакетами.

Как можно догадаться Desktop сборка – это дистрибутив, предназначенный для работы на пользовательском ПК. Основное его отличие в том, что данная сборка включает в себя основной компонент это GUI  (Graphical User Interface), графический интерфейс пользователя, а говоря простыми словами — понятный инструмент взаимодействия операционной системы и человека, включающий набор графических оболочек для популярных программ. Ниже пример рабочего стола операционной системы CentOS.

CentOS 9 Desktop

Следующий пример сборки — Server Edition. Данная сборка обычно включает в себя минимальные компоненты позволяющие запустить операционную систему и минимальный набор программ. Все дополнительные пакеты можно скачать из интернета, переносных носителей, или репозитория с помощью пакетного менеджера.

Репозитории ― это хранилища в Интернете, в которых находятся файлы пакетов приложений Linux. Практически у каждого дистрибутива Linux есть свой репозиторий, который содержит проверенные и стабильные версии программ.

Пакетный менеджер (система управления пакетами)  — набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения.

Обычно данную сборку ставят на сервера или виртуальные машины, которые должны обеспечивать работу определенного сервиса. Пример: на виртуальный сервер, который поддерживает работу интернет сайта, устанавливаются пакеты веб-сервера Apache или Nginx, базы данных MySQL или MariaDB и так далее. Рабочее пространство или интерфейс взаимодействия между операционной системой и пользователем, представляется в виде командной строки и курсора с приглашением для ввода команд. Пользователь вводит команды, а программный интерпретатор их воспринимает и передает в операционную систему на исполнение.

Вот примерно в таком интерфейсе происходит работа в серверной операционной системе.

CentOS 9 Server

Рассмотрим последнюю группу специализированных сборок Special Edition. Ярким представителем является сборка Kali Linux. Данная сборка позиционируется, как инструмент для пентестеров и специалистов по информационной безопасности. Данная сборка содержит набор пакетов для проведения комплексной проверки на проникновение и взлом. В нее входят такие программы для сбора информации об удаленной системе, программы для поиска уязвимостей, программы для проведения атак на удаленные ресурсы, программы для социальной инженерии.

Существует и российская разработка — дистрибутив AstraLinux. Она отличается от классического дистрибутива на базе Debian повышенной взломостойкостью, внедренной мандатной моделью разграничения доступа. Данная сборка устанавливается в силовых ведомствах РФ. 

Если рассматривать семейство операционных систем Linux в совокупности, то мы можем видеть, что под конкретную задачу подбирается свой дистрибутив операционной системы и набор приложений для обеспечения работоспособности сервисов. Можно отметить также, что их объединяет – это принципы работы ядра операционной системы (в данном контексте имеется в виду, что ядро базовое — Unix, а дополнительные компоненты можно в него включить), принципы построения файловых структур, принципы работы с устройствами и сетевыми устройствами.

Нужно также отметить, что Linux – Open Source проект, то есть программное обеспечение с открытым исходным кодом. Каждый желающий может просмотреть данный код, в том числе на предмет закладок или написать свою программу.

Большинство софта и дистрибутивов бесплатное, но существуют и отдельные коммерческие проекты, которые взимают плату за техническую поддержку, например RHEL – Red Hat Enterprise Linux. Это сборка предназначена для серверов и считается наиболее удачной. Сборка CentOS является ее бесплатным аналогом.

Изучение Linux поможет:

Кому будет интересно семейство операционных систем Linux:

  • Системным администраторам для развертывания сервисов. Для семейства операционных систем Linux практически не существует вирусов, а защита от проникновения на пару порядков выше.
  • Разработчикам ПО и WEB сайтов, так как удобство работы со структурой сайтов и написание кода, внедрения и развертывания в тестовой среде и в продуктивной, практически неоспоримо. 
  • DevOPS инженерам, которые развертывают тестовые и продуктовые контуры для разработчиков. 
  • Обычным пользователям, которые хотят научится чему, то новому, более безопасному, чем Windows.

Manjaro Linux

Manjaro Linux или Manjaro — дистрибутив GNU/Linux, основанный на Arch Linux, использующий модель обновлений rolling release. Официально доступно несколько версий: с рабочим окружением Xfce, KDE Plasma или GNOME.

Manjaro делает упор на удобство использования и доступность, а сама система предназначена для работы полностью «прямо из коробки» с разнообразным предустановленным программным обеспечением. Он имеет модель обновлений rolling и использует Pamac в качестве диспетчера пакетов.

Manjaro обладает полной поддержкой мультимедиа, распознаёт оборудование, поддерживает несколько ядер, в том числе и rc. В версии 0.8.3 использовался текстовый установщик, в версии 0.8.8 кроме него также предлагается к использованию Thus — разрабатываемый установщик с графическим интерфейсом. Модель rolling release означает, что у пользователя нет необходимости в переустановке системы. Управление пакетами осуществляется pacman, а также его графическими фронт-эндами Pamac (XFCE) и Octopi (OpenBox). С ноября 2017 официально поддерживается только 64-bit версия, а 32-bit версия существует как отдельный проект, поддерживаемый сообществом.

Для управления репозиториями используется BoxIt.

Ссылка на дистрибутив: https://manjaro.org/

Получение списка имен файлов в папке, соответствующих шаблону при помощи PowerShell

Для рекурсивного поиска файлов в папке используйте команду:

Get-ChildItem -Path $path -Recurse -Filter "*sample*"

Это должно вернуть все файлы и папки , в имени которых есть образец. Если вам просто нужны файлы или каталоги, вы сможете использовать переключатели -File или -Directory возвращать эти конкретные типы объектов.

Как включить клиент Telnet в Windows 7?

Вопрос

При попытке выполнить команду telnet, Windows 7 сообщает о том, что telnet не распознается как команда.

Ответ

По умолчанию клиент Telnet не включен в Windows 7. Чтобы его включить, необходимо добавить Windows-компонент клиента Telnet.

Для этого откройте Control Panel (Панель управления) и выберите Programs > Turn Windows features on or off (Программы > Включение или отключение компонентов Windows).

Установить флажок рядом с «Telnet Client» (Клиент Telnet) и нажать ОК.

После установки компонента, можно использовать клиент Telnet в командной строке.

Android-x86 — перенос Android на x86

Android-x86 — это неофициальный порт мобильной операционной системы Android для запуска или установки на компьютерах, ноутбуках и нетбуках с процессорами AMD и Intel.

Проект создался в виде серии патчей к исходному коду операционной системы Android для возможности запускать её на нетбуках, планшетах и других устройствах.

Некоторые компоненты разработаны в проекте для запуска на x86-архитектуре. Например, некоторые низкоуровневые компоненты заменены для лучшей поддержки архитектуры, к примеру, ядро, и HAL (Hardware Abstraction Layer, cлой аппаратных абстракций). Операционная система поддерживает аппаратное ускорение OpenGL ES, если поддерживаемые чипсеты GPU обнаружены, например, Intel GMA, AMD Radeon, и Nvidia (появилась поддержка Nouveau в версии 4.4-r3). При отсутствии поддерживаемых GPU, система может работать с использованием программного рендеринга.

Как обычный дистрибутив Linux, проект выпускает готовые ISO-образы, которые можно запускать в режиме Live или устанавливать на жёсткий диск целевого устройства. Начиная с 4.4-r2 Android-x86 также выпускает образы efi_img[9], которые могут быть использованы для создания Live USB, который можно загружать с устройств UEFI.

Следующие компоненты были разработаны с нуля или созданы на базе других проектов с открытым исходным кодом:

  • Ядро.
  • Установщик.
  • Drm_gralloc и Mesa.
  • Аудио.
  • Камера.
  • GPS.
  • Управление дисплеем.
  • Радиоинтерфейс.
  • Сенсор.

Скачать проект можно по ссылке: https://www.android-x86.org/

Разница между stdout и /dev/stdout

Рассмотрим пример:

root@debian:~$ echo "Hello, World" > stdout
root@debian:~$ cat stdout
Hello, World

root@debian:~$ echo "Hello, World" > /dev/stdout
Hello, World

В первом случае stdout это обычный файл, созданный в том же каталоге, в котором выполняется команду. Он ничем не отличающийся от любого другого обычного файла, например, ~/anyfile.txt. Он не имеет ничего общего со стандартным выводом, кроме того факта, что в данном примере на него перенаправляется стандартный вывод.

Во втором случае /dev/stdout это файл устройства, который является символической ссылкой (которую можно создать с помощью ln -s) на специальный виртуальный файл /proc/self/fd/1, представляющий файловый дескриптор 1 хранящийся в текущем процессе.

Загрузка потокового видео в Linux при помощи утилиты FFmpeg

Для загрузки потокового видео в терминале необходимо выполнить команду:

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i "<ссылка>" -c copy <файл>.mp4

Здесь:

  • <ссылка> — это ссылка, которая обычно берется из HTML-тега <video>, часто начинается с https
  • <файл> — это имя файла, которое необходимо придумать самостоятельно

Перед тем, как загружать видео в терминале, его необходимо запустить в окне браузера.

Перезапуск MySQL на Debian Linux

Первым шагом необходимо зайти на сервер по SSH, используя правильные учетные данные и IP-адрес:

$ ssh root@localhost

Эта команда должна предоставить вам доступ к терминалу сервера.

Вторым шагом нужно перезапустить сервис MySQL, выполнив команду

$ service mysql restart

или, если ваш сервис MySQL имеет другое имя, например mysqld, вам, возможно, придется соответствующим образом изменить команду или попробовать следующее:

$ /etc/init.d/mysql restart