Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: .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
команду.
Чтобы стать пользователем корневой учетной записи, выполните sudo su
команду.
Вы должны заметить две вещи: когда вы становитсяе корневым, символ знака доллара ($
) становится символом знака фунта (#
). Кроме того, имя пользователя изменяется на root. При повторном выполнении той же id
команды вы увидите, что идентификатор пользователя и группы корня равно 0.
Внимание
Теперь вы подняли себя на роль суперпользователя в сеансе, у вас есть полный доступ к системе. Имейте в виду, что это потенциально опасная ситуация, и вы должны проявлять осторожность по мере продолжения.
Теперь выполните одну и ту же команду еще раз:
echo hello world > /etc/helloworld.txt
На этот раз вы не получаете никакого сообщения об ошибке. Чтобы проверить, создан ли файл, выполните следующую команду:
ll /etc/hello*
Команда ll
перечисляет файлы и вложенные папки, которые находятся в указанной папке. В этом примере /etc/hello*
значение параметра ограничивает выходные данные команды файлами или папками, имя которых начинается в hello
.
В выходных данных показано, что файл был создан. Что делать, если мы хотим проверить содержимое файла? Эта cat
команда помогает здесь. Чтобы просмотреть содержимое, выполните команду cat /etc/helloworld.txt
.
Команда 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 upgrade
.
После ввода Y и нажатия клавиши ВВОД пакеты обновляются.
Поиск пакетов с помощью диспетчеров пакетов
Следующий пример использования диспетчеров пакетов для поиска пакетов демонстрирует установку и удаление веб-сервера Apache 2.
Начните с поиска на веб-сервере Apache с помощью apt search
команды. APT выполняет полнотекстовый поиск и отображает результаты. Вы установите HTTP-сервер Apache с помощью имени apache2
пакета.
Примечание.
Использование команды. Префикс sudo
не добавляется, так как вам не нужно быть корневым пользователем для поиска по пакетам.
Вместо того чтобы выполнить APT search
поиск в веб-браузере, вы можете найти имя пакета и команду APT в веб-браузере. В этом примере вы должны найти этот официальный документ Ubuntu, который четко объясняет, как установить Apache 2
в Ubuntu.
Отображение сведений о пакете
Чтобы убедиться, что у вас есть правильный пакет, выполните команду apt show
, чтобы просмотреть сведения о пакете, как показано на следующем снимке экрана. Опять же, обратите внимание, что sudo
префикс здесь не нужен.
Вывод списка установленных пакетов и использование grep для фильтрации списка
После определения того, что найденный пакет является нужным, необходимо убедиться, что он еще не установлен на целевом сервере.
Для этого используйте apt list --installed
команду для перечисления установленных приложений на виртуальной машине. Вы также можете добавить команду grep , чтобы отфильтровать результаты, чтобы отобразить только приложения, содержащие apache2
.
Примечание.
Команда grep
выполняет поиск заданного термина в файле. Это очень мощный инструмент, так как он предоставляет несколько вариантов, таких как поиск с помощью regex или строки, инвертирование результатов поиска, игнорировать чувствительность к регистру, поиск с помощью нескольких терминов поиска и рекурсивную поддержку поиска.
При запуске apt list --installed | grep apache2
пакет не установлен на виртуальной машине.
Установка пакета
Теперь, когда вы определили, что нашли нужный пакет и что он еще не установлен, вы можете продолжить установку. Выполните следующую команду:
sudo apt install apache2
Примечание.
На этот раз мы префиксируем команду с помощью sudo
этой команды, так как эта команда изменяет систему. Таким образом, для правильного выполнения необходимо использовать корневую учетную запись. Диспетчер пакетов достаточно добрый, чтобы узнать, действительно ли вы хотите установить приложение.
Введите Y (да) и нажмите клавишу ВВОД для установки Apache2
. Диспетчер пакетов отобразит индикатор хода выполнения, чтобы указать состояние установки.
При повторном выполнении той же apt list --installed | grep apache2
команды вы увидите, что пакет Apache 2 установлен вместе с некоторыми другими пакетами, связанными с apache2, которые устанавливаются автоматически.
Хотя вы установили Apache 2, вам нужно использовать Nginx. Таким образом, вам больше не нужен Apache, и вы можете удалить этот пакет из виртуальной машины.
Удалите пакеты.
Установка пакета (в данном случае Apache 2) является обратимой. Вы можете удалить пакет, если вы определите, что он не нужен. У вас есть два варианта команды для удаления пакетов:
apt remove
: эта команда удаляет двоичные файлы, но не файл конфигурации. Полезно, если вы планируете переустановить пакет и хотите сохранить ту же конфигурацию.apt purge
: эта команда удаляет двоичные файлы и файл конфигурации.
Удалите пакет с помощью apt remove
корневого пользователя, чтобы увидеть результат. Для этого выполните команду sudo apt remove apache2
. Когда появится запрос на подтверждение удаления, введите Y и нажмите клавишу ВВОД.
Выходные данные команды содержат следующие сведения:
- APT обнаружил, что установлены автоматические пакеты и больше не требуются.
- APT удалил только
apache2
пакет и рекомендуется удалитьsudo apt autoremove
связанные пакеты.
Переведите список установленных пакетов еще раз. Вы видите, что apache2
пакет удаляется, но автоматически установленные пакеты, предоставленные им, остаются установленными.
Следуйте рекомендациям, чтобы снова запустить sudo apt autoremove
, чтобы удалить оставшиеся пакеты.
Выведите список установленных пакетов еще раз. Теперь пакеты, связанные с apache2, не должны быть установлены.
Эта процедура не завершена. Помните, что разница между и apt purge
заключается в apt remove
удалении файла конфигурации. В этом упражнении вы не удалили его. Так где это?
Поиск файла не включает диспетчеры пакетов. Вместо этого вы запустите стандартный поиск файлов в Linux. Существует несколько способов сделать это. Одной из наиболее распространенных команд поиска является find
. Однако эта команда также запутана в использовании, поэтому мы не обсудим ее здесь. Вместо этого мы будем использовать whereis
.
Примечание.
Linux очень хорошо документирован. Почти каждая команда имеет полезную страницу справки. Используйте команды "Человек" и "Информация", чтобы отобразить страницы справки в Linux. Например, чтобы узнать больше о командеfind
, выполнить man find
или выполнить.info find
Согласно странице справки для whereis
, определение выглядит следующим образом:
whereis
находит двоичные, исходные и ручные файлы для указанных имен команд.
При запуске whereis apache2
необходимо найти установку /etc/apache2 .
Помните, что каталог /etc/ расположен в файлах конфигурации системы. Чтобы узнать, является ли apache2 файлом или папкой, выполните команду ll /etc/apache2
. Как видно, это папка, и она содержит файлы конфигурации apache2.
Вы ожидаете apache2
, что эти файлы и папки будут содержаться, так как вы использовали apt remove
команду, которая не удаляет файлы конфигурации.
На последнем шаге apt purge
выполните команду, чтобы увидеть его эффект. Можно запустить очистку, чтобы очистить папку установки даже после удаления пакета. На следующем снимку экрана показано, что whereis
ничего не было. Это связано с тем, что purge
команда удалила файлы конфигурации вместе с двоичными файлами.
Следующие шаги
Часть 1.3. Установка .NET в Linux
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.