Командная строка Linux (Linux CLI)

Практический курс для систематизации знаний о командной строке Linux. Вы научитесь уверенно управлять файлами, обрабатывать текст, мониторить процессы и писать bash-скрипты для автоматизации рутинных задач.

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 мегабайт.

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