Поделиться через


Часть 1.2. Основные операции в Linux

Область применения: .NET в Linux

Цель этой части

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

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

Специальные каталоги Linux

Для этого обучения нет необходимости глубоко изучить, как управлять Linux. Тем не менее, сводка некоторых специальных каталогов будет полезной, так как вы будете использовать их в остальной части обучения.

Directory Description
/ Корневой каталог (папка верхнего уровня).
/bin Содержит двоичные файлы пользователя, исполняемые файлы.
/sbin Содержит двоичные файлы пользователя, исполняемые файлы.
/и так далее Содержит файлы конфигурации для локальной системы и приложений. Например, вы создадите некоторые файлы конфигурации в каталоге /etc/system , чтобы включить автоматическое запуск приложения ASP.NET Core системой.
/home Содержит домашний каталог каждого пользователя. Например, /home/<username>.
/tmp Временный каталог для хранения временных файлов, созданных системой и приложениями.
/usr Хранит общие файлы, включая исполняемые файлы, библиотеки и документы. Например, среда выполнения .NET и пакеты SDK устанавливаются в каталог /usr/share/dotnet/ .
/var Хранит файлы данных переменной. Например, Apache сохраняет содержимое корневого веб-сайта в каталоге /var/www/html и файлы журнала в каталоге /var/log/apache2/ . Хотя это не обязательно, вы опубликуете веб-приложения в этом каталоге.

Примечание.

В Linux учитывается регистр. Таким образом, /home и /Home являются разными каталогами, а имя файла и имя файла — разными файлами.

При первом подключении к виртуальной машине Linux вы начнете работу в корневом каталоге. Этот каталог будет /home/<username>.

Ярлык корневого каталога — ~ (tilde). Команду можно использовать cd ~ в любое время, чтобы вернуться в домашний каталог.

Просмотрите и попробуйте следующие команды (показанные на следующем снимке экрана):

  • pwd (рабочий каталог печати): выводит текущий каталог и каталог /etc/systemd .
  • echo: выводит значение каталога ~ (root).
  • cd ~: возвращается в корневой каталог.

Снимок экрана: команда пароля.

В этом примере не содержится перечисление содержимого каталога. Однако более поздний шаг в этом обучении охватывает работу с файлами и папками. Для некоторых из этих задач потребуются разрешения суперпользователя. В следующем разделе объясняется, как повысить состояние суперпользователя.

Выполнение команд в качестве суперпользователя

Суперпользователь является самой привилегированной учетной записью пользователя. Он имеет корневой (неограниченный) доступ ко всем файлам и папкам, а также полный контроль над операцией компьютера. Системный администратор использует эту учетную запись для обслуживания системы.

В таких системах UNIX обычное имя суперпользователя — "root". Корневой пользователь может выполнять задачи, которые в противном случае ограничены для стандартных пользователей, включая следующие:

  • Изменение системных каталогов
  • Изменение привилегий пользователей
  • Изменение владельца файла
  • Системные задачи, такие как перезапуски
  • Установка определенных приложений

Существует несколько способов выполнения команд в качестве пользователя корневой учетной записи. Один из них — использовать sudo su команду. В этой команде sudo используется сокращенное superuser doзначение и su сокращенное значение для параметра switch user. Вы также можете использовать su команду для переключения между стандартными пользователями.

Внимание

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

Чтобы продемонстрировать проблему с разрешениями, создайте текстовый файл в специальной папке с именем /etc.

Папка /etc/ находится в файлах конфигурации системы. Эта папка защищает содержимое от изменения стандартным пользователем.

Выполните следующую команду:

echo hello world > /etc/helloworld.txt

Команда echo записывает весь текст, следующий за ним в выходные данные. Угловая скобка (>) сообщает системе отправлять выходные данные в файл /etc/helloworld.txt вместо консоли. Это поведение аналогично тому, как работает Windows.

Примечание.

Linux учитывает регистр: Helloworld.txt, helloworld.txt и helloworld. Txt — это разные файлы.

Вам не нужно указать расширение имени файла. Название helloworld само по себе является совершенно допустимым. (Расширение txt используется здесь только в качестве примера.)

При выполнении этой команды вы получаете сообщение об ошибке об отказе в разрешении .

Снимок экрана: сообщение об отказе в разрешении.

Операция завершается ошибкой, так как папка /etc является специальной папкой, которую не может изменить стандартный пользователь. Проверьте пользователя, выполнив id команду.

Снимок экрана: команда I D.

Чтобы стать пользователем корневой учетной записи, выполните sudo su команду.

Снимок экрана: команда sudo su.

