Семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU, и, возможно, другие компоненты.
Composer — популярный инструмент управления зависимостями для PHP, созданный в основном для облегчения установки и обновления зависимостей проекта.
Шаг 1 — Установка зависимостей
В дополнение к зависимостям, которые уже могут быть включены в вашу систему Debian 11, Composer требует php-cli для выполнения PHP сценариев в командной строке и unzip для извлечения заархивированных архивов.
Начнём с обновления кэша менеджера пакетов:
sudo apt update
Далее установим зависимости. Нам потребуется curl для загрузки Composer, а также php-cli для его установки и запуска. Пакет php-mbstring необходим для предоставления функций для библиотеки, которую вы будете использовать в этом руководстве. Пакет git используется Composer для загрузки зависимостей проекта и unzip для извлечения заархивированных пакетов. Все можно установить с помощью следующей команды:
Теперь, когда все зависимости установлены, мы можем установить Composer.
Шаг 2 — Загрузка и установка Composer
Composer предоставляет установщик , написанный на PHP. Вы загрузите его, убедитесь, что он не поврежден, а затем используете его для установки Composer.
Сначала убеждаемся, что мы в своем домашнем каталоге:
Затем убеждаемся, что установщик соответствует хэшу SHA-384 для последнего установщика. Чтобы облегчить этап проверки, вы можете использовать следующую команду, чтобы программно получить последний хэш со страницы композитора и сохранить его в переменной оболочки:
Если вы получили сообщение Installer corrupt, вам необходимо еще раз загрузить сценарий установки и убедиться, что вы используете правильный хэш. Затем запустите команду, чтобы еще раз проверить установщик. Если у вас есть проверенный установщик, вы можете продолжить.
Для глобальной установки Composer используйте следующую команду:
Для того чтобы найти количество ядер CPU в Linux, можно воспользоваться файловой системой proc. Эта процедура представляет собой псевдо-файловую систему, которая отслеживает среду выполнения.
Для того, чтобы получить информацию центрального процессора, выполните:
cat /proc/cpuinfo
Это дает детальную информацию о процессоре, таком как VENDOR_ID, семейства CPU, модель, CPU МГц и т.д.
Чтобы найти количество ядер CPU в Linux с точными деталями используйте следующие команду:
cat /proc/cpuinfo | grep processor
Или выполните команду:
cat /proc/cpuinfo | grep processor | wc -l
С помощью команды lscpu
Вы также можете найти количество ядер CPU в Linux с помощью команды lscpu:
lscpu
После выполнения команды ищите заголовок CPU(s).
Использование команды nproc
Команда nproc поможет найти количество ядер CPU в Linux напрямую, без grep или расчета:
nproc
С помощью команды dmidecode
Команда dmidecode также предоставляет информацию о процессоре вместе с другой аппаратной информацией, такой как системная информация, информация о вентиляторах. Чтобы получить точно или найти количество ядер CPU в Linux с помощью команды dmidecode, вам нужно указать grep со словом CPU, как показано ниже:
.tar.gz — это архив созданный программой tar, и после этого заархивированный программой gzip. Такая двойная архивация обусловлена тем, что программа gzip сжимает хорошо и быстро, но делает это только с одним файлом. Поэтому чтобы запаковать несколько файлов, для начала из них создается один tar-архив, а после этого он уже пакуется программой gzip. Причем стоит отметить, что первичный архив tar практически не сжимает информацию, а лишь объединяет ее в один файл. В конечном варианте мы получаем архив с двойным расширением archive.tar.gz или archive.tgz
Для распаковки архива *.tar.gz, вы должны выполнить:
tar -xzf archive.tar.gz
Если в этом архиве есть программное обеспечение, которое необходимо скомпилировать, обычно делается следующее:
tar -xzf archive.tar.gz
cd archive
./configure
make
sudo make install
Будьте внимательны! Не вводите вслепую приведенные выше инструкции; во-первых, прочитайте любые документы под названием «README» или «INSTALLATION», которые вы найдете в архиве.
Кратко: если вы обнаружите, что щелчок правой кнопкой мыши на сенсорной панели не работает в Ubuntu, вот простое решение.
Итак, вы установили совершенно новую систему Ubuntu и наслаждаетесь блестящим рабочим столом GNOME, когда вдруг понимаете, что щелчок правой кнопкой мыши на сенсорной панели не работает.
Вы можете подумать, что что-то сломалось на вашем рабочем столе Ubuntu, но здесь это не так. Здесь ничего не сломано. На самом деле это не баг, а фича. В Ubuntu 18.04 появилось новое поведение тачпада. Если на сенсорной панели вашего ноутбука нет «физических кнопок» для щелчка левой и правой кнопкой мыши, щелчок правой кнопкой мыши выполняется касанием двумя пальцами.
Это означает, что щелчок в правом нижнем углу сенсорной панели не будет работать в Ubuntu 18.04 по умолчанию.
Вы можете легко изменить это поведение и включить щелчок правой кнопкой мыши на Ubuntu.
Сначала вам нужно установить инструмент GNOME Tweaks . Он доступен в программном центре Ubuntu.
Кроме того, вы можете установить его с помощью команды ниже:
sudo apt install gnome-tweaks
После установки нажмите клавишу Super/Windows, чтобы открыть меню приложений и выполнить поиск «tweaks». Нажмите Tweaks, чтобы запустить программу.
В настройках GNOME перейдите в раздел «Клавиатура и мышь» на левой боковой панели и в разделе «Эмуляция нажатия мышкой» выберите «Область» .
Вот и все. Вы можете сразу же протестировать это, щелкнув правую нижнюю область и убедиться, что правый щелчок снова работает нормально. Если это не сработает сразу, вам следует перезагрузить систему.
Стоит отметить, что вы все еще можете использовать два пальца для щелчка правой кнопкой мыши.
CentOS — это 100%-совместимый пересобранный Red Hat Enterprise Linux, полностью удовлетворяющий требованиям Red Hat по дальнейшему распространению. CentOS предназначена для людей, которым нужна стабильность операционной системы промышленного класса без дорогостоящей сертификации и технической поддержки.
Формат пакетов
RPM (.rpm) — Разработан компанией Red Hat и внедрен в дистрибутив RHEL, также применяется в таких системах как Fedora и CentOS.
Менеджеры пакетов
rpm (red hat package manager) — формат пакетов и низкоуровневый пакетный менеджер систем RED HAT (RHEL, CentOS, Fedora и др.) Как и DPKG, способен работать только с локальными файлами
yum (yellowdog updater, modified) — высокоуровневый пакетный менеджер, написанный на языке Python для систем RED HAT (RHEL, CentOS, Fedora). Программа представляет собой своеобразную оболочку для утилиты RPM
dnf (dandified yum) — модифицированная версия пакетного менеджера YUM на языке на Python. Разработка утилиты начата в 2011 году. В 2015 году DNF стал основным менеджером пакетов для системы Fedora 22. В DNF были исправлены такие недостатки YUM, как некорректная установка зависимостей, низкая скорость работы, большое потребление оперативной памяти
Файловая структура *nix-систем серьезно отличается от структуры в Windows и заслуживает отдельного внимания.
Начнем с базовых понятий:
Файловая структура представляет собой дерево
В узлах этого дерева находятся директории — файлы специального типа
В листьях дерева расположены файлы
В отличии от Windows, в Linux вас не будут спрашивать куда устанавливать программное обеспечение (ПО), где хранить временные файлы, какие файлы будут являть настройками и т.д.
В Linux после выполнения какого-то действия, особенно, связанного с установкой программного обеспечения, операционная система не сообщит ничего о том куда установлено ПО, где находятся конфигурационное файлы, как запускать ПО и т.п.
Структура каталогов Linux достаточно жёсткая и имеет иерархическую структуру, т.е. все каталоги сводятся к единому каталогу root directory (обозначается этот каталог как / — косая черта из правого угла в нижний левый).
Прежде ем начинать работу с Linux хорошо иметь представление о том, что за каталоги находятся в структуре Linux и какое назначение имеет каждый их них.
В Linux есть FHS (англ. Filesystem Hierarchy Standard) — базовый стандартизированный набор каталогов. За каждым каталогом закреплена какая-то особая роль: за нас подумали и решили какие каталоги нам необходимы, т.е. как разработчик операционной системы решил — так мы и видим каталоги:
/ — Корневой каталог (root directory) в котором находятся все остальные каталоги, содержит всю файловую иерархию.
/bin — Основные исполняемые файлы. Утилиты, необходимые операционной системе (cat, ls, cp)
/boot — Информация необходимая для загрузки операционной системы. Загрузочные файлы (в том числе файлы загрузчика, ядро, initrd, System.map)
/dev — Устройства, которые представлены в виде файлов (например, /dev/null, /dev/zero)
/etc — Общесистемные конфигурационные файлы (настройки самой системы и настройки служб системы)
/home — Содержит домашние каталоги пользователей, которые в свою очередь содержат персональные настройки и данные пользователя
/lib — Основные библиотеки необходимые для бинарных файлов, необходим для работы программ из /bin и /sbin
/media — Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM (впервые описано в FHS-2.3)
/mnt — Содержит временно монтируемые файловые системы. Временное монтирование блочных устройств
/opt — Дополнительное программное обеспечение
/proc — Содержит информацию о всех процессах операционной системы. Утилиты работающие с процессами берут информацию из этого каталога. Этот каталог это виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов
/root — Домашний каталог для пользователя root
/run — Информация о системе с момента её загрузки, в том числе данные, необходимые для работы демонов (pid-файлы, UNIX-сокеты и т.д.)
/sbin — Системные исполняемые файлы. Основные системные программы для администрирования и настройки системы (например, init, iptables, ifconfig)
/srv — Данные для сервисов, предоставляемых системой (например, www или ftp)
/sys — Содержит информацию об устройствах, драйверах, а так же некоторых свойствах ядра
/tmp — Временные файлы
/usr — Содержит вторичную иерархию для данных пользователя и его бинарных и системных файлов
/var — Изменяемые файлы, такие как файлы логов, регистрации, временные почтовые файлы, файлы спулеров
От имени пользователя root отредактируйте файл sshd_config в /etc/ssh/sshd_config:
nano /etc/ssh/sshd_config
Добавьте строку PermitRootLogin yes в разделе Authentication. Эта строка может уже существовать и быть закомментирована знаком «#». В этом случае раскомментируйте, удалив «#»
Рассмотрим, как перезагрузить (перезапустить) по SSH сервер Linux. Перезагрузить сервер Ubuntu, CentOS, Debian и основанные на них дистрибутивы можно удаленно по SSH или подключившись к командной строке другим способом.
Прежде чем перейти к боевым действиям, убедитесь, что сервер Linux действительно нуждается в перезагрузке.
Когда требуется перезагрузка?
Перезагрузка сервера без веских на то причин может привести к сбоям в работе серверного оборудования.
Так когда перезагружаем?
Сервер завис или тормозит.
Некорректно работают установленные программы.
При смене операционной системы.
При работе с BIOS (если есть физический доступ или его эмуляция).
При использовании программ низкоуровневого копирования и восстановления данных (например, Acronis Backup).
Не перезагружайте сервер во время установки/удаления программ.
Как перезагрузить сервер через терминал?
Linux-серверы можно перезагрузить в консоли 3 простыми командами: shutdown, reboot и init.
Вы можете использовать любое решение для удаленного подключения к серверу. Мы остановимся на SSH.
После ввода указанных выше команд соединение с сервером будет прервано. Перезагрузка может занимать до 15 минут.
Подключитесь к вашему серверу под root-пользователем.
1. Команда shutdown -r
Это базовая команда, которая используется для перезагрузки Linux-сервера с Ubuntu.
Введите команду:
shutdown -r now
Еще можно запланировать перезагрузку, введя вместо now конкретное время. Например, назначим перезагрузку сервера на 11 утра:
shutdown -r 11:00
Также можно перезагрузить сервер через небольшой промежуток времени. Например, через 5 минут:
shutdown -r +5
2. Команда reboot
Также можно перезагрузить Linux-серверы с Ubuntu, Debian, CentOS или другим дистрибутивом с помощью универсальной команды reboot.
Сначала она запишет в логи время остановки системы, уничтожит незавершенные процессы, вызовет опцию sync и дождется завершения записи на диск. И только после этих предварительных действий прекратит работу ядра и инициирует перезагрузку.
Введите команду, и сервер будет перезагружен сразу:
reboot 0
или
reboot now
После ввода команды соединение с сервером будет прервано.
3. Команда init 6
Также для перезагрузки можно использовать уровни системы инициализации Init Scripts. Всего в этой системе 6 уровней: где 0 — выключение, а 6 — перезагрузка. Чтобы перейти к этому уровню, используйте команду:
В настоящее время, семейство операционных систем Linux является одним из двух самых популярных в мире, наравне с операционными системами семейства Windows. Данное семейство операционных систем является одним из ответвлений операционных систем семейства Unix.
Наиболее популярные дистрибутивы данного семейства: Ubuntu (Desktop или Server) и CentOS (Desktop или Server).
Дистрибутив — это форма распространения программного обеспечения, то есть программное обеспечение может распространятся в виде файлов, архива с файлами или в виде упакованного файла-дистрибутива с удобной программой-распаковщиком и выбором настроек.
Данные операционные системы можно установить, как на реальную машину (ПК, ноутбук, сервер), так и на виртуальную машину, сервер, облако. Многие компании в настоящее время выбирают данное семейство операционных систем для работы своих сервисов, таких как FTP-, WEB-сервера, сервера баз данных и многих других. Данные операционные системы считаются более надежными, чем операционные системы семейства Microsoft.
Все операционные системы семейства Linux можно разделить на 3 больших группы Desktop, Server, Special Edition. Все три группы операционных систем очень близки по своему функционалу, и их отличие состоит в назначении самой операционной системы и установленных пакетах (программах). Любые пакеты легко устанавливаются и стираются различия между группами операционных систем, но согласитесь, что достаточно удобно, когда мы берем готовый дистрибутив (далее по тексту «сборка») и после его установки получаем готовую к работе операционную систему со всеми пакетами.
Как можно догадаться Desktop сборка – это дистрибутив, предназначенный для работы на пользовательском ПК. Основное его отличие в том, что данная сборка включает в себя основной компонент это GUI (Graphical User Interface), графический интерфейс пользователя, а говоря простыми словами — понятный инструмент взаимодействия операционной системы и человека, включающий набор графических оболочек для популярных программ. Ниже пример рабочего стола операционной системы CentOS.
Следующий пример сборки — Server Edition. Данная сборка обычно включает в себя минимальные компоненты позволяющие запустить операционную систему и минимальный набор программ. Все дополнительные пакеты можно скачать из интернета, переносных носителей, или репозитория с помощью пакетного менеджера.
Репозитории ― это хранилища в Интернете, в которых находятся файлы пакетов приложений Linux. Практически у каждого дистрибутива Linux есть свой репозиторий, который содержит проверенные и стабильные версии программ.
Пакетный менеджер (система управления пакетами) — набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения.
Обычно данную сборку ставят на сервера или виртуальные машины, которые должны обеспечивать работу определенного сервиса. Пример: на виртуальный сервер, который поддерживает работу интернет сайта, устанавливаются пакеты веб-сервера Apache или Nginx, базы данных MySQL или MariaDB и так далее. Рабочее пространство или интерфейс взаимодействия между операционной системой и пользователем, представляется в виде командной строки и курсора с приглашением для ввода команд. Пользователь вводит команды, а программный интерпретатор их воспринимает и передает в операционную систему на исполнение.
Вот примерно в таком интерфейсе происходит работа в серверной операционной системе.
Рассмотрим последнюю группу специализированных сборок Special Edition. Ярким представителем является сборка Kali Linux. Данная сборка позиционируется, как инструмент для пентестеров и специалистов по информационной безопасности. Данная сборка содержит набор пакетов для проведения комплексной проверки на проникновение и взлом. В нее входят такие программы для сбора информации об удаленной системе, программы для поиска уязвимостей, программы для проведения атак на удаленные ресурсы, программы для социальной инженерии.
Существует и российская разработка — дистрибутив AstraLinux. Она отличается от классического дистрибутива на базе Debian повышенной взломостойкостью, внедренной мандатной моделью разграничения доступа. Данная сборка устанавливается в силовых ведомствах РФ.
Если рассматривать семейство операционных систем Linux в совокупности, то мы можем видеть, что под конкретную задачу подбирается свой дистрибутив операционной системы и набор приложений для обеспечения работоспособности сервисов. Можно отметить также, что их объединяет – это принципы работы ядра операционной системы (в данном контексте имеется в виду, что ядро базовое — Unix, а дополнительные компоненты можно в него включить), принципы построения файловых структур, принципы работы с устройствами и сетевыми устройствами.
Нужно также отметить, что Linux – Open Source проект, то есть программное обеспечение с открытым исходным кодом. Каждый желающий может просмотреть данный код, в том числе на предмет закладок или написать свою программу.
Большинство софта и дистрибутивов бесплатное, но существуют и отдельные коммерческие проекты, которые взимают плату за техническую поддержку, например RHEL – Red Hat Enterprise Linux. Это сборка предназначена для серверов и считается наиболее удачной. Сборка CentOS является ее бесплатным аналогом.
Изучение Linux поможет:
Кому будет интересно семейство операционных систем Linux:
Системным администраторам для развертывания сервисов. Для семейства операционных систем Linux практически не существует вирусов, а защита от проникновения на пару порядков выше.
Разработчикам ПО и WEB сайтов, так как удобство работы со структурой сайтов и написание кода, внедрения и развертывания в тестовой среде и в продуктивной, практически неоспоримо.
DevOPS инженерам, которые развертывают тестовые и продуктовые контуры для разработчиков.
Обычным пользователям, которые хотят научится чему, то новому, более безопасному, чем Windows.