Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Краткое содержание
Введение 5
Часть I. Выполнение основных задач управления системой
1
Часть III: Выполнение расширенных задач системного администрирования
Сетевые элементы:
2
Об авторе
Сандер ван Вугт - независимый тренер, автор и консультант по Linux, живущий в
Нидерландах. Сандер является автором самой продаваемой системы сертификации Red Hat.
Полный видеокурс администратора (RHCSA) и сертифицированный инженер Red Hat
(RHCE). Он также написал множество книг на различные связанные с Linux темы и множество
статей для публикаций по Linux по всему миру.
Сандер преподает в классаъ Red Hat, Linux + и LFCS с 1994 года. Как консультант, он
специализируется на решениях Linux высокой доступности, производительности и оптимизации.
Вы можете найти более подробную информацию о Сандере на его веб-сайте по адресу
http://www.sandervanvugt.com.
Для получения дополнительной информации о сертификации RHCSA и дополнительных
ресурсах посетите страницу сертификации автора Red Hat по адресу http://www.rhatcert.com/.
Посвящение
Эта книга посвящена моей семье: Флоренс, Франку и Алексу. Вместе мы сделали великие
достижения за последний год.
Благодарности
Эта книга не могла бы быть написана без помощи всех людей, которые внесли свой вклад
к её созданию. Я хочу поблагодарить сотрудников Дениз Линкольн и Элли Брю. Мы много
работали вместе на протяжении многих лет, и эта книга - еще одна веха на нашем пути к успеху!
Email: community@informit.com
Читательские услуги
Зарегистрируйте свою копию Red Hat RHCSA 8 Cert Guide на сайте
www.pearsonitcertification.com для удобного доступа к загрузкам, обновлениям и исправлениям по
мере их появления. Чтобы начать процесс регистрации, перейдите на сайт
www.pearsonitcertification.com/ зарегистрируйтесь и войдите в систему или создайте учетную
запись *. Введите ISBN продукта 9780135938133 и нажмите "Отправить". Когда процесс будет
завершен, вы найдете любой доступный бонус содержащийся в Зарегистрированных продуктах.
3
* Обязательно установите флажок, что вы хотели бы услышать от нас, чтобы получать
эксклюзивные скидки на будущие выпуски этого продукта.
4
Введение
Добро пожаловать в Red Hat RHCSA 8 Cert Guide. Экзамены Red Hat - одни из сложных в
бизнесе, и это руководство станет важным инструментом, который поможет вам подготовиться
сдать экзамен на сертифицированного системного администратора Red Hat (RHCSA).
Как инструктор с более чем 20-летним опытом преподавания Red Hat Enterprise Linux, я
много раз сдавал экзамен RHCSA (и экзамен RHCE), поэтому я могу быть в курсе хода экзамена,
и знаю, что появилось нового или что изменилось в экзаменах.
Я делюсь с вами своими знаниями в этом всеобъемлющем руководстве по сертификации,
чтобы вы получили руководство, необходимое для сдачи экзамена RHCSA.
Экзамен RHCSA недавно был обновлен для Red Hat Enterprise Linux 8. Эта книга содержит
все, что вам нужно знать, чтобы сдать экзамен RHCSA. Как вы увидите, это Руководство
охватывает все задачи экзамена и состоит из 27 глав, более чем 80 упражнений, 4 практических
экзамена, обширный глоссарий и часы видео-обучения. Этот Cert Guide - лучший ресурс, который
вы можете получить для подготовки и сдачи экзамена RHCSA.
Цели и методы
Чтобы изучить темы, описанные в этой книге, рекомендуется создать свою тестовую среду.
Вы не станете специалистом RHCSA без постоянной практики. В упражнениях, включенных в
каждую главу книги, вы найдете все примеры, которые вам нужны, чтобы понять, что находится
на экзамене и досконально изучить материал, необходимый для его прохождения. Упражнения в
главах дают пошаговые процедуры, которым вы можете следовать, чтобы найти рабочие решения,
которые даст вам возможность получить реальный опыт до сдачи экзамена.
Каждая глава также включает в себя одну или несколько лабораторных работ в конце главы.
Эти лаборатории задают вопросы, которые похожи на вопросы, которые могут возникнуть на
экзамене. Решения не предусмотрены для э тих лабораторных работ, и это сделано специально,
потому что вам необходимо тренироваться, проверяя свою работу перед экзаменом. На экзамене
вы тоже должны быть в состоянии убедиться, что решение работает должным образом.
Не забудьте также посетить сопутствующий веб-сайт https://www.rhatcert.com/ этой книги,
на котором представлены дополнительные практические экзамены, приложения и видеотренинги
- все ключевые компоненты обучения для сдачи экзамена.
Чтобы максимально упростить работу с заданиями в этой книге, полная лабораторная среда
- это сделать свое.
Эта книга содержит всю необходимую информацию для подготовки к сдаче
экзаменов. Но если вы хотите получить больше информации и практического опыта у меня есть
несколько обучающих видео, которые включают в себя следящие материалы:
Помимо этих продуктов, вы также можете оценить мой сайт http://rhatcert.com. Через этот
веб-сайт я предоставляю обновленную информацию обо всем, что полезно для кандидатов на
экзамены.
Я рекомендую вам зарегистрироваться на сайте, чтобы я мог отправлять вам сообщения о
важные обновления, которые я сделал доступными. Кроме того, вы будете время от времени
5
получать обновления видео на моем канале на YouTube, rhatcert Я надеюсь, что эти ресурсы
предоставят вам все необходимое для сдачи экзамена на сертифицированного системного
администратора Red Hat. Удачи!
7
главе рассказывается о некоторых методах, которые можно применить, когда обычный
запуск сервера невозможен.
▪ Глава 19: Введение в создание сценариев оболочки Bash. Некоторые задачи являются
сложными и требуют повторного выполнения. Такие задачи - идеальные кандидаты для
оптимизации с помощью сценариев оболочки. В этой главе вы узнаете, как использовать
условные структуры в сценариях оболочки для эффективной автоматизации задач.
Чтобы помочь вам распределить учебное время в изучение книги, определю основные
моменты в главах, которые помогут вам с максимальной пользой использовать свое время:
8
▪ «Знаю ли я это уже?» Опрос: каждая глава начинается с проверочного опроса, который
помогает определить количество времени, которое вам нужно потратить на изучение этой
главы, и конкретные темы, на которых вам нужно сосредоточиться.
▪ Основные темы: Это основные разделы каждой главы. Они объясняют протоколы,
концепции и конфигурацию тем в этой главе.
▪ Задачи подготовки к экзамену: После раздела «Основные темы» каждой главы в разделе
«Задачи подготовки к экзамену» перечислен ряд учебных заданий, которые вы должны
выполнить. Каждая глава включает в себя упражнения, которые имеют наибольший смысл
для изучения тем в этой главе. Данное действие включают следующее:
▪ Контрольные вопросы: Вопросы в конце каждой главы позволяют лучше понять темы,
которые обсуждались в главе.
▪ Лабораторные работы в конце главы: настоящие лаборатории дают вам правильное
представление о том, что экзаменационное задание выглядит так. Лабораторные работы в
конце главы - это ваш первый шаг в понимание, как на самом деле выглядят
экзаменационные задания.
Другие особенности
В дополнение к особенностям каждой из основных глав, эта книга в целом содержит
дополнительные учебные ресурсы на сопутствующем веб-сайте, в том числе следующие:
▪ Четыре практических экзамена: Red Hat RHCSA 8 Cert Guide включает четыре
практических экзамена. Вы найдете два в книге и два дополнительных экзамена на
сопутствующем веб-сайте; они представлены в виде PDF-файлов, чтобы вы могли
дополнительно попрактиковаться в проверке своих навыков перед сдачей экзамена в
испытательном центре.
▪ Более двух часов обучающего видео. Дополнительный веб-сайт содержит более двух
часов инструкций из пользующегося спросом полного видеокурса для
сертифицированных системных администраторов Red Hat (RHCSA), 3-е издание.
В таблице 1 подробно описаны все задачи экзамена RHCSA в этой книге, чтобы вам было
легче составить успешный план сдачи экзамена.
9
Таблица 1 Обзор задач RHCSA
10
Найдите и интерпретируйте лог файлы и Настройка ведения журнала 13
журналы
Сохранять системные журналы Настройка ведения журнала 13
Запуск, остановка и проверка статуса Настройка сети 8
сетевых сервисов
Безопасная передача файлов между Подключение к Red Hat 5
системами Enterprise Linux 8
Список, создание и удаление разделов на Управление хранилищем 14
MBR и GPT диски
Создание и удаление физических томов Управление расширенным 15
хранилищем
Назначение физических томов группам Управление расширенным 15
томов хранилищем
Создание и удаление логических томов Управление расширенным 15
хранилищем
Настроить системы для монтирования Управление хранилищем 14
файловых систем при загрузке по
универсально уникальному ID (UUID) или
метки (якрлыка)
Добавить новые разделы и логические Управление хранилищем 14
тома, а также раздела подкачки swop
неразрушающим методом
Создавать, монтировать, размонтировать и Управление хранилищем 14
использовать файловые системы vfat, ext4
и xfs
Смонтировать и размонтировать сетевую Доступ к сетевому хранилищу 24
файловую систему, использующие NFS
Расширение существующих логических Управление расширенным 15
томов хранилищем
Создать и настроить set-GID на каталоги Управление разрешениями 7
для совместной работы
Настройка сжатия диска Управление расширенным 15
хранилищем
Управление многоуровневым хранилищем Управление расширенным 15
хранилищем
Диагностика и исправление проблем с Управление разрешениями 7
разрешениями файла
Планирование задач с помощью at и cron. Планирование задач 12
11
Запускать и останавливать службы, Работа с Systemd 11
настраивать службы для автоматического
запуска при загрузке
Настройте системы для загрузки Управление и понимание 17
определенную цель(target) автоматически процедуры загрузки
Настройка клиентов службы времени Настройка служб времени 25
Установите и обновите пакеты Управление программным 9
программного обеспечения из Red Hat обеспечением
Network, удаленного репозитория, или из
локальной файловой системы
Работа с package module streams Управление ПО 9
Измените системный загрузчик. Управление и понимание 17
Процедура загрузки
Настройка адресов IPv4 и IPv6 Настройка сети 8
Настройка разрешения имени хоста Настройка сети 8
Настройте сетевые службы для Настройка сети 8
автоматического запуска при загрузке
Ограничьте доступ к сети с помощью Настройка межсетевого экрана 23
firewall-cmd/ firewall
Создание, удаление и изменение аккаунта Управление пользователями и 6
локального пользователя группами
Изменение паролей и настройка Управление пользователями и 6
устаревания паролей для локальных группами
учетных записей пользователей
Создание, удаление и изменение Управление пользователями и 6
локальных групп и членство в группах группами
Настройка доступа суперпользователя Управление пользователями и 6
группами
Управление безопасностью
Настройте параметры брандмауэра с Настройка межсетевого экрана 23
помощью firewall-cmd/firewalld
Настроить аутентификацию на основе Настройка SSH 20
ключей для SSH
Установите enforcing и permissive режимы Управление SELinux 22
для SELinux
Перечислить и идентифицировать файл Управление SELinux 22
SELinux и контекст процесса
12
Восстановить контексты файлов по Управление SELinux 22
умолчанию
Используйте логические параметры для Управление SELinux 22
изменения системы настройки SELinux
Процедура диагностики и адресации Управление SELinux 22
SELinux нарушения политики
Зарегистрируйте эту печатную версию Red Hat RHCSA 8 Cert Guide, чтобы получить доступ
к бонусу контент онлайн.
К этой печатной версии этого названия прилагается веб-сайт с сопутствующим контентом.
У тебя есть онлайн-доступ к этим файлам, выполнив следующие действия:
Обратите внимание, что многие файлы сопутствующего контента могут быть очень
большими, особенно файлы изображений и видео.
Если вам не удается найти файлы для этого заголовка, следуя инструкциям, посетите
www.pearsonITcertification.com/contact и выберите параметр «Проблемы сайта/Комментарии»
(Problems/Comments). Представитель службы поддержки клиентов поможет вам.
Эта книга также включает эксклюзивное предложение на 70% скидку на Полный видеокурс
Red Hat Certified System Administrator (RHCSA), 3rd Edition.
13
Глава 1
Чтобы узнать, как работать с Red Hat Enterprise Linux в качестве администратора, вам
сначала необходимо установить его. В этой главе вы узнаете, как создать среду, в которой вы
сможете выполнять все упражнения из этой книги.
На экзамене RHCSA вам не нужно устанавливать Red Hat Enterprise Linux.
Однако, поскольку вам необходимо установить среду, позволяющую протестировать все
элементы, обсуждаемые в этой книге, вы начнете с установки Red Hat Enterprise Linux в этой главе.
В этой главе описаны все шаги, с которыми вы столкнетесь при установке RHEL 8. В ней также
обсуждается, как настроить среду, в которой вы можете выполнять все упражнения из этой книги.
Поскольку Red Hat Enterprise Linux содержит зарегистрированные торговые марки, я
покажу установку на примере CentOS. Единственное, что отличается в CentOS, - это брэндинг,
который в CentOS можно использовать бесплатно. Все программное обеспечение в CentOS такое
же, как и в Red Hat Enterprise Linux. Поскольку CentOS не содержит зарегистрированных товарных
знаков, это распространенное и популярное решение, которое позволяет людям научиться
работать с Red Hat Enterprise Linux.
Опрос «Знаю ли я это уже?» позволяет вам оценить, следует ли вам полностью прочитать
эту главу или перейти к разделу «Задачи подготовки к экзамену». Если вы сомневаетесь в своих
ответах на эти вопросы или в собственной оценке своих знаний по темам, прочитайте всю главу.
В Таблице 1-1 перечислены основные заголовки в этой главе и соответствующие им вопросы
«Знаю ли я это уже?» опроса. Вы можете найти ответы в Приложении «A», «Ответы на тесты
«Знаю ли я это уже?» И «Контрольные вопросы».
14
b. CentOS 8
c. Scientific Linux 8
d. RHEL 8
a. Сертификация оборудования
b. Сертификация программного обеспечения
c. Право звонить в службу поддержки
d. Программные обновления
a. Ext3
b. Ext4
c. XFS
d. Btrfs
a. Fedora содержит функции, которые могут быть доступны или недоступны в будущих
выпусков RHEL.
b. Дистрибутивы Fedora находятся на более позднем этапе разработки, чем RHEL.
c. Программное обеспечение Fedora нестабильно.
d. Программное обеспечение в Fedora может отличаться от того же программного
обеспечения в RHEL.
a. Время и дата
b. Клавиатура
c. Языковая поддержка
d. Устранение неполадок существующей установки
15
b. Пароль не соответствует требованиям политики паролей.
c. Также вам необходимо создать пользователя.
d. Если используется незащищенный пароль, необходимо дважды нажать Готово.
10. При установке сервера, использующего логические тома LVM, вы получите как
минимум
три тома хранения (разделы или LVM). Что из следующего не является частью из них?
a. /boot
b. /var
c. /
d. Swap
Основные Темы
Перед тем, как вы начнете устанавливать Red Hat Enterprise Linux, будет полезно немного
подготовиться, как описано в этом разделе. Сначала вы узнаете, что такое Red Hat Enterprise Linux.
Затем вы узнаете, как получить доступ к программному обеспечению. Затем мы обсудим
надстройки Red Hat Enterprise Linux, а также требования к установке. После того, как вы узнаете
все об этом, вы перейдете к следующему разделу, где узнаете, как установить Red Hat Enterprise
Linux.
RHEL 8 - это дистрибутив Linux. Как вы, наверное, знаете, Linux - это бесплатная
операционная система. Это означает, что исходный код всех программ доступен бесплатно.
Однако некоторые корпоративные дистрибутивы Linux продаются как коммерческие продукты со
встроенной поддержкой и обслуживанием, как в случае с RHEL 8; бесплатные загрузки
RHEL 8 ограничены. Доступна 60-дневная ознакомительная версия, или же вы можете
зарегистрироваться для получения бесплатной подписки разработчика Red Hat на
https://developers.redhat.com.
Чтобы использовать RHEL 8, вам нужна подписка. Эта подписка дает вам право на
несколько дополнительных элементов, таких как поддержка и исправления. Когда вы платите за
Red Hat Enterprise Linux, Red Hat предлагает вам поддерживаемую операционную систему
Enterprise Linux, которая имеет некоторые ключевые преимущества, которые являются обычным
требованием в корпоративных средах:
16
▪ Различные уровни поддержки и помощи, в зависимости от того, какой тип подписки вы
приобрели.
▪ Сертифицированная операционная система, которая гарантированно работает и
поддерживается на определенных моделях оборудования.
▪ Сертифицированная платформа для запуска корпоративных приложений, таких как
промежуточное ПО SAP, Oracle Database и многие другие.
▪ Доступ к клиентскому порталу Red Hat по адресу https://access.redhat.com, где вы можете
найти очень подробную документацию, доступную только для клиентов.
▪ CentOS 8
▪ Fedora
Использование CentOS
17
CentOS 8 также является отличным выбором для работы с этой книгой; он предлагает все,
что может предложить RHEL, но вам не нужно за это платить. Вы можете загрузить CentOS 8 с
https://www.centos.org. Обратите внимание, что CentOS не всегда имеет самую последнюю версию
программного обеспечения RHEL и может отставать от последней версии RHEL от пары недель
до пары месяцев.
Другие дистрибутивы
СОВЕТ
Если вы устанавливаете Red Hat с установочного диска RHEL 8, но не регистрируете его, у вас не
будет доступа к репозиторию, поэтому вам нужно знать, как настроить доступ к репозиторию
вручную. В главе 9 «Управление программным обеспечением» вы узнаете, как это сделать.
Требования к установке
▪ 1 ГиБ ОЗУ
▪ Жесткий диск емкостью 10 ГиБ
18
▪ Сетевая карта
СОВЕТ
Один ГБ составляет 1000 × 1000 × 1000 байт. Производители оборудования обычно работают с
числами, кратными 1000; однако это не соответствует принципу работы компьютера, поэтому
большая часть компьютерного программного обеспечения работает с KiB, MiB и GiB. В этом
случае один ГиБ равен 1024 × 1024 × 1024 байта (что составляет 1,07 ГБ).
ПРИМЕЧАНИЕ.
Некоторые ресурсы в Интернете могут упоминать другие минимальные требования. Для экзамена
RHCSA это не проблема.
Чтобы настроить среду для работы с этой книгой, я предлагаю вам начать с установки
одного сервера CentOS или RHEL 8, следуя инструкциям в следующем разделе. Для глав в Части
IV «Управление сетевыми службами» полезно если у вас есть второй сервер. Второй сервер не
имеет особых требований.
Чтобы настроить среду для подготовки к получению сертификата, я рекомендую вам
использовать решение для виртуализация настольных компьютеров, например, VMware
Workstation (или Fusion, если вы используете Mac) или Oracle VirtualBox. Преимущество
использования одного из них заключается в том, что вы можете использовать моментальные
снимки (snapshots), что позволяет легко вернуться к предыдущему состоянию конфигурации.
Другие решения виртуализации, такие как KVM, также поддерживаются, но поскольку KVM
работает в Linux, вам потребуются уже некоторые знания Linux, если вы хотите начать с KVM. Вы
также можете установить на реальном оборудовании, но это решение будет менее гибким.
СОВЕТ
Во всех главах вы найдете пошаговые упражнения, которые расскажут вам, что именно нужно
делать для настройки определенных служб. В конце всех глав вы найдете лабораторные работы,
которые предоставляют задания, очень похожие на типы заданий, с которыми вы столкнетесь на
экзамене. Чтобы получить максимальную отдачу от лабораторных работ в конце главы,
рекомендуется начинать с чистой среды. Самый эффективный способ сделать это - создать
моментальные снимки состояния ваших виртуальных машин в начале главы. Это позволяет вам
вернуться в состояние, в котором были ваши виртуальные машины, когда вы начали работу над
главой, сохранив при этом всю работу, которую вы проделали в предыдущих главах.
19
установочный DVD-диск (или его ISO-образ) и загрузите компьютер, на который вы хотите
установить программное обеспечение. Следующие шаги описывают, как действовать с того
момента, как вы увидите загрузочный экран с установочного DVD. Обратите внимание, что в
пошагово описано установка CentOS 8, и все показаное на рисунках также основано на CentOS 8.
Тем не менее, процедура применяется так же и к установке Red Hat Enterprise Linux 8:
Шаг 1.
После загрузки с DVD вы увидите меню загрузки CentOS 8. В меню вы можете выбрать
один из нескольких вариантов:
Шаг 2.
Чтобы начать обычную установку, выберите вариант загрузки «Установить CentOS 8.0.0»
(Install CentOS 8.0.0)(см. Рисунок 1-1). Сей час загрузится система установки, и вы сможете
продолжить в течение минуты.
РИСУНОК 1-1. Выберите «Установить CentOS 8.0.0» (Install CentOS 8.0.0), чтобы начать
установку.
20
Шаг 3
После загрузки базовой системы, из которой вы будете выполнять установку, вы увидите экран
«Добро пожаловать в CentOS 8.0.0». На этом экране вы можете выбрать язык и настройку
клавиатуры. Для экзамена RHCSA нет смысла выбирать что-либо, кроме английского. Если вы
работаете с неамериканской клавиатурой, на этом экране вы можете выбрать настройка
клавиатуры. Обязательно выберите соответствующую настройку клавиатуры, после чего нажмите
«Продолжить» (Continue), чтобы продолжить (см. Рисунок 1-2).
РИСУНОК 1-2 Выберите соответствующий язык и настройку клавиатуры, прежде чем
продолжить
РИСУНОК 1-3. Укажите полную конфигурацию вашего сервера при установке в окне «Обзор
установки» (Installation Summary)
21
Шаг 4
После выбора настроек клавиатуры и языка вы увидите экран «Сводная информация об
установке» (см. Рисунок 1-3). На этом экране вы указываете все настройки, которые хотите
использовать. На этом экране у вас есть несколько различных вариантов:
▪ Клавиатура: используется для изменения расположения клавиатуры.
▪ Языковая поддержка: используется для добавления поддержки дополнительных языков.
▪ Время и дата: используются для указания текущего времени и даты, а также часового
пояса.
▪ Источник установки: используется для указания источника установки. Обычно вы
выполняете установку с установочного DVD.
▪ Выбор программного обеспечения: предлагает различные шаблоны установки, чтобы
легко установить набор пакетов по умолчанию.
▪ Место установки: используется для определения диска (дисков) для копирования файлов
во время установки.
▪ KDUMP: позволяет использовать ядро KDUMP. Это ядро, которое создает дамп ядра, если
что-то пойдет не так.
▪ Сеть и имя хоста: установите здесь IP-адрес и соответствующие настройки.
▪ Политика безопасности: предлагает ограниченный набор политик безопасности,
позволяющих легко усилить защиту сервера.
▪ Назначение системы: позволяет указать, для какой цели используется эта система. Эту
информацию можно легко передать в службу поддержки Red Hat для облегчения любых
случаев, когда требуется поддержка.
На этом экране «Сводная информация об установке» вы можете увидеть, нужно ли еще
настраивать элементы - эти элементы отмечены восклицательным знаком, а описание - красным
текстом. Пока существуют какие-либо проблемы, вы не можете нажимать кнопку «Начать
установку» (т. е. Она отключена). Во всех случаях Вам не придется изменять настройки для
каждого параметра, но для полноты картины следующие шаги описывают различные настройки,
доступные при установке в окне «Обзор установки» (Installation Summary), где это возможно с
рекомендованными изменениями.
Шаг 5.
Щелкните параметр «Клавиатура», чтобы просмотреть параметры настройки раскладки
клавиатуры. На этом экране вы также можете выбрать дополнительную раскладку клавиатуры,
это полезно, если ваш сервер используется администраторами, использующими разные
раскладки клавиатуры. Поддерживаются не только различные языковые настройки, но и
также разные компоновки оборудования. Если многие администраторы используют Apple
Компьютер Mac, например, вы можете выбрать стандартную раскладку клавиатуры
для Mac в соответствующем регионе.
После добавления другой раскладки клавиатуры вы также можете настроить варианты
переключения раскладки клавиатуры. Это последовательность клавиш, которая используется для
переключения между разными видами языковых раскладок. Выберите «Параметры» (Options),
чтобы указать комбинацию клавиш, которую вы хотите использовать для переключения раскладки
клавиатуры. После указания конфигурации, которую вы хотите использовать, нажмите «Готово»
(Done), чтобы вернуться к окну «Обзор установки» (Installation Summary).
Шаг 6.
22
такой же, как вариант языковой поддержки, который вы использовали на шаге 3. Если вы
уже настроили языковые настройки, которые будут использоваться, то здесь ничего менять не
нужно.
Шаг 7.
Щелкните «Время и дата» (Time & Date), чтобы увидеть карту мира, на которой вы можете
легко выбрать часовой пояс, в котором вы находитесь (см. Рисунок 1-4). Кроме того, вы можете
выбрать регион и город, в котором вы находитесь, из соответствующих выпадающих списков. Вы
также можете установить текущую дату и время, а после настройки сети вы можете указать
сетевой протокол времени (NTP), который будет использоваться для синхронизации времени с
серверами времени в Интернете. Эта опция недоступна, если сеть недоступна. При использовании
сетевого времени вы можете добавить сетевые серверы времени, которые будут использоваться,
щелкнув значок конфигурацию в верхней правой части экрана. После указания параметров,
которые вы хотите использовать, нажмите «Готово» (Done) в верхнем левом углу экрана, чтобы
записать выбранные параметры.
Шаг 8.
Шаг 9.
23
Рис. 1-5 Выбор источника установки
Рисунок 1-6 Убедитесь, что вы выбрали сервер с графическим интерфейсом для каждого
сервера, который вы собираетесь использовать для упражнений в этой книге.
24
ПРИМЕЧАНИЕ
Некоторые люди говорят, что настоящие администраторы не используют сервер с шаблоном
установки GUI. Подготовка к экзамену RHCSA - это не значит быть настоящим администратором.
Большим преимуществом использования сервера с шаблоном установки графического интерфейса
пользователя является то, что он обеспечивает простой в использовании интерфейс. Некоторые
инструменты, обсуждаемые в этой книге, работают только в графическом интерфейсе. Кроме того,
при использовании сервера с графическим интерфейсом вы можете использовать несколько окон
терминала одновременно, и это делает работу с командной строкой RHEL очень простой!
Шаг 10.
После установки программного обеспечения необходимо указать, куда вы хотите
установить операционную систему. Щелкните пункт «Место установки» (Installation Destination)
на экране «Обзор установки» (Installation Summary). По умолчанию выбрано автоматическое
разбиение на разделы, и вам нужно только подтвердить дисковое устройство, которое вы хотите
использовать для автоматического разбиения на разделы (см. рис. 1-7). Также доступны многие
дополнительные параметры. Чтобы подготовить вашу установку ко всем упражнениям,
описанным в последующих главах этой книги, вы не можете просто использовать разделение по
умолчанию. Вместо этого вам нужна установка, которая использует диспетчер логических томов
(LVM) и сохраняет доступное дисковое пространство. Для этого на экране, показанном на Рисунке
1-7, выберите переключатель Пользовательский (Custom) в разделе «Конфигурация хранилища»
Storage Configuration. Затем убедитесь, что выбран диск, который вы хотите использовать, и
нажмите «Готово» (Done), чтобы продолжить. Обратите внимание, что иногда отображаются не
все параметры, и вы видите полосу прокрутки справа от экрана. Если это так, прокрутите вниз,
чтобы отобразить дополнительные параметры установки.
25
РИСУНОК 1-7. Выберите «Пользовательский» (Custom) и нажмите «Готово» (Done), чтобы
продолжить.
СОВЕТ.
Если вы хотите использовать этот сервер для выполнения упражнений, описанных в следующих
главах, убедитесь, что у вас есть дисковое пространство, которое не выделено ни одному из
разделов. Вам потребуется неразмеченное дисковое пространство для работы с упражнениями по
разбиению на разделы и LVM, что является важной частью целей экзамена RHCSA.
После того, как вы укажете, что хотите настроить структуру диска вручную, вы увидите
экран ручного разбиения диска, показанный на рис. 1-8. Щелкните +, чтобы добавить новые
дисковые устройства. Чтобы настроить среду, которая требуется в этой книге, я рекомендую
использовать следующую структуру диска (на основе жесткого диска 20 ГиБ диск):
ПРИМЕЧАНИЕ
RHEL 8 по умолчанию использует файловую систему XFS. Эта файловая система не может быть
сжата; его можно только расширить. Поэтому иногда лучше использовать Ext4.
26
РИСУНОК 1-8. Настройка расширенного размещение диска.
27
РИСУНОК 1-11. Прежде чем записывать изменения на диск, вы можете убедиться, что все
в порядке
Шаг 11.
Следующая часть экрана «Обзор установки» (Installation Summary) позволяет настроить
сеть. Обратите внимание, что вы должны, что либо настроить. Если вы ничего не сделаете, ваш
сервер может не подключиться ни к какой сети. Щелкните «Сеть и имя хоста» (Network & Host
Name), чтобы настроить сеть. Это открывает экран что вы видите на рисунке 1-12.
РИСУНОК 1-12. На экране «Сеть и имя хоста» установите для сетевой карты значение
«Вкл.».
28
Сетевое подключение по умолчанию отключено. Обязательно включите его. После
включения сетевого подключения вы можете нажать «Настроить» (Configure), чтобы добавить
дополнительную конфигурацию. Работа в сети подробно обсуждается в главе 8 «Настройка сети»,
поэтому вам не нужно делать это сейчас, и вы можете просто оставить настройки по умолчанию,
которые получают IP-адрес от сервера (DHCP). Вы также можете оставить имя хоста по
умолчанию; вы также узнаете, как это изменить, в главе 8.
Шаг 12.
Параметр «Политика безопасности» позволяет усилить безопасность на сервере в
соответствии с некоторыми общепринятыми стандартами. В настоящее время поддерживаются
параметры PCI-DSS и OSPP. Откройте интерфейс и нажмите «Выбрать профиль» (Select Profile),
чтобы применить любой из них.
Шаг 13.
Последний параметр, доступный в «Обзор установки» (Installation Summary), позволяет
определить цель системы (System Purpose). Под этой опцией вы найдете несколько опций, которые
позволят вам указать, для чего вы используете свой сервер. Вы можете указать роль (например,
RHEL Server или RHEL Workstation), а также Соглашение об уровне обслуживания Red Hat.
Установка этих параметров может облегчить определение конкретных типов серверов в большой
корпоративной среде.
Шаг 14.
После задания всех параметров на экране «Обзор установки» (Installation Summary) вы можете
нажать «Начать установку», чтобы начать установку. Это немедленно запускает процедуру
установки, при этом в следующем окне будет запрошено настройки для пользователей. (см.
Рисунок 1-13).
29
РИСУНОК 1-13 Указание параметров обычного пользователя и пользователя root
Шаг 15.
На этом экране сначала нажмите Root Password и установите пароль password. Это не очень
безопасно, но, используя такой простой пароль, вы впоследствии избежите проблем, которые
могут возникнуть из-за того, что вы его не запомните. Вы должны указать пароль дважды, а также
вам потребуется дважды нажать «Готово» (Done) (потому что вы должны подтвердить, что
действительно хотите использовать слабый пароль).
Шаг 16.
Затем нажмите «Создание пользователя» (User Creation), чтобы создать пользователя (см.
Рис. 1-14). Введите имя пользователя student, и для этого пользователя также установите пароль
password. Опять же, вам нужно дважды нажать «Готово», чтобы подтвердить, что вы
действительно хотите использовать слабый пароль.
30
Шаг 17.
Когда установка будет завершена, вы увидите экран, показанный на рисунке 1-15. Теперь
вам нужно будет нажать Reboot, чтобы перезагрузить компьютер и завершить установку.
Шаг 18.
После перезагрузки вам необходимо выполнить еще пару дополнительных шагов по
настройке. Во-первых, вам нужно принять лицензионное соглашение. Для этого щелкните
красный текст «Лицензия не принята» (License Not Accepted), выберите «Я принимаю
лицензионное соглашение» (Accept the License Agreement), а затем нажмите «Готово» (Done) для
завершения. Теперь вы можете нажать «Завершить настройку», чтобы завершить настройку, после
чего откроется графическое окно входа в систему. НЕ настраивайте регистрацию в системе с
помощью диспетчера подписок; нам нужна очень специфическая настройка, и мы позаботимся об
этом в главе 9.
РИСУНОК 1-15 Перезагрузка для завершения установки
31
Резюме
В этой главе вы узнали, что такое Red Hat Enterprise Linux и как он соотносится с
некоторыми другими дистрибутивами Linux. Вы также узнали, как установить Red Hat Enterprise
Linux 8 или CentOS 8. Теперь вы готовы настроить базовую среду, которую можно использовать
для работы над всеми упражнениями из этой книги.
Задачи подготовки к экзамену
Как упоминалось в разделе «Как пользоваться этой книгой» во Введении, у вас есть
несколько вариантов подготовки к экзамену: лабораторные работы в конце главы; таблицы памяти
в Приложение B; Глава 26, «Заключительная подготовка»; и практические экзамены.
Обзорные вопросы
Следующие ниже вопросы помогут вам проверить свои знания концепций и терминологии,
а также широту ваших знаний. Вы можете найти ответы на эти вопросы в Приложении А.
1. Вы не хотите покупать лицензию RHEL, но хотите создать среду для практики перед
экзаменом. Какой дистрибутив вам следует использовать?
2. Что произойдет с конфигурацией сети, если вы ничего не укажете при установке?
3. Вы хотите установить минимальную систему. Сколько оперативной памяти вам нужно?
4. Почему рекомендуется иметь доступ в Интернет на всех устанавливаемых серверах?
5. Вы хотите установить виртуальную машину на компьютер без оптического дисковода.
Какую альтернативу выполнить установку проще всего?
6. Почему установить графический интерфейс - это хорошая идея?
32
Глава 2
a. 1&2> file
b. file 2>&1
33
c. >1&2 file
d. 1>2& file
a. /etc/profile
b. /etc/bashrc
c. ~/.bash_profile
d. ~/.bashrc
4. Вам нужен вывод команды ls, который будет использоваться в качестве ввода для команды
less. Какой из следующих примеров подойдет вам?
a. ls > less
b. ls >> less
c. ls >| less
d. ls | less
34
a. Нажмите Ctrl-r и начните вводить часть команды.
b. Напечатать символ «!» за которым следуют первые буквы команды.
c. Напечатать символ «!» за которым следует номер команды, как указано в истории.
d. Нажмите Ctrl-x, а затем номер в истории.
a. Команды
b. Файлы
c. Переменные
d. Все вышеперечисленное
8. Какая из следующих команд позволяет вам заменять каждое вхождение старого на новое
в текстовом файле, который открывается с помощью vi?
a. :%s/old/new/g
b. :%r/old/new/
c. :s/old/new/g
d. r:/old/new
9. Какой подход работает лучше всего, если во время процесса входа в систему вы хотите
показать сообщение всем пользователям, которые только что вошли в сеанс оболочки на
вашем сервере?
a. Поместите сообщение в /etc/issue.
b. Поместите сообщение в /etc/motd.
c. Поместите сообщение в /etc/profile.
d. Поместите сообщение в /etc/bashrc.
Основные Темы
35
Поэтому, когда мы говорим в этой книге о «оболочке shell», мы фактически говорим о оболочке
Bash. В этой главе представлен обзор некоторых элементов, с которыми вы столкнетесь при работе
с оболочкой.
Понимание команд
Работа с оболочкой shell - это работа с синтаксисом команд. Обычно синтаксис команды
состоит из трех основных частей: команды, ее параметров и аргументов.
Команда - это сама команда, например ls. Эта команда показывает список файлов в текущем
каталоге. Чтобы изменить поведение команды, вы можете использовать параметры (options).
Параметры являются частью программного кода и изменяют то, что делает команда. Например,
когда вы используете параметр -l с командой ls, отображается длинный список имен файлов и
свойств.
Слово аргумент немного сбивает с толку. Вообще говоря, это относится ко всему, к чему
обращается команда, поэтому все, что вы помещаете после команды, является аргументом
(включая параметры). Помимо параметров, которые можно использовать в качестве аргумента,
команды могут иметь и другие аргументы, которые служат целью для команды.
Давайте посмотрим на пример: команда ls -l /etc. У этой команды есть два разных
аргумента: -l и /etc. Первый аргумент - это опция, изменяющая поведение команды. Второй
аргумент - это цель, указывающая, где команда должна выполнять свою работу. Вы найдете эти
три элемента почти во всех командах, с которыми вы будете работать в среде Linux.
Выполнение команд
Назначение оболочки shell Linux - предоставить среду, в которой могут выполняться
команды. Shell заботится о правильной интерпретации команды, введенной пользователем. Для
этого оболочка различает три вида команд:
▪ Псевдонимы (Aliases)
▪ Внутренние команды
▪ Внешние команды
Псевдоним далее по тексту Aliases - это команда, которую пользователь может определить по
мере необходимости. Некоторые Aliases предоставляются по умолчанию; введите alias в
командной строке, чтобы получить обзор определённых Aliases. Чтобы определить псевдоним,
используйте Aliases newcommand = 'oldcommand', как в Aliases по умолчанию ll = 'ls -l --color =
auto', который уже был создан в вашей системе. Псевдонимы всегда выполняются в первую
очередь. Таким образом, если у вас есть псевдоним с именем ll, но также есть команда с именем ll,
псевдоним всегда будет иметь приоритет, если не используется полный путь.
Внутренняя команда - это команда, которая является частью самой оболочки и, как таковая, не
должна загружаться с диска отдельно. Внешняя команда - это команда, которая существует в виде
исполняемого файла на диске компьютера. Поскольку он должен быть прочитан с диска при
первом использовании, он немного медленнее. Когда пользователь выполняет команду, оболочка
shell сначала проверяет, является ли это внутренней командой; если это не так, shell ищет
исполняемый файл с именем, которое соответствует команде на диске. Чтобы узнать, является ли
36
команда внутренним файлом Bash или исполняемым файлом на диске, вы можете использовать
команду type. Пример:
1. $ type ls
ls is aliased to `ls --color=auto'
2. # type man
man is /usr/bin/man
Для поиска внешних команд используйте переменную $PATH. Эта переменная определяет
список каталогов, в которых выполняется поиск соответствующего имени файла, когда
пользователь вводит команду. Чтобы узнать, какую именно команду будет использовать оболочка,
вы можете использовать команду which. Например, введите which ls, чтобы узнать, где shell
найдёт файл команды ls. Еще более сильная команда - type. Эта команда также будет работать с
внутренними командами и псевдонимами.
Вы должны заметить, что по соображениям безопасности текущий каталог не находится в
переменной $PATH, и Linux не смотрит в текущий каталог, чтобы узнать, доступна ли конкретная
команда из этого каталога. Вот почему вам для выполнения команды из текущего каталога, но не
указана в переменной $PATH, необходимо добавить символы ./ перед ней. Точка обозначает
текущий каталог, и, запустив его как ./ , вы указываете Bash искать команду в текущем каталоге.
Хотя такой способ выполнения команд не является распространенным явлением, вам придется
делать это для запуска сценариев, которые вы создали в текущем каталоге.
Переменная $PATH может быть установлена для конкретных пользователей, но в целом
большинство пользователей будут использовать одну и ту же переменную $PATH. Единственным
исключением является пользователь root, которому требуется доступ к определенным командам
администрирования. В упражнении 2-1 вы узнаете некоторые основы работы с командами.
Перенаправление ввода/вывода
37
Таблица 2-2 Обзор стандартных входов, выходов и ошибок
Итак, если вы запустите команду, эта команда будет ожидать ввода с клавиатуры и обычно
отправляет свой вывод на монитор вашего компьютера, не делая различия между нормальным
выводом и ошибками. Однако некоторые команды запускаются в фоновом режиме, а не из
текущего сеанса терминала, поэтому у этих команд нет сеанса монитора или консоли для отправки
вывода, и они не слушают ввод с клавиатуры, чтобы принять свой стандартный ввод. Вот здесь и
пригодится перенаправление. Перенаправление также полезно, если вы хотите работать с вводом
из альтернативного расположения, например файл.
Программы, запускаемые из командной строки, понятия не имеют, что они читают или что
пишут. Они просто читают то, что ядро Linux называет файловым дескриптором 0, если они хотят
читать из стандартного ввода, и они записывают в файловый дескриптор номер 1 для отображения
вывода без ошибок (также известного как «стандартный вывод» (standard output)) и в файловый
дескриптор 2, если у них есть сообщения об ошибках, которые нужно вывести. По умолчанию эти
файловые дескрипторы связаны с клавиатурой и экраном. Если вы используете символы
перенаправления, такие как <,> и |, оболочка shell соединяет файловые дескрипторы с файлами
или другими командами. Давайте сначала посмотрим на < и >. Позже мы обсудим pipe (символ |).
В таблице 2-3 показаны наиболее распространенные символы перенаправления, которые
используются в оболочке Bash.
Перенаправление Объяснение
38
/dev/console или /dev/tty1, если вы хотите отменить вывод команды, вы можете перенаправить на
/dev/null (отправить в никуда). Обратите внимание, что для доступа к большинству файлов
устройства вы должны быть root.
Использование pipe |
1. Откройте shell, как пользователь и введите cd без аргументов. Это гарантирует, что
домашний каталог этого пользователя является текущим каталогом во время работы над
этим упражнением. Введите pwd, чтобы убедиться в этом.
2. Введите ls. Вы увидите результаты на экране.
3. Введите ls> /dev/null. Это перенаправляет STDOUT на нулевое устройство, в результате
чего вы не увидите вывод выполнения команды на экране.
4. Введите ls ilwehgi> /dev/null. Эта команда показывает на экране сообщение «нет такого
файла или каталога». Вы видите это сообщение, потому что это не STDOUT, а скорее
сообщение об ошибке, записанное в STDERR.
5. Введите ls ilwehgi 2> /dev/null. Теперь вы больше не увидите сообщение об ошибке.
6. Введите ls ilwehgi Documents 2> /dev/null. Это показывает имя папки Documents (только в
том случае если файл с таким именем существует в вашем каталоге можно предварительно
выполнить команду >Documents для его создания) в вашем домашнем каталоге, скрывая
сообщение об ошибке.
7. Введите ls ilwehgi Documents 2> /dev/null> output. В этой команде вы по-прежнему пишете
сообщение об ошибке в /dev/null при отправке STDOUT в файл с выходным именем,
который будет создан в вашем домашнем каталоге.
8. Введите cat output, чтобы отобразить содержимое этого файла.
9. Введите echo hello> output. Это перезаписывает содержимое выходного файла.
10. Введите ls >> output. Это добавляет результат команды ls в выходной файл с именем
output.
11. Введите ls -R /. На мониторе компьютера отображается длинный список файлов и папок.
(Вы можете нажать Ctrl-C, чтобы остановить [или подождать некоторое время]).
12. Тип ls -R | less. Это показывает тот же результат, но на страницах команды less, где вы
можете прокручивать вверх и вниз с помощью клавиш со стрелками на клавиатуре.
13. Введите q, чтобы закрыть меньше. Это также завершит программу ls.
14. Введите ls> /dev/tty1. Это дает сообщение об ошибке, потому что вы выполняете команду
как обычный пользователь, а обычные пользователи не могут напрямую обращаться к
39
файлам устройства (если вы не вошли в систему на tty1). Только пользователь root имеет
разрешение на запись в файлы устройства напрямую.
История (history)
Удобная функция оболочки Bash - это история ввода команд Bash. По умолчанию Bash
настроен на сохранение последних 1000 команд, использованных пользователем (если сеанс
оболочки никогда не закрывается, точное число может значительно увеличиться). Когда сеанс
оболочки закрывается, история этого сеанса обновляется в файле истории введёных команд. Имя
этого файла - .bash_ history, и он создается в домашнем каталоге пользователя, запустившего
конкретный сеанс оболочки. Обратите внимание, что файл истории закрывается только при
закрытии сеанса оболочки; до этого момента все команды в истории сохраняются в памяти.
Функция history позволяет легко повторять сложные команды. Есть несколько способов
работы с функцией истории ввода команд:
В некоторых случаях может потребоваться стереть историю команд в Bash. Это полезно,
например, если вы случайно ввели пароль открытым текстом. Если это произойдет, вы можете
ввести history -c, чтобы очистить текущую историю. Команды из этого сеанса не будут записаны
в файл истории при выходе из текущего сеанса. Если вы хотите удалить всю историю Bash, введите
history -w сразу после использования history -c.
Упражнение 2-3 проведет вас через некоторые особенности истории команд в Bash
40
что видно предыдущая команда и выделена предыдущая команда ls. Нажмите Enter, чтобы
выполнить его.
7. Введите history | grep cat. Команда grep ищет в выводе истории любые команды,
содержащие текст cat. Обратите внимание на номер одной из команд cat, которые вы
использовали ранее.
8. Введите !nn, где nn заменяется числом, записанным на шаге 7. Вы увидите, что повторяется
последняя команда cat.
9. Закройте этот терминал, набрав exit.
10. В оставшемся окне терминала введите history -c. Это стирает всю историю, которая в
данный момент находится в памяти. Закройте и этот сеанс терминала.
11. Откройте новый сеанс терминала и введите history. Это может быть немного неожиданно,
но вы все равно увидите список команд. Это потому, что history -c очищает историю в
памяти, но не удаляет файл .bash_history в вашем домашнем каталоге.
Еще одна полезная функция оболочки Bash - авто завершение в командной строке. Эта функция
помогает вам найти нужную команду, а также работает с переменными и именами файлов. Если
вы установили программный пакет bash-сompletion, он также работает для некоторых более
сложных команд.
Авто завершение Bash полезно при работе с командами. Просто введите начало команды и
нажмите клавишу TAB на клавиатуре компьютера. Если есть только один вариант завершения,
Bash выполнит команду автоматически за вас. Если есть несколько вариантов, вам нужно нажать
Tab еще раз, чтобы просмотреть все доступные варианты. В упражнении 2-4 вы узнаете, как
работать с этими замечательными функциями.
Управление Linux часто означает работу с текстовыми файлами. Большинство вещей, которые
настраиваются в Linux, настраиваются через текстовые файлы. Для выполнения
административных задач часто требуется изменить содержимое файла конфигурации с помощью
текстового редактора.
За прошедшие годы для Linux было создано множество текстовых редакторов. Однако
действительно важен один редактор, и это vi. Даже если некоторые другие текстовые редакторы
проще в использовании, vi - единственный текстовый редактор, который всегда доступен. Вот
почему как администратор Linux вам нужно знать, как работать с текстовым редактором vi. Одна
из распространенных альтернатив - vim или «vi улучшенный»; это полностью переписанный vi с
41
множеством улучшений, упрощающих работу с текстовым редактором vi, таких, как подсветка
синтаксиса для многих файлов конфигурации, что упрощает распознавание допущенных вами
опечаток. Все, что вы узнаете в этом разделе о vim, работает и с vi.
Важной концепцией при работе с vim является то, что он использует разные режимы. Два из
них особенно важны: командный режим и режим ввода. Эти режимы часто вызывают путаницу,
потому что в командном режиме вы можете просто ввести команду и не можете изменить
содержимое текстового файла. Чтобы изменить содержимое текстового файла, вам нужно перейти
в режим ввода.
Проблема при работе с vim - это огромное количество доступных команд. Некоторые даже
создали шпаргалки по vim, в которых перечислены все доступные команды. Не используйте их.
Вместо этого сосредоточьтесь на минимальном количестве действительно важных команд. В
таблице 2-4 перечислены наиболее важные команды текстового редактора vim. Используйте их (и
только эти), и вы хорошо сдадите экзамен RHCSA.
СОВЕТ
Не пытайтесь работать с максимально возможным количеством команд при работе с vim. Просто
используйте минимальный набор команд и используйте их часто. Вы увидите; что привыкнешь к
этим командам и запоминаешь их для экзамена. Также вам может понравиться команда vimtutor.
(Для его установки используйте yum install vim-еnhanced.) Эта команда открывает руководство
по vim, в котором вы можете выполнить несколько полезных дополнительных упражнений.
42
gg Переход к первой строке документа.
Заменяет все найденные слова правой части (old) на указанное новое (new) в
:%s/old/new/g
левой части команды.
Обратите внимание, что вы знаете самые важные команды для работы с vim.
Упражнение 2–5 дает вам возможность проверить их.
1. Введите vim ~/testfile. Это запускает vim и открывает для редактирования файл с именем
testfile в ~, который представляет ваш текущий домашний каталог.
2. Введите i, чтобы войти в режим ввода, а затем введите следующий текст:
корова
овца
бык
курица
змея
рыба
кислород
3. Нажмите Esc, чтобы вернуться в командный режим, и введите :w, чтобы записать файл с
тем же именем файла.
4. Введите :3, чтобы перейти к строке номер 3.
5. Введите dd, чтобы удалить эту строку.
6. Введите dd еще раз, чтобы удалить еще одну строку.
7. Введите u, чтобы отменить последнее удаление.
8. Введите o, чтобы открыть новую строку.
9. Введите еще текст в текущую позицию курсора:
дерево
ферма
Понимание переменных
Среда shell Linux состоит из множества переменных. Переменные - это фиксированные имена,
которым можно присвоить динамические значения. Примером переменной является $LANG,
которая в моей оболочке установлено значение en_US.UTF-8. Это значение (которое может
отличаться в вашей системе) гарантирует, что я могу работать на английском языке, используя
общие настройки для английского языка (подумайте, как отображаются дата и время).
Преимущество скриптов и программ для работы с переменными состоит в том, что программа
должна использовать только имя переменной, не интересуясь конкретным значением,
присвоенное переменной. Поскольку у разных пользователей разные потребности, переменные,
устанавливаемые в пользовательской среде, будут разными. Чтобы получить обзор текущих
переменных, определенные в среде оболочки, введите команду env, которая отобразит
переменные среды. В примере 2-1 показаны некоторые строки вывода этой команды.
Как видно из примера 2-1, чтобы определить переменную, вы вводите имя переменной, за
которым следует знак равенства (=) и значение, присвоенное конкретной переменной. Чтобы
прочитать значение переменной, вы можете использовать команду echo (среди прочего), за
которой следует имя переменной, как в echo $PATH, которая считывает текущее значение
переменной $PATH и печатает его в STDOUT. На данный момент вам не нужно больше знать о
переменных. Вы можете прочитать о более сложном использовании переменных в главе 19,
«Введение в сценарии оболочки Bash».
Когда пользователь входит в систему, для него автоматически создается среда. Это происходит
на основе четырех разных файлов конфигурации, в которых можно указать некоторый код
сценария и где переменные могут быть определены для использования одним конкретным
пользователем:
44
▪ /etc/profile: это общий файл, который обрабатывается всеми пользователями при входе в
систему.
▪ /etc/bashrc: этот файл обрабатывается при запуске подоболочки.
▪ ~/.bash_profile: в этом файле могут быть определены пользовательские переменные
оболочки входа в систему.
▪ ~/.bashrc: в этом пользовательском файле могут быть определены переменные
подоболочки.
Как вы видели, в этих файлах делается различие между shell входа и подоболочкой. Оболочка
(shell) входа - это первая оболочка, которая открывается для пользователя после входа в систему.
Из оболочки входа пользователь может запускать сценарии, которые запускают подоболочку этой
оболочки входа. Bash позволяет создавать разные среды в оболочке входа и в подоболочке, но,
чтобы убедиться, что одни и те же настройки используются во всех оболочках, рекомендуется
также включить настройки подоболочки в оболочку входа.
Для отображения сообщений во время входа в систему Bash использует файлы /etc/motd и
/etc/issue. Сообщения в /etc/motd отображаются после того, как пользователь успешно вошел в
систему. (Обратите внимание, что пользователи в графической среде не видят его содержимое
после графического входа в систему.) Использование /etc/motd может быть удобным способом
для системных администраторов, например, информировать пользователей о проблеме или
политике безопасности.
Другой способ отправить информацию пользователям – использовать файл /etc/issue.
Содержимое этого файла отображается до того, как пользователь войдет в систему. Это отличный
способ указать конкретные инструкции для входа в систему для пользователей, которые еще не
вошли в систему.
В упражнении 2-6 вы можете просмотреть темы, которые обсуждались в этом разделе.
Поиск помощи
В средней системе Linux доступны сотни команд - слишком много, чтобы запомнить их все,
поэтому использование ресурсов справки на вашем компьютере так важно. Команда man - самый
важный ресурс для получения справки о синтаксисе и использовании команд. Кроме того, вы
можете отобразить компактный список параметров команды, command --help.
Использование --help
Самый быстрый способ получить обзор того, как использовать команду, - это запустить
команду с параметром --help. При использовании этой опции почти все команды будут отображать
сводку использования. Список параметров, который показан таким образом, используется в
основном, когда у вас уже есть общее представление о том, как использовать команду и вам нужен
быстрый обзор параметров, доступных с командой - он не дает подробной информации, которая
поможет пользователям кто еще не знает команду.
СОВЕТ
При использовании параметра --help почти все команды предоставляют краткий обзор справки.
Некоторые команды не учитывают эту опцию и считают ее ошибочной. К счастью, эти команды
будут настолько удобными, что будут отображать сообщение об ошибке, отображающие
допустимые параметры с командой, что фактически означает, что вы все равно получите то, что
вам нужно.
46
Поиск нужных страниц man
Чтобы найти информацию на страницах руководства, если у вас новая установка вам может
понадобиться выполнить поиск в базе данных командой mandb, только после этого можно
используя команды apropos или man -k. Если база данных актуальна, получить доступ к
необходимой информации очень просто. Просто введите man -k, а затем ключевое слово, которое
вы хотите найти. Эта команда просматривает сводку всех страниц руководства, которые хранятся
в базе данных mandb. В примере 2-2 показан частичный результат этой команды.
47
Основываясь на информации, которую дает вам man -k, вы, вероятно, сможете определить
справочную страницу, к которой вам нужно получить доступ, чтобы делать то, что вы хотите
выполнить. Однако имейте в виду, что man -k не идеален; он ищет только краткую сводку по
каждой установленной команде. Если вашего ключевого слова нет в сводке, вы ничего не найдете
и получите сообщение об ошибке «ничего подходящего» (“nothing appropriate”).
СОВЕТ
Вместо использования man -k вы можете использовать команду apropos, которая эквивалентна
man -k.
Есть также разделы, в которых подробно рассказывается о вашей системе Linux, например, о
системных вызовах и вызовах библиотек. При использовании man -k вы получите результаты из
всех этих разделов. Чтобы ограничить отображаемые результаты, имеет смысл использовать grep,
чтобы отображать только те разделы, которые имеют отношение к тому, что вам нужно. Итак, если
вы ищете файл конфигурации, имеющий отношение к паролям, используйте команду man -k
password | grep 5, или если вы ищете команду, которую администратор будет использовать для
создания разделов, используйте команду man -k partition | grep 8.
Еще одна полезная опция man -f. Команда man -f <somecommand> отображает краткое
описание элемента, найденное в базе данных mandb. Это может помочь вам при принятии
решения, содержит ли эта справочная страница информацию, которую вы ищете.
Обновление mandb
Как упоминалось ранее, при использовании команды man -k выполняется обращение к базе
данных mandb. Эта база данных создается автоматически с помощью запланированного задания
cron. Иногда вы можете искать что-то, что, очевидно, должно быть задокументировано, но все, что
вы получаете, - это сообщение «ничего подходящего» (“nothing appropriate.). Если это произойдет,
вам может потребоваться обновить базу данных mandb. Сделать это просто: запустите команду
mandb от имени пользователя root без каких-либо аргументов. Он увидит, были ли установлены
новые страницы руководства, и соответственно обновит базу данных mandb.
СОВЕТ
Не пытайтесь запомнить все команды, необходимые для выполнения определенных задач.
Вместо этого запомните, как найти эти команды, и найдите, какую справочную страницу
следует прочитать, чтобы получить дополнительную информацию о команде. В
упражнении 2-7 вы увидите, как это работает.
Предположим, вы ищете команду, используя man -k, но все, что вы получаете, это сообщение
«ничего подходящего», и вы не помните, как это исправить. В упражнении 2-7 показано, что вы
можете сделать в таких случаях.
48
Упражнение 2-7. Использование man -k
В упражнении 2-8 показан пример такой команды, и в этом упражнении вы узнаете, как
получить информацию с информационной страницы.
1. Введите man ls. После открытия страницы введите G, чтобы перейти в конец страницы
руководства и просмотреть раздел «См. Также». Он сообщает вам, что полная
документация по ls поддерживается в виде руководства в формате Texinfo. Закройте
страницу руководства, нажав q.
49
2. Введите команду pinfo coreutils 'ls invocation'. Это показывает информацию об
использовании ls на странице pinfo. Прочтите его и нажмите q, когда закончите.
Резюме
В этой главе вы прочитали об основных задачах администрирования Linux. Вы узнали о
некоторых важных основах оболочки, таких как перенаправление ввода-вывода, работа с историей
и управление средой. Вы также узнали, как редактировать текстовые файлы с помощью редактора
vim. В последней части этой главы вы узнали, как искать информацию с помощью man и
связанных команд.
50
Просмотрите все ключевые темы
Просмотрите наиболее важные темы в главе, отмеченные значком ключевой темы на внешнем
поле страницы. В Таблице 2-5 перечислены ссылки на эти ключевые темы и указаны номера
страниц, на которых каждый из них находится.
Таблица 2-5 Ключевые темы главы 2
Обзорные вопросы
Следующие ниже вопросы помогут вам проверить свои знания концепций и терминологии, а
также широту ваших знаний. Вы можете найти ответы на эти вопросы в Приложении А.
1. Что такое переменная?
2. Какая команда позволяет найти правильную страницу руководства на основе
использования ключевых слов?
3. Какой файл вам нужно изменить, если вы хотите, чтобы переменная задавалась для каждой
запускаемой оболочки?
4. Анализируя, как использовать команду, вы читаете, что документация поддерживается
системой Techinfo. Как можно прочитать информацию?
5. Как называется файл, в котором Bash хранит свою историю?
6. Какая команда позволяет обновлять базу данных, содержащую ключевые слова man?
7. Как вы можете отменить последнюю модификацию, которую вы применили в vim?
8. Что вы можете добавить к команде, чтобы убедиться, что она не выводит сообщение об
ошибке, при условии, что вам не важна информация, содержащаяся в сообщениях об
ошибках?
9. Как вы читаете текущее содержимое переменной $PATH?
10. Как повторить последнюю использованную команду, содержащую строку dog где-нибудь
в команде?
51
Лабораторная работа в конце главы
Теперь вы узнали о некоторых из наиболее важных базовых навыков, которыми должен
обладать администратор Linux. В этом разделе вы примените эти навыки, выполнив лабораторную
работу в конце главы.
Лабораторная работа 2.1
1. Измените среду оболочки (shell environment) так, чтобы для каждой запущенной
подоболочки (subshell) устанавливалась переменная. Имя переменной должно быть
COLOR, а значение должно быть red. Убедитесь, что он работает.
2. Используйте соответствующие инструменты, чтобы найти команду, с помощью которой
можно установить системное время на 1 минуту вперед.
3. В своем домашнем каталоге введите команду ls -al wergihl * и убедитесь, что ошибки, а
также обычный вывод перенаправляются в файл с именем /tmp/lsoutput.
52
Глава 3
a. /etc
b. /boot
53
c. /home
d. /usr
a. mount
b. mount -a
c. df -hT
d. du –h
a. /etc
b. /boot
c. /home
d. /usr
a. mount
b. mount -a
c. df -hT
d. du –h
5. Какая команда позволяет отображать все файлы в текущем каталоге, чтобы самые новые
файлы указывались последними?
a. ls -lRt
b. ls -lrt
c. ls -alrt
d. ls –alr
6. Какая команда позволяет копировать как скрытые, так и обычные файлы из /home/$ USER
в текущий каталог?
a. cp -a /home/$USER .
b. cp -a /home/$USER/* .
c. cp -a /home/$USER/. .
d. cp -a home/$USER. .
a. mv myfile mynewfile
b. rm myfile mynewfile
c. rn myfile mynewfile
d. ren myfile mynewfile
54
c. Inode хранит счетчик жестких ссылок.
d. Если исходная жесткая ссылка удалена, все остальные жесткие ссылки станут
недействительными.
a. ln /tmp /home
b. ln /home /tmp
c. ln -s /home /tmp
d. ln -s /tmp /home
10. Какая опция tar позволяет добавить один файл в архив tar?
a. -a
b. -A
c. -r
d. –u
Основные Темы
Каталог Назначение
/boot Содержит все файлы и каталоги, необходимые для загрузки ядра Linux.
55
/home Используется для домашних каталогов локальных пользователей.
Содержат каталоги, которые используются для монтирования устройств в дереве
/media, /mnt
файловой системы.
Используется для дополнительных пакетов, которые могут быть установлены на
/opt
вашем сервере.
Используется файловой системой proc. Это структура файловой системы,
/proc
которая дает доступ к информации ядра.
/root Домашний каталог пользователя root.
Содержит информацию о процессе и пользователя, созданную с момента
/run
последней загрузки.
/srv Может использоваться для данных такими службами, как NFS, FTP и HTTP.
Используется как интерфейс для различных аппаратных устройств, которым
/sys
управляет ядро Linux и связанные с ним процессы.
Содержит временные файлы, которые могут быть удалены без предупреждения
/tmp
во время загрузки.
Содержит подкаталоги с программными файлами, библиотеками для этих
/usr
программных файлов и документацией по ним.
Содержит файлы, размер которых может изменяться динамически, например
/var
файлы журналов, почтовые ящики и файлы очереди.
Чтобы избежать этих ловушек, обычно файловые системы Linux организуют на разных
устройствах (и даже на общих ресурсах других компьютерных систем), таких как разделы дисков
и логические тома, и монтируют эти устройства в иерархию файловой системы. При настройке
устройства в качестве выделенного монтирования, можно также использовать специфические
56
параметры монтирования, которые могут ограничить доступ к устройству. Некоторые каталоги
обычно монтируются на выделенных устройствах:
▪ /boot: Этот каталог часто монтируется на отдельном устройстве, так как он требует
существенной информации, необходимой для загрузки компьютера. Так как корневой
каталог (/) часто находится на логическом томе Logical Volume Manager (LVM), с которого
Linux не может загрузиться по умолчанию, ядро и связанные с ним файлы необходимо
хранить отдельно на специальном устройстве /boot.
▪ /var: этот каталог часто находится на выделенном устройстве, потому что он увеличивается
в размее динамически и неконтролируемым образом (например, из-за файлов журнала,
которые записываются в /var/log). Установив его на специальное устройство, вы можете
убедиться, что он не заполнит всю память на вашем сервере.
▪ /home: этот каталог часто находится на выделенном устройстве из соображений
безопасности. Поместив его на выделенное устройство, его можно смонтировать с
определенными параметрами, такими как noexec и nodev, для повышения безопасности
сервера. При переустановке операционной системы лучше иметь домашние каталоги в
отдельной файловой системе. При размещении на отдельной файловой системе домашние
каталоги при необходимости могут пережить переустановку системы.
▪ /usr: Этот каталог содержит только файлы операционной системы, к которым обычным
пользователям не требуется права записи. Размещение этого каталога на выделенном
устройстве позволяет администраторам настроить его как монтирование только для чтения.
Помимо этих каталогов, вы можете найти серверы, на которых есть другие каталоги, которые
также подключены к выделенным разделам или томам. В конце концов, решение о том, какие
каталоги получат свои выделенные устройства, остается на усмотрение администратора.
Чтобы получить обзор всех устройств и их точек монтирования, вы можете использовать
разные команды:
Команда mount дает обзор всех подключенных устройств. Чтобы получить эту информацию,
читается файл /proc/mounts, в котором ядро хранит информацию обо всех текущих
монтированиях. Он также показывает интерфейсы ядра, что может привести к отображению
длинного списка подключенных устройств. В примере 3-1 показан пример вывода этой команды.
57
▪ Команда df -Th была разработана для отображения доступного дискового пространства на
подключенных устройствах; вывод включает в себя большинство системных
монтирований. Поскольку команда будет проверять все смонтированные файловые
системы, это удобно для получения обзора текущих смонтированных систем. Параметр -h
суммирует вывод команды в удобочитаемом виде, а параметр -T показывает, какой тип
файловой системы используется при различных присоединение.
▪ Команда findmnt показывает подключения и отношения, существующие между
различными монтированиями. Поскольку вывод команды mount немного перегружен, вам
может понравиться вывод findmnt. В примере 3-2 показан пример вывода этой команды.
Обратите внимание, что из-за ограничений ширины на странице книги выходные данные,
относящиеся к столбцу OPTIONS, отображаются в левой части страницы. (при переводе
для ясности вставлены рисунки)
58
В упражнении 3-1 вы используете разные команды, чтобы получить обзор
установленных в данный момент устройств.
1. Войдите в систему как обычный пользователь и введите mount. Обратите внимание, что
вывод команды довольно ошеломляющий. Однако если вы внимательно прочитаете, вы
увидите несколько каталогов из структуры каталогов Linux и их соответствующие точки
монтирования.
2. Теперь введите df -hT. Обратите внимание, что отображается намного меньше устройств.
Пример вывода этой команды показан далее в Примере 3-3.
Теперь, когда вы ввели команды mount и df, давайте внимательнее посмотрим на вывод
команды df -hT в примере 3-3.
Управление файлами
59
Как администратор, вы должны иметь возможность выполнять общие задачи по управлению
файлами.
Для организации файлов Linux работает с каталогами (также называемыми папками). Вы уже
читали о некоторых каталогах по умолчанию, определенных FHS. Когда пользователи начинают
создавать файлы и хранить их на сервере, имеет смысл также предоставить структуру каталогов.
Как администратор, вы должны иметь возможность перемещаться по структуре каталогов. В
упражнении 3-2 вы попрактикуетесь в работе с каталогами.
1. Откройте оболочку как обычный пользователь. Введите cd. Далее введите pwd, что
расшифровывается как print working directory (вывести имя текущего каталога). Вы
60
увидите, что в данный момент находитесь в своем домашнем каталоге, то есть
/home/<username>
2. Введите touch file1. Эта команда создает на вашем сервере пустой файл с именем file1.
Поскольку вы в настоящее время находитесь в своем домашнем каталоге, вы можете
создать любой файл или каталог, который вы посчитаете необходимым.
3. Введите cd /. Данная команда изменяет текущий каталог на корневую (/) директорию.
Введите touch file2. Вы увидите сообщение «В разрешении отказано (permission denied)».
Обычные пользователи могут создавать файлы только в тех каталогах, в которых у них есть
необходимые для этого разрешения.
4. Введите cd /tmp. Выполнение команды приведет вас в каталог /tmp, где все пользователи
имеют права на запись. Снова введите touch file2. Вы увидите, что вы можете создавать
разные элементы в каталоге /tmp (если еще нет файла с именим file2, который принадлежит
другому пользователю).
5. Введите cd без аргументов. Эта команда возвращает вас в ваш домашний каталог.
6. Введите mkdir files. Это создает каталог с именами files в текущем каталоге. Команда
mkdir использует имя каталога, который должен быть создан в качестве от носительного
имени; оно относится к позиции, в которой вы в данный момент находитесь.
7. Введите mkdir /home/$USER/files. В этой команде вы используете переменную $USER,
которая замениться вашим текущим именем пользователя. Полный аргумент mkdir - это
абсолютное имя файла для файлов каталога, которые вы пытаетесь создать. Поскольку этот
каталог уже существует, вы получите сообщение об ошибке «файл существует (file
exists)».
8. Введите rmdir files, чтобы удалить только что созданные файлы каталога. Команда rmdir
позволяет удалять каталоги, но работает только в том случае, если каталог пуст, не
содержит файлов.
Абсолютное имя файла (absolute filename) или абсолютный путь (absolute pathname) - это
полный путь к файлу или каталогу, с которым вы хотите работать. Этот путь начинается с
корневого каталога, за которым следуют все подкаталоги вплоть до фактического имени файла.
Независимо от того, какой у вас текущий каталог, всегда будут работать абсолютные имена
файлов. Примером абсолютного имени файла является /home/lisa/file1.
Относительное имя файла относится к текущему каталогу, как показано с помощью команды
pwd. Он содержит только те элементы, которые необходимы для получения из текущего каталога
до нужного вам элемента. Предположим, что ваш текущий каталог - /home (как показано командой
pwd). Когда вы ссылаетесь на относительное имя файла lisa/file1, вы имеете в виду абсолютное
имя файла /home/lisa/file1.
При работе с относительными именами файлов иногда полезно подняться на один уровень
иерархии. Представьте, что вы вошли в систему как root и хотите скопировать файл
/home/lisa/file1 в каталог /home/lara. Для этого подойдут несколько решений:
61
▪ Используйте cp /home/lisa/file1 /home/lara. Поскольку в этой команде вы используете
абсолютные пути, эта команда будет работать всегда.
▪ Убедитесь, что ваш текущий каталог /home, и используйте cp lisa/file1 lara. Обратите
внимание, что как исходный файл, так и файл назначения упоминаются как относительные
имена файлов и по этой причине не начинаются с символа /.
▪ Если текущий каталог установлен в /home/lisa, вы также можете использовать cp file1
../lara. В этой команде в имени целевого файла используется (..), что означает переход на
один уровень выше. После (..) следует /lara, поэтому полное имя целевого файла будет
интерпретировано как «подняться на один уровень» (так что вы окажетесь в /home), а
оттуда найдите подкаталог /lara.
СОВЕТ
Если вы новичок в работе с Linux, понять относительное имя файла не всегда легко. Однако есть
простой обходной путь. Просто убедитесь, что вы всегда работаете с абсолютными путями. В
результате необходимо больше печатать, но это проще, поэтому вы будете делать меньше ошибок.
При работе с файлами и каталогами полезно отображать содержимое текущего каталога. Для
этого вы можете использовать команду ls. Если использовать команду без аргументов, ls
показывает содержимое текущего каталога. Некоторые распространенные аргументы облегчают
работу с ls. Таблица 3-4 дает их обзор.
Команда Использование
62
СОВЕТ
Скрытый файл в Linux - это файл, имя которого начинается с точки. Выполните следующую
команду: touch .hidden. Затем введите ls. Вы не увидите созданный файл. Затем введите ls -a.
Теперь вы сможете его увидеть.
При использовании ls и ls -l вы увидите, что файлы имеют разную цветовую градацию. Разные
цвета, используемые для разных типов файлов, позволяют легче различать разные типы файлов.
Однако не зацикливайтесь на них слишком сильно, потому что цвета, являются результатом
настройки переменной, которая может отличаться в других оболочках Linux или на других
серверах Linux.
Копирование файлов
Чтобы упорядочить файлы на своем сервере, вы часто будете копировать файлы. В этом вам
поможет команда cp. Копирование одного файла несложно: просто используйте команду с
указанием необходимых аргументов cp /path/to/file /path/to/destination. Для примера, что бы
скопировать файл /etc/hosts в каталог /tmp, используйте cp /etc/hosts /tmp. В результате файл hosts
записывается в каталог /tmp.
СОВЕТ
Если вы копируете файл в каталог, но целевой каталог не существует, будет создан файл с именем
предполагаемого целевого каталога. Во многих случаях это не лучшее решение, и было бы лучше
просто получить сообщение об ошибке. Вы можете сделать это, поместив / после имени каталога,
поэтому используйте cp /etc/hosts/tmp/, а не cp /etc/hosts/tmp.
С помощью команды cp вы можете скопировать весь подкаталог с его содержимым и всем, что
находится под ним. Для этого используйте параметр -R, что означает рекурсивный. (Вы также
увидите параметр -R со многими другими командами Linux.) Например, чтобы скопировать
каталог /etc и всё, что находится в нем, в каталог /tmp, вы должны использовать команду cp -R
/etc/sound.
При использовании команды cp необходимо учитывать разрешения и другие свойства файлов.
Без дополнительных опций вы рискуете, что эти свойства не будут скопированы. Если вы хотите
убедиться, что сохраняете текущие разрешения, используйте параметр -a, который позволяет cp
работать в режиме архива. Эта опция гарантирует, что разрешения и все другие свойства файла
будут сохранены во время копирования. Итак, чтобы скопировать точное состояние вашего
домашнего каталога и всего, что внутри него, в каталог /tmp, используйте cp -a ~ /tmp.
Особый случай при работе с командой cp - это скрытые файлы. По умолчанию скрытые файлы
не копируются. Есть три решения для копирования скрытых файлов:
▪ cp /somedir/.* /tmp Копирует все файлы, имена которых начинаются с точки (то есть
скрытые файлы), в /tmp. Он выдает сообщение об ошибке для каталогов, имя которых
начинается с точки в /somedir, потому что параметр -R не использовался.
▪ cp -a /somedir/ . Это копирует весь каталог /somedir, включая его содержимое, в текущий
каталог. Итак, в результате подкаталог somedir будет быть создан в текущем каталоге.
▪ cp -a / somedir/ .. Будут скопированы все файлы, обычные и скрытые, в текущий каталог
(обратите внимание на пробел между двумя точками в конце этой команды).
Перемещение файлов
63
Чтобы переместить файлы, вы используете команду mv. Эта команда удаляет файл из его
текущего местоположения и помещает его в новое местоположение. Вы также можете
использовать его для переименования файла (что, по сути, есть не что иное, как копирование и
удаление исходного файла). Давайте посмотрим на несколько примеров:
Удаление файлов
ПРИМЕЧАНИЕ.
Многие команды имеют параметр, который задаёт рекурсивное поведение. В некоторых командах
вы используете опцию -R, а в других командах вы используете опцию -r. Это сбивает с толку, но
так оно и есть.
В RHEL 8, если вы используете команду rm как root, команда запрашивает подтверждение для
удаления. Это потому, что в /root/.bashrc rm определяется как alias rm -i. Если вам это не нравится,
вы можете использовать параметр -f или удалить alias из /root/.bashrc. Убедитесь, что вы знаете,
что делаете, когда используете эту опцию, потому что после ее использования нет пути назад,
кроме восстановления из бэкапа!
ПРИМЕЧАНИЕ.
В этом упражнении точки важны и используются как часть команд. Чтобы избежать путаницы,
если обычно точка используется для обозначения конца предложения, в этом упражнении мы не
использовали ее, если она следует сразу за командой.
На рис. 3-1 представлен обзор структуры каталогов, с которой вы работаете в этом упражнении.
64
1. Откройте shell как обычный пользователь.
2. Введите pwd.
Вы должны быть в каталоге /home/$USER (примечание переводчика: для примера
/home/alex (где alex) имя пользовательского каталога).
3. Введите mkdir newfiles oldfiles.
Наберите команду ls
Вы увидите два только что созданных каталога.
4. Введите touch newfiles/.hidden и touch newfiles/unhidden.
Это создает два файла в каталоге newfiles.
5. Введите cd oldfiles.
6. Введите ls -al
Здесь показаны только два элемента: (.), Который относится к текущему каталогу; и (..),
который относится к элементу выше (родительский каталог).
7. 7. Введите ls -al ../newfiles.
В этой команде вы используете относительный путь для ссылки на содержимое каталога
/home/$USER/newfiles.
8. Используйте команду cp -a ../newfiles/ . (обратите внимание на пробел между / и . в конце
команды).
9. Введите ls -a
Вы видите, что вы создали подкаталог newfiles в каталоге oldfiles.
10. Убедитесь, что вы по-прежнему находитесь в /home/$USER/oldfiles, и введите rm -rf
newfiles.
11. Теперь используйте команду cp -a ../newfiles/* .. (обратите внимание на пробел между * и
..). Введите ls -al, чтобы увидеть, что скопировано сейчас. Вы увидите, что скрытый файл
не был скопирован.
12. Чтобы убедиться, что вы копируете не только обычные, но и скрытые файлы, используйте
cp -a ../newfiles/ ..
13. Убедитесь, что на этот раз команда сработала, используя ls -al.
Вы заметите, что скрытые файлы, как и обычные файлы, были успешно скопированы.
Использование ссылок
Ссылки в Linux похожи на псевдонимы, назначаемые файлу. Есть символические ссылки и есть
жесткие ссылки. Чтобы понять ссылку, вам нужно немного узнать о том, как файловая система
Linux использует inodes для администрирования файловой системы.
65
Linux хранит административные данные о файлах в индексных дескрипторах. Inode
используется для хранения всех административных данных о файлах. Каждый файл в Linux имеет
индексный дескриптор, и в нем хранится важная информация о файле:
▪ Блок данных, в котором хранится содержимое файла.
▪ Дата создания, доступа и изменения
▪ Разрешения
▪ Владельцы файлов
В индексном дескрипторе не хранится только одна важная информация: имя файла. Имена
хранятся в каталоге, и каждое имя файла знает, к какому inode оно должно обратиться для доступа
к дополнительной информации о файле. Интересно знать, что индексный дескриптор не знает,
какое имя он имеет; он просто знает, сколько имен связано с индексный дескриптор. Эти имена
называются жесткими ссылками.
Когда вы создаете файл, вы даете ему имя. По сути, это имя жесткая ссылка. В файловой
системе Linux можно создать несколько жестких ссылок на файл. Это может быть полезно,
поскольку позволяет получить доступ к файлу из нескольких разных мест. Однако к жестким
ссылкам применяются некоторые ограничения:
▪ Все жесткие ссылки должны существовать на одном устройстве (разделе, логическом томе
и т.д.).
▪ Вы не можете создавать жесткие ссылки на каталоги.
▪ Когда последние имя (жесткая ссылка) файла удаляется, доступ к данным файла также
удаляется.
Хорошая вещь о жестких ссылках заключается в том, что между первой жесткой ссылкой и
второй жесткой ссылкой нет разницы. Они обе являются просто жесткими ссылками, и если первая
жесткая ссылка, которая когда-либо существовала для файла, была удалена, это не повлияет на
другие жесткие ссылки, которые все еще существуют. Операционная система Linux использует
ссылки во многих местах, чтобы сделать файлы более доступными.
66
Создание ссылок
Используйте команду ln для создания ссылок. Команда использует тот же порядок параметров,
что и cp и mv; сначала вы упоминаете имя источника, а затем имя назначения. Если вы хотите
создать символическую ссылку, вы используете параметр -s, а затем указываете исходный и
целевой файл или каталог. Однако действует одно важное ограничение: чтобы иметь возможность
создавать жесткие ссылки, вы должны быть владельцем элемента, на который хотите создать
ссылку. Это относительно новое ограничение безопасности, введенное в RHEL 7. Таблица 3-5
показывает несколько примеров.
Команда Объяснение
67
ПРИМЕЧАНИЕ
В примере 3-4 используется команда \ls -l, а не ls -l. Команда ls по умолчанию является
псевдонимом, который заботится об использовании разных цветов при отображении команды ls; \
перед командой означает, что псевдоним (alias) не используется.
Удаление ссылок
Удаление ссылок может быть опасным. Чтобы понять, почему, давайте рассмотрим
следующую процедуру.
68
Работа с архивами и сжатыми файлами
Утилита Tape ARchiver (tar) используется для архивирования файлов. Хотя изначально tar был
разработан для потоковой передачи файлов на резервную ленту, в настоящее время tar
используется в основном для записи файлов в файл архива. На экзамене RHCSA вы должны уметь
выполнять четыре важных задачи с tar:
▪ Создать архив
▪ Список содержимого архива
▪ Распаковать архив
▪ Сжимать и распаковывать архивы
Перед извлечением файла полезно знать, что можно ожидать. Чтобы узнать, можно
использовать параметр -t. Введите, например, tar -tvf /root/homes.tar, чтобы увидеть содержимое
архива tar.
СОВЕТ
Рекомендуется создавать архивные файлы с расширением, например .tar или .tgz, чтобы их можно
было легко распознать, но не все это делают. Если вы думаете, что файл представляет собой tar-
архив, но не уверены, используйте команду file. Например, если вы введете file somefile, команда
file проанализирует его содержимое и покажет в командной строке, какой это тип файла.
Чтобы извлечь содержимое архива, используйте tar -xvf /archivename. Даная команда
извлекает архив в текущий каталог. Это означает, что, если вы находитесь в /root при вводе tar -
69
xvf /root/homes.tar, и файл содержит каталог /home, после распаковки у вас появится новый
каталог /root/home, содержащий все файлы. Возможно, это не то, чего вы хотели достичь. Есть
два решения, чтобы поместить извлеченное содержимое туда, где вы хотите его получить:
▪ Перед извлечением файла архива перейдите в каталог, в который вы хотите извлечь файл.
▪ Используйте параметр -C /targetdir, чтобы указать целевой каталог, в который вы хотите
распаковать файл. Если вы хотите поместить содержимое файла /root/homes.tar, например,
в каталог /tmp, вы можете использовать tar -xvf homes.tar -C /tmp.
ПРИМЕЧАНИЕ.
В целях RHCSA упоминается, что вам также необходимо знать, как работать со star. Утилита
star была разработана для поддержки архивации атрибутов файлов, отличных от заданных
по умолчанию, таких как списки управления доступом (см. Глава 7, «Управление
разрешениями») или контекст файла SELinux (см. Глава 22, «Управление SELinux»). В своем
текущем выпуске tar также предлагает эту функциональность, поэтому нет реальной
необходимости использовать star.
Помимо извлечения всего файла архива, из архива также можно извлечь один файл. Для этого
используйте tar -xvf /archivename.tar file-you-want-to-extract (файл-который-вы-хотите-
извлечь). Если ваш архив etc.tar содержит файл /etc/hosts, который вы хотите извлечь, например,
выполните tar -xvf /root/etc.tar etc/hosts.
Использование сжатия
Вариант Назначение
c Создает архив.
v Показывает подробный вывод во время работы tar.
70
t Показывает содержимое архива.
z Сжимает/распаковывает архив при его создании с помощью gzip.
j Сжимает/распаковывает архив с помощью bzip2.
x Извлекает архив.
u Обновляет архив; в архив будут записаны только более новые файлы.
C Изменяет рабочий каталог перед выполнением команды.
r Добавляет файлы в архив.
1. Откройте shell как root на своем сервере. После входа в систему домашний каталог
пользователя root станет текущим каталогом, поэтому все относительные имена файлов,
используемые в этом упражнении, относятся к /root/.
2. Введите tar -cvf etc.tar /etc, чтобы заархивировать содержимое каталога /etc.
3. Введите file etc.tar и прочтите информацию, предоставленную командой.
Это должно выглядеть так:
[root @ server1 ~] # file etc.tar
tar: tar-архив POSIX (GNU)
4. Введите gzip etc.tar.
5. Введите tar tvf etc.tar.gz. Обратите внимание, что команда tar не имеет проблем с чтением
из сжатого файла gzip. Также обратите внимание, что содержимое архива состоит из всех
относительных имен файлов.
6. Введите tar xvf etc.tar.gz etc/hosts.
7. Введите ls -R. Обратите внимание, что в текущем каталоге был создан подкаталог etc. В
этом подкаталоге восстановлен файл hosts.
8. Введите gunzip etc.tar.gz. Данная команда распаковывает сжатый файл, но ничего не
меняет в отношении команды tar.
9. Введите tar xvf etc.tar -C /tmp etc/passwd. Это извлечет файл паролей в каталог /tmp.
10. Введите tar cjvf homes.tar /home. Это создает сжатый архив домашнего каталога в
домашний каталог пользователя root.
11. Введите rm -f *gz*tar, чтобы удалить все файлы, полученные в результате упражнений в
этой главе, из домашнего каталога /root.
Резюме
В этой главе вы узнали, как работать с основными инструментами управления файлами. Вы
узнали, как по умолчанию организована структура каталогов Linux, и вы узнали, какие типы
файлов ожидать в каких каталогах. Вы также узнали, как ориентироваться в структуре каталогов
и работать с файлами.
Как упоминалось в разделе «Как пользоваться этой книгой» во Введении, у вас есть несколько
вариантов подготовки к экзамену: лабораторные работы в конце главы; таблицы памяти в
Приложении B; Глава 26, «Заключительная подготовка»; и практические экзамены.
71
Просмотрите наиболее важные темы в главе, отмеченные значком ключевой темы на внешнем
поле страницы. В Таблице 3-7 перечислены ссылки на эти ключевые темы и указаны номера
страниц, на которых каждый из них находится.
Элемент ключевой
Описание Страница
темы
Таблица 3-2 Обзор FHS 55
Таблица 3-3 Обзор подстановочных знаков 60
Пункт Определение абсолютного имени файла 61
Пункт Определение относительного имени файла 61
Таблица 3-4 ls общие параметры командной строки 62
Пункт Определение inode 65
Таблица 3-5 ln примеры использования 67
Таблица 3-6 Обзор опций tar 70
Определите следующие ключевые термины из этой главы и проверьте свои ответы в глоссарии:
Обзорные вопросы
Следующие далее вопросы помогут вам проверить свои знания концепций и терминологии, а
также широту ваших знаний. Вы можете найти ответы на эти вопросы в Приложении А.
В этой главе вы узнали, как выполнять основные задачи управления файлами. Управление
файлами - важная задача администратора Linux. Эта лабораторная работа в конце главы позволяет
вам попрактиковаться в этих навыках и убедиться, что вы овладели ими, прежде чем сдавать
экзамен RHCSA.
1. Войдите в систему как пользователь root. В домашнем каталоге root создайте один
архивный файл, содержащий содержимое каталога /home и каталога /etc. Используйте имя
/root/essentials.tar для файла архива.
2. Скопируйте этот архив в каталог /tmp. Также создайте жесткую ссылку на этот файл в
каталоге /.
3. Переименуйте файл /essentials.tar в /archive.tar.
4. Создайте символическую ссылку в домашнем каталоге пользователя root, которая
ссылается на /archive.tar. Используйте имя link.tar для символической ссылки.
5. Удалите файл /archive.tar и посмотрите, что случилось с символической ссылкой. Удалите
также символическую ссылку.
6. Сожмите файл /root/essentials.tar.
73
Глава 4