Вы должны заметить две вещи: когда вы становитсяе корневым, символ знака доллара ($) становится символом знака фунта (#). Кроме того, имя пользователя изменяется на root. При повторном выполнении той же id команды вы увидите, что идентификатор пользователя и группы корня равно 0.

Снимок экрана: корневая команда.

Внимание

Теперь вы подняли себя на роль суперпользователя в сеансе, у вас есть полный доступ к системе. Имейте в виду, что это потенциально опасная ситуация, и вы должны проявлять осторожность по мере продолжения.

Теперь выполните одну и ту же команду еще раз:

echo hello world > /etc/helloworld.txt

На этот раз вы не получаете никакого сообщения об ошибке. Чтобы проверить, создан ли файл, выполните следующую команду:

ll /etc/hello*

Команда ll перечисляет файлы и вложенные папки, которые находятся в указанной папке. В этом примере /etc/hello* значение параметра ограничивает выходные данные команды файлами или папками, имя которых начинается в hello.

Снимок экрана: команда hello.

В выходных данных показано, что файл был создан. Что делать, если мы хотим проверить содержимое файла? Эта cat команда помогает здесь. Чтобы просмотреть содержимое, выполните команду cat /etc/helloworld.txt.

Снимок экрана: команда cat.

Команда cat считывает файлы последовательно и записывает содержимое в стандартные выходные данные. Таким образом, он пишет "hello world" в консоли.

Чтобы предотвратить ошибки, которые могут повредить системе во время повышения до корневого состояния, рекомендуется выйти из корневого сеанса и вернуться к стандартному сеансу пользователя, чтобы избежать некоторых опасных операций. Для этого выполните команду exit. Вы можете увидеть, что знак фунта возвращается к знаку доллара, а имя пользователя отображается как стандартный пользователь.

Снимок экрана: команда выхода.

Для дополнительной практики выполните те же ll команды и cat команды в контексте стандартного пользователя. Вы увидите, что вы не можете создать файл в папке /etc/ , но вы можете перечислить файл и прочитать его содержимое.

Выполнение команд с помощью префикса sudo

Вместо того, чтобы стать пользователем корневой учетной записи в сеансе, вы можете выполнять команды в качестве корневого sudo <command> элемента с помощью формата. Этот подход безопаснее, так как он будет выполнять указанную команду только в качестве суперпользователя.

Например, если вы работаете restart , пока вы не повышены до состояния суперпользователя, результат выглядит следующим образом.

Снимок экрана: команда перезапуска.

Чтобы выполнить эту команду в качестве суперпользователя, можно изменить контекст сеанса на корневой (выполнив sudo su) или добавить sudo префикс следующим образом:

sudo reboot

Теперь операция перезапуска выполняется должным образом виртуальной машиной.

Снимок экрана: команда перезагрузки.

Диспетчеры пакетов

Диспетчеры пакетов используются для установки, обновления и удаления приложений в Linux. Существует несколько различных диспетчеров пакетов, таких как DPKG (система управления пакетами Debian), RPM (Red Hat диспетчер пакетов), а Zypper для руководителей пакетов SUSE сами являются низким уровнем. Поэтому управлять программным обеспечением напрямую с помощью диспетчера пакетов может быть сложно. К счастью, существуют оболочки для этих средств, которые упрощают установку и удаление программного обеспечения. Например, yum — это оболочка вокруг RPM (Red Hat диспетчер пакетов), а APT — это оболочка вокруг DPKG (система управления пакетами Debian).

В этом руководстве предполагается, что вы используете систему управления пакетами Ubuntu. Эта система является производным от той же системы, которая используется дистрибутивом Debian GNU/Linux. Поэтому для установки программного обеспечения можно использовать APT.

В зависимости от выбранного варианта Linux вам может потребоваться использовать другие средства. Например, можно использовать yum для установки или удаления программного обеспечения, если вы используете Red Hat.

Обновление базы данных диспетчера пакетов

APT работает в базе данных доступных пакетов. Рекомендуется обновить диспетчеры пакетов, а затем обновить пакеты после новой установки.

Чтобы обновить базу данных пакета в Ubuntu, выполните команду sudo apt update. Обратите внимание, что sudo префикс вводится перед командой apt . Таким образом, вы выполняете apt команду в качестве корневого пользователя, не изменяя контекст сеанса на корневой пользователь.

Снимок экрана: команда sudo apt update.

Команда обновления на самом деле не обновляет ни один из установленных пакетов программного обеспечения. Вместо этого он обновляет базу данных пакета. Фактическое обновление выполняется командой sudo apt upgrade .

Снимок экрана: команда обновления sudo apt.

После ввода Y и нажатия клавиши ВВОД пакеты обновляются.

Снимок экрана: ход обновления пакетов.

Поиск пакетов с помощью диспетчеров пакетов

Следующий пример использования диспетчеров пакетов для поиска пакетов демонстрирует установку и удаление веб-сервера Apache 2.

Начните с поиска на веб-сервере Apache с помощью apt search команды. APT выполняет полнотекстовый поиск и отображает результаты. Вы установите HTTP-сервер Apache с помощью имени apache2пакета.

Снимок экрана: команда поиска apt.

Примечание.

Использование команды. Префикс sudo не добавляется, так как вам не нужно быть корневым пользователем для поиска по пакетам.

Вместо того чтобы выполнить APT searchпоиск в веб-браузере, вы можете найти имя пакета и команду APT в веб-браузере. В этом примере вы должны найти этот официальный документ Ubuntu, который четко объясняет, как установить Apache 2 в Ubuntu.

Отображение сведений о пакете

Чтобы убедиться, что у вас есть правильный пакет, выполните команду apt show , чтобы просмотреть сведения о пакете, как показано на следующем снимке экрана. Опять же, обратите внимание, что sudo префикс здесь не нужен.

Снимок экрана: команда apt show.

Вывод списка установленных пакетов и использование grep для фильтрации списка

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

Для этого используйте apt list --installed команду для перечисления установленных приложений на виртуальной машине. Вы также можете добавить команду grep , чтобы отфильтровать результаты, чтобы отобразить только приложения, содержащие apache2.

Примечание.

Команда grep выполняет поиск заданного термина в файле. Это очень мощный инструмент, так как он предоставляет несколько вариантов, таких как поиск с помощью regex или строки, инвертирование результатов поиска, игнорировать чувствительность к регистру, поиск с помощью нескольких терминов поиска и рекурсивную поддержку поиска.

При запуске apt list --installed | grep apache2пакет не установлен на виртуальной машине.

Снимок экрана: команда списка apt.

Установка пакета

Теперь, когда вы определили, что нашли нужный пакет и что он еще не установлен, вы можете продолжить установку. Выполните следующую команду:

sudo apt install apache2

Примечание.

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

Снимок экрана: команда sudo.

Введите Y (да) и нажмите клавишу ВВОД для установки Apache2. Диспетчер пакетов отобразит индикатор хода выполнения, чтобы указать состояние установки.

Снимок экрана: состояние установки.

При повторном выполнении той же apt list --installed | grep apache2 команды вы увидите, что пакет Apache 2 установлен вместе с некоторыми другими пакетами, связанными с apache2, которые устанавливаются автоматически.

Снимок экрана: команда grep списка apt.

Хотя вы установили Apache 2, вам нужно использовать Nginx. Таким образом, вам больше не нужен Apache, и вы можете удалить этот пакет из виртуальной машины.

Удалите пакеты.

Установка пакета (в данном случае Apache 2) является обратимой. Вы можете удалить пакет, если вы определите, что он не нужен. У вас есть два варианта команды для удаления пакетов:

  • apt remove: эта команда удаляет двоичные файлы, но не файл конфигурации. Полезно, если вы планируете переустановить пакет и хотите сохранить ту же конфигурацию.

  • apt purge: эта команда удаляет двоичные файлы и файл конфигурации.

Удалите пакет с помощью apt remove корневого пользователя, чтобы увидеть результат. Для этого выполните команду sudo apt remove apache2. Когда появится запрос на подтверждение удаления, введите Y и нажмите клавишу ВВОД.

Снимок экрана: команда sudo apt remove apache2.

Выходные данные команды содержат следующие сведения:

  • APT обнаружил, что установлены автоматические пакеты и больше не требуются.
  • APT удалил только apache2 пакет и рекомендуется удалить sudo apt autoremove связанные пакеты.

Переведите список установленных пакетов еще раз. Вы видите, что apache2 пакет удаляется, но автоматически установленные пакеты, предоставленные им, остаются установленными.

Снимок экрана: установленные пакеты.

Следуйте рекомендациям, чтобы снова запустить sudo apt autoremove , чтобы удалить оставшиеся пакеты.

Снимок экрана: команда sudo apt autoremove.

Выведите список установленных пакетов еще раз. Теперь пакеты, связанные с apache2, не должны быть установлены.

Снимок экрана: пакеты, связанные с apache2.

Эта процедура не завершена. Помните, что разница между и apt purge заключается в apt remove удалении файла конфигурации. В этом упражнении вы не удалили его. Так где это?

Поиск файла не включает диспетчеры пакетов. Вместо этого вы запустите стандартный поиск файлов в Linux. Существует несколько способов сделать это. Одной из наиболее распространенных команд поиска является find. Однако эта команда также запутана в использовании, поэтому мы не обсудим ее здесь. Вместо этого мы будем использовать whereis.

Примечание.

Linux очень хорошо документирован. Почти каждая команда имеет полезную страницу справки. Используйте команды "Человек" и "Информация", чтобы отобразить страницы справки в Linux. Например, чтобы узнать больше о командеfind, выполнить man find или выполнить.info find

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

whereis находит двоичные, исходные и ручные файлы для указанных имен команд.

При запуске whereis apache2необходимо найти установку /etc/apache2 .

Снимок экрана: команда whereis apache2.

Помните, что каталог /etc/ расположен в файлах конфигурации системы. Чтобы узнать, является ли apache2 файлом или папкой, выполните команду ll /etc/apache2. Как видно, это папка, и она содержит файлы конфигурации apache2.

Снимок экрана: команда apache2 и т. д.

Вы ожидаете apache2 , что эти файлы и папки будут содержаться, так как вы использовали apt remove команду, которая не удаляет файлы конфигурации.

На последнем шаге apt purge выполните команду, чтобы увидеть его эффект. Можно запустить очистку, чтобы очистить папку установки даже после удаления пакета. На следующем снимку экрана показано, что whereis ничего не было. Это связано с тем, что purge команда удалила файлы конфигурации вместе с двоичными файлами.

Снимок экрана: команда apt purge.

Следующие шаги

Часть 1.3. Установка .NET в Linux

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.