1. Управление файлами и директориями
Управление файлами и директориями
Работа в командной строке начинается с умения ориентироваться в пространстве. В графическом интерфейсе мы привыкли кликать по папкам, визуально оценивая их содержимое. В терминале Linux этот процесс происходит иначе, но, освоив базовые команды, вы обнаружите, что текстовый интерфейс позволяет управлять данными значительно быстрее и точнее.
В Linux всё является файлом, а сама файловая система представляет собой строго структурированное перевёрнутое дерево. На самой вершине находится корневой каталог (обозначается символом / — слэш).
!Схема иерархии файловой системы Linux
Все остальные директории, такие как home (домашние папки пользователей), etc (настройки системы) или var (изменяемые данные, например, логи), вложены в этот корень.
Навигация в пространстве терминала
Чтобы уверенно перемещаться по этому дереву, необходимо понимать разницу между двумя способами указания адреса:
/. Он указывает точное местоположение файла в системе, независимо от того, где вы находитесь сейчас. Пример: /home/user/documents/report.txt./home/user, то относительный путь к тому же файлу будет просто documents/report.txt.Три главные команды путешественника
Для перемещения по системе используются три основные утилиты:
pwd (Print Working Directory*) — выводит на экран абсолютный путь к директории, в которой вы сейчас находитесь. Это ваш компас.
ls (List*) — показывает содержимое текущей папки. Это ваши глаза.
cd (Change Directory*) — перемещает вас в указанную папку. Это ваши ноги.
> Представьте, что файловая система — это большое офисное здание.
> Корневой каталог / — это главный вход на первом этаже.
> Команда pwd работает как табличка на двери кабинета, сообщая: "Вы находитесь в крыле B, на 3 этаже, в кабинете 305".
> Команда cd — это процесс перехода по коридорам в другой кабинет.
Команда cd имеет несколько полезных сокращений, которые экономят время:
* cd ~ (тильда) — мгновенно возвращает вас в вашу домашнюю директорию (например, /home/username), где бы вы ни находились.
* cd .. (две точки) — поднимает вас на один уровень вверх (выход из текущей папки в родительскую).
* cd - (дефис) — возвращает в предыдущую директорию, в которой вы были до последнего перехода. Работает как кнопка "Назад" в браузере.
Изучаем содержимое с помощью ls
Сама по себе команда ls показывает только имена файлов. Чтобы получить больше информации, мы добавляем флаги (или опции) — специальные символы, модифицирующие поведение команды.
| Команда | Описание результата |
| :--- | :--- |
| ls -l | Выводит данные в виде подробного списка (права доступа, владелец, размер в байтах, дата изменения). |
| ls -a | Показывает скрытые файлы. В Linux любой файл или папка, чьё имя начинается с точки (например, .bashrc), считается скрытым. |
| ls -h | Делает размеры файлов читаемыми для человека (human-readable). Вместо 1048576 байт вы увидите 1M. |
Флаги можно комбинировать. Команда ls -lah выведет подробный список всех файлов (включая скрытые) с понятными размерами.
Создание и просмотр файлов
Когда вы научились перемещаться, следующий шаг — научиться создавать новые объекты.
Для создания директорий используется команда mkdir (Make Directory). Если вам нужно создать сразу целую структуру вложенных папок, используйте флаг -p (parents):
Эта команда создаст папку project, внутри неё src, а внутри src — папку css. Без флага -p система выдала бы ошибку, так как промежуточные папки не существуют.
Для создания пустых файлов применяется команда touch. Изначально её главная функция — обновление времени последнего изменения файла, но если файла не существует, touch создаст его пустым:
Как заглянуть внутрь файла
Для чтения текстовых файлов в терминале есть две популярные утилиты:
cat (Concatenate) — вываливает всё содержимое файла прямо в терминал. Отлично подходит для коротких заметок или конфигурационных файлов на 10-20 строк.less — открывает файл в режиме постраничного просмотра. Вы можете листать текст стрелками на клавиатуре, искать слова через символ / и выйти, нажав клавишу q. Это идеальный инструмент для чтения длинных логов.Копирование, перемещение и удаление
Управление файлами сводится к трём базовым операциям, для которых в Linux предусмотрены лаконичные команды.
Копирование (cp)
Команда cp (Copy) требует указать, что копировать и куда:
Если нужно скопировать целую папку со всем её содержимым, обязательно добавьте флаг -r (recursive — рекурсивно):
Перемещение и переименование (mv)
Команда mv (Move) работает аналогично cp, но исходный файл удаляется. Интересная особенность Linux заключается в том, что отдельной команды для переименования не существует. Переименование — это просто перемещение файла в ту же самую папку, но под новым именем:
Если же второй аргумент — это существующая директория, файл будет перемещён в неё с сохранением оригинального имени:
Удаление (rm)
Команда rm (Remove) удаляет файлы.
> В командной строке Linux по умолчанию нет "Корзины". Файл, удалённый командой rm, восстановить крайне сложно, а чаще всего — невозможно. Будьте предельно осторожны.
Для удаления директорий вместе со всеми вложенными файлами используется комбинация флагов -r (рекурсивно) и -f (принудительно, без запроса подтверждения):
Массовые операции: маски файлов (Глоббинг)
Часто возникает задача применить команду не к одному файлу, а к группе. Для этого используются маски файлов (wildcards).
Звёздочка заменяет любое количество любых символов (включая их отсутствие).
* Вопросительный знак ? заменяет ровно один любой символ.
Пример из жизни: вы скачали архив с фотографиями, и ваша папка замусорена файлами с расширением .tmp. Вместо того чтобы удалять их по одному, вы пишете:
Система найдёт все файлы, заканчивающиеся на .tmp, и удалит их разом. А команда ls image_?.jpg покажет файлы image_1.jpg и image_2.jpg, но проигнорирует image_10.jpg (так как там два символа после подчёркивания).
Поиск потерянных данных (find)
Когда файловая система разрастается, найти нужный документ вручную становится невозможно. Утилита find — это мощнейший поисковый движок внутри вашего терминала.
Синтаксис команды строится по логике: find [где искать] [критерии поиска].
Найти файл по точному имени в текущей директории (обозначается точкой .) и всех её подпапках:
find умеет искать не только по имени, но и по физическим характеристикам. В системном администрировании часто нужно контролировать свободное место. Если размер файла МБ, он может стать причиной нехватки памяти на сервере. Чтобы найти все такие гигантские файлы в системе, используется флаг -size:
Эта команда просканирует всю систему (начиная с /) и выдаст список файлов, размер которых превышает 500 мегабайт.
Освоив эти базовые инструменты, вы перестанете воспринимать терминал как чёрный экран с непонятным текстом. Он превратится в удобный и предсказуемый рабочий стол, где каждая команда выполняет строго определённую функцию, подчиняясь вашим правилам.