1. Инструментарий командной строки и иерархия файловой системы RHEL
Инструментарий командной строки и иерархия файловой системы RHEL
Представьте, что вы вошли в серверную комнату, где сотни серверов работают без мониторов и клавиатур. Единственный способ взаимодействия с ними — узкое текстовое окно терминала. В мире Red Hat Enterprise Linux (RHEL) командная строка — это не просто альтернатива графическому интерфейсу, это прецизионный скальпель хирурга. Ошибка в одном символе при работе с путями файловой системы может привести к остановке критически важного банковского сервиса, а глубокое понимание того, где именно лежат конфигурационные файлы, отделяет системного администратора от обычного пользователя. Экзамен RHCSA проверяет не вашу способность запоминать команды, а навык эффективного выживания и управления системой в условиях, когда «мышка» не предусмотрена архитектурой.
Философия Bash и эффективность командного интерфейса
В RHEL стандартной оболочкой (shell) является Bash (Bourne Again SHell). Это интерпретатор, который считывает ваши команды и передает их ядру операционной системы. Для администратора Bash — это среда автоматизации. Основной навык здесь — не просто ввод команд, а использование механизмов, которые ускоряют работу и минимизируют человеческий фактор.
Механизмы раскрытия (Expansion) и подстановки
Bash выполняет несколько этапов обработки строки перед тем, как запустить программу. Понимание этих этапов критично для работы с большим количеством файлов.
mkdir -p project/{bin,src,doc,lib}. Это создаст четыре папки внутри project. — любое количество символов (включая ноль).
* ? — строго один любой символ.
* [a-z] — любой символ из диапазона.
(date +%Y-%m-%d).tar /etc/.Управление историей и горячие клавиши
На экзамене RHCSA время — ваш главный враг. Использование истории команд экономит минуты, которые могут стать решающими.
* Ctrl + r — обратный поиск по истории. Вы вводите часть команды, и Bash находит последнее совпадение.
* !! — повторить последнюю команду (часто используется как sudo !!, если вы забыли про права суперпользователя).
* !.
Стандарт иерархии файловой системы (FHS) в Red Hat
В отличие от Windows, где системные файлы могут быть разбросаны, RHEL строго следует стандарту Filesystem Hierarchy Standard (FHS). В Linux всё начинается с корня /. Нет никаких дисков C: или D:, есть единое дерево, в которое монтируются физические устройства.
Критические директории и их назначение
| Директория | Назначение и нюансы RHEL |
| :--- | :--- |
| /etc | «Нервный центр» системы. Здесь хранятся только конфигурационные файлы. Они должны быть текстовыми. Если вы ищете настройки сети, пользователей или SSH — вам сюда. |
| /var | Переменные данные (Variable). Логи (/var/log), базы данных, очереди печати. Эта директория имеет свойство разрастаться, поэтому в продакшене её часто выносят на отдельный диск/раздел. |
| /usr | (Unix System Resources). Хранит статичные данные: исполняемые файлы (/usr/bin), библиотеки (/usr/lib). В современных RHEL /bin и /sbin являются символическими ссылками на /usr/bin и /usr/sbin. |
| /root | Домашний каталог суперпользователя. Не путать с корнем /. |
| /home | Место для личных данных обычных пользователей. |
| /run | Временные данные процессов, существующие только в оперативной памяти (например, PID-файлы). Очищается при перезагрузке. |
| /boot | Файлы, необходимые для загрузки системы: ядро (vmlinuz), образ initramfs и конфигурация загрузчика GRUB2. |
Виртуальные файловые системы: /proc и /sys
Это не файлы на диске, а «окна» в оперативную память и структуры ядра.
* /proc: содержит информацию о запущенных процессах и системных ресурсах. Например, cat /proc/cpuinfo покажет параметры процессора, а cat /proc/meminfo — состояние памяти. Каждая папка с цифрой в /proc соответствует ID запущенного процесса (PID).
* /sys: интерфейс для взаимодействия с аппаратным обеспечением и драйверами. Здесь можно «на лету» менять параметры работы дисковых контроллеров или сетевых карт.
Инструменты навигации и манипуляции данными
Работа администратора — это постоянное перемещение данных и изменение их структуры.
Эффективное использование ls, cp и mv
Команда ls кажется простой, но для RHCSA важны флаги:
* ls -l: длинный формат (права, владельцы, размер, дата).
* ls -a: отображение скрытых файлов (начинаются с точки, например .bashrc).
* ls -Z: (специфика RHEL) отображение контекстов безопасности SELinux.
При копировании (cp) критически важно сохранять метаданные. Флаг -p сохраняет права доступа и владельцев, а -a (archive) делает то же самое рекурсивно, сохраняя даже символические ссылки как ссылки, а не копируя содержимое файлов, на которые они указывают.
Поиск файлов: find vs locate
locate работает мгновенно, так как ищет в заранее подготовленной базе данных (/var/lib/mlocate/mlocate.db). Однако, если вы только что создали файл, locate его не найдет, пока вы не обновите базу командой updatedb.
find — это «тяжелая артиллерия». Он сканирует файловую систему в реальном времени.
Пример сложного поиска для администратора:
find /etc -maxdepth 2 -user root -mtime -1
Эта команда найдет в /etc (на глубину не более 2 уровней) файлы, владельцем которых является root и которые изменялись за последние 24 часа.
Перенаправление потоков и конвейеры (Pipes)
В Linux существует концепция трех стандартных потоков:
Манипуляция потоками
* >: перезаписать файл выводом команды.
* >>: дописать в конец файла.
* 2>: перенаправить только ошибки. Часто используется 2> /dev/null, чтобы скрыть сообщения о нехватке прав доступа.
* &>: перенаправить и стандартный вывод, и ошибки в один файл.
Конвейер | (pipe) позволяет соединять программы в цепочки. Это воплощение философии Unix: «Пишите программы, которые делают одну вещь и делают её хорошо. Пишите программы, которые работают вместе».
> «Мы должны строить системы, которые могут быть легко соединены с другими системами. Конвейер — это клей, который превращает набор мелких утилит в мощный комбайн для обработки данных.» > > The Art of Unix Programming
Обработка текста: grep, awk и sed
Администрирование RHEL на 80% состоит из чтения и правки текстовых файлов.
Фильтрация с помощью grep
grep ищет строки по шаблону. Важные параметры:
* -i: игнорировать регистр.
* -v: инверсия (показать всё, что НЕ подходит под шаблон).
* -E: использование расширенных регулярных выражений (ERE).
Пример: grep -v '^#' /etc/ssh/sshd_config | grep -v '^9, $5}'
Эта команда выведет только имя файла (9-й столбец) и его размер (5-й столбец).
Работа с документацией: man и pinfo
На экзамене RHCSA у вас нет доступа к интернету, но у вас есть локальная документация. Умение быстро в ней ориентироваться — залог успеха.
man 1: пользовательские команды.
* man 5: форматы файлов конфигурации (например, man 5 exports расскажет, как настраивать NFS).
* man 8: команды системного администрирования.
man -k <keyword> или apropos <keyword>. Если вы забыли команду для смены пароля, man -k password выдаст список всех связанных утилит.Ссылки в файловой системе: Hard и Soft
Понимание разницы между жесткими и символическими ссылками критично для управления пространством и структурой системы.
Жесткие ссылки (Hard Links)
Это дополнительные имена для одного и того же участка данных на диске (одного и того же inode). * Не могут указывать на директории. * Не могут пересекать границы файловых систем (разделов). * При удалении оригинала файл остается доступен по жесткой ссылке, пока счетчик ссылок не станет равным нулю.Символические ссылки (Symbolic/Soft Links)
Это специальный файл, который содержит путь к другому файлу или директории. * Могут указывать на директории. * Работают между разными дисками и разделами. * Если оригинал удален, ссылка становится «битой» (dangling link).Создание ссылок:
* Жесткая: ln file1 link1
* Символическая: ln -s /etc/passwd my_passwd
Редактирование файлов в консоли: Vim
В RHEL vi (или его улучшенная версия vim) — это стандарт. Вы не можете считаться администратором RHEL, не зная основ Vim, так как это единственный редактор, который гарантированно есть в любой минимальной установке системы.
Три режима Vim
i.:.Основные команды для выживания
*u — отмена последнего действия (undo).
* dd — удалить (вырезать) строку.
* yy — скопировать строку.
* p — вставить.
* /pattern — поиск по файлу.
* :wq! — сохранить и выйти принудительно.
* :q! — выйти без сохранения.Архивация и сжатие данных
Администратор постоянно сталкивается с необходимостью переноса конфигураций или логов.
Утилита tar (Tape Archiver)
tar не сжимает файлы сам по себе, он объединяет их в один поток («шар»). Для сжатия используются внешние утилиты, интегрированные в tar.
* -c: создать архив.
* -x: извлечь.
* -v: подробный вывод.
* -f: указать имя файла архива (обязательно должен быть последним флагом перед именем).
* -z: сжатие gzip (быстро, среднее сжатие).
* -j: сжатие bzip2 (медленнее, лучше сжатие).
* -J: сжатие xz (самое сильное сжатие, высокая нагрузка на CPU).Пример: tar -cJf logs_backup.tar.xz /var/log — создание максимально сжатого архива системных журналов.
Анализ содержимого файлов без их открытия
Если файл весит несколько гигабайт (например, messages или audit.log), открывать его в Vim — плохая идея.
* head -n 5: показать первые 5 строк.
* tail -n 10: показать последние 10 строк.
* tail -f: режим реального времени. Команда не завершается, а «ждет» появления новых строк в файле. Идеально для мониторинга логов во время отладки сервиса.
* less: «умный» просмотрщик. Позволяет листать файл в обоих направлениях, искать по тексту, не загружая весь файл в оперативную память.
Практические нюансы работы в RHEL
В Red Hat Enterprise Linux есть специфические особенности, которые нужно учитывать при работе с файлами. Например, многие системные файлы защищены не только обычными правами (rwx), но и атрибутами или контекстами SELinux.
Если вы пытаетесь изменить файл от имени root, а система выдает "Operation not permitted", проверьте атрибуты командой lsattr. Если вы видите флаг i (immutable), файл нельзя изменить, удалить или переименовать, пока атрибут не будет снят: chattr -i <file>.
Также помните о важности /dev. Это не просто папка, это интерфейсы устройств.
* /dev/null: «черная дыра». Все, что туда записано, исчезает.
* /dev/zero: бесконечный поток нулей. Используется для создания пустых файлов фиксированного размера: dd if=/dev/zero of=swapfile bs=1M count=1024.
* /dev/urandom: источник случайных данных.
Знание иерархии и инструментов командной строки — это фундамент. Без него невозможно двигаться к управлению пользователями, настройке сети или контейнеризации, так как все эти задачи в RHEL решаются через манипуляцию текстовыми конфигами и использование системных утилит в Bash-скриптах.