Терминал — это не «чёрное окно для хакеров» , а обычный инструмент, который позволяет обращаться к системе напрямую. Здесь нет скрытых приёмов: вводите команду — получаете результат. Файлы копируются одной строкой, каталоги создаются за долю секунды, а повторяющиеся задачи легко сворачиваются в скрипт. В этом материале мы подробно разберём семь базовых команд — cd, ls, cp, mv, rm, mkdir и man — и покажем, как с их помощью навести порядок в системе и сэкономить время.
Зачем в 2025 году учиться командной строке
Графические оболочки стали удобнее, но занимают ресурсы и часто прячут нюансы. Скрипты развертывания, контейнеры, управление облачными серверами — всё это строится на командах оболочки. Разобравшись в «сердце» Linux, вы сможете:
- быстро администрировать серверы без лишнего трафика;
- писать скрипты автоматизации для резервного копирования;
- понимать примеры из документации разработчиков;
- с уверенностью проходить интервью, где проверяют знание базовых команд Linux.
Как устроены оболочка и файловая система
Перед тем, как запускать команды, полезно понять две фундаментальные идеи:
- Shell — это программа-посредник (чаще всего bash), которая читает ввод, интерпретирует сочетания символов и передаёт ядру инструкции.
- Файловая система в Linux выглядит как единое древо, корнем которого является символ /. Все устройства, каталоги и файлы монтируются в это дерево.
Запомните эти два принципа: когда вы используете cd, вы просто меняете рабочую ветку дерева, а команда ls лишь показывает листья на текущем уровне.
Навигация по каталогам с cd
Команда cd («change directory») служит для перехода между каталогами. Ключевые приёмы:
- cd /etc — абсолютный путь, начинающийся с корня.
- cd .. — переход на уровень выше.
- cd ~ — мгновенный возврат в домашний каталог пользователя.
- cd - — переключение между последними двумя директориями.
Если вы часто работаете в длинных путях, создайте алиас в файле ~/.bashrc, чтобы одна короткая команда переносила вас в нужную директорию.
Просмотр содержимого с ls
ls — базовый «сканер» каталога. Некоторые популярные параметры:
- ls -l — вывод в длинном формате: права, владелец, размер, дата изменения.
- ls -a — показывает скрытые файлы (те, что начинаются с точкой).
- ls -h — «читаемые» размеры (K, M, G) вместо байтов.
- ls /var/log — просмотр любого каталога без смены текущего.
Комбинируйте параметры: ls -lah позволит быстро оценить место, занятое файлами. Подробная справка доступна в man ls или на онлайн-странице man-pages .
Копирование файлов с cp
Команда cp создаёт копию файла или каталога. Удобные варианты использования:
- cp file.txt /backup/ — копирование файла в другой каталог.
- cp -i — интерактивный режим, спрашивает подтверждение при перезаписи.
- cp -r — рекурсивная копия каталогов.
- cp -u — копирует только если источник новее цели.
Для резервирования настроек создайте задание cron, которое ежедневно выполняет cp -ru ~/.config /backup/config. Простой скрипт позволит автоматизировать сохранение данных, не полагаясь на графические утилиты.
Перемещение и переименование с mv
mv — универсальный «переезд» файлов. Всегда помните:
- Если путь назначения — существующий каталог, объект будет перенесён внутрь каталога.
- Если путь назначения не существует, объект будет переименован.
- Ключ -i помогает избежать потерь, спрашивая подтверждение перезаписи.
Пример: mv report{_v1,.bak} — краткая запись bash, которая переименует report_v1 в report.bak. Так можно быстро создавать резервные копии документов перед редактированием.
Удаление с rm и безопасность данных
Команда rm мгновенно удаляет файлы, минуя корзину. Чтобы минимизировать риск:
- Работайте без sudo, пока не убедились, что удаляете нужный файл.
- Используйте rm -i для подтверждения каждого действия.
- Создайте алиас rm='rm -i' в ~/.bashrc, чтобы интерактивный режим был по умолчанию.
- Для каталогов применяйте rm -r только после проверки содержимого через ls.
Если удаление должно быть безвозвратным, рассмотрите утилиту shred , которая затирает данные.
Создание каталогов с mkdir
mkdir формирует новый каталог.
- mkdir projects — создаёт папку в текущей директории.
- mkdir -p projects/2025/april — делает цепочку вложенных папок одним действием.
- mkdir -m 700 secret — устанавливает права доступа при создании.
Сочетая mkdir -p с переменными оболочки, легко автоматически заводить каталоги под ежедневные отчёты: mkdir -p "$(date +%Y)/$(date +%m)/$(date +%d)".
Получение справки с man
man — встроенный «офлайн-учебник». Формат страниц единообразен: раздел SYNOPSIS показывает способ вызова, DESCRIPTION — детали, OPTIONS — список параметров. Быстрые приёмы:
- man -k copy — поиск по ключевому слову в заголовках страниц.
- man 5 passwd — открывает раздел 5 (форматы и конфигурационные файлы) для темы passwd.
- /pattern — поиск внутри страницы.
Если локальных страниц нет, обратитесь к tldr-pages — это сжатые примеры команд, пригодные для ежедневной работы.
Комбинирование команд: труба и перенаправление
До этого мы рассматривали команды отдельно, но сила Linux командной строки раскрывается, когда вы объединяете их с помощью | (пайп) и > (перенаправление). Пример резервного списка конфигурационных файлов:
- ls -1 ~/.config | tee config_list.txt — выводит перечень файлов на экран и одновременно сохраняет его в файл.
- cat config_list.txt | xargs -I{} cp -u ~/.config/{} /backup/config/{} — копирует только изменённые файлы.
Такие цепочки создают гибкие «мишени» для администрирования, сокращая время на рутинные операции.
Файловые шаблоны и подстановки
Часто в инструкциях встречаются символы «звёздочка» и «вопросительный знак». Это не магия, а «глобbing» — механизм оболочки, который расширяет шаблоны до списка файлов:
- * соответствует любой последовательности символов: ls *.txt покажет все текстовые файлы.
- ? заменяет ровно один символ: mv img_?.png images/ перенесёт файлы img_1.png, img_2.png и так далее.
- Квадратные скобки задают диапазон: rm log_[0-9][0-9].gz удалит архивы с номерами от 00 до 99.
Используя шаблоны вместе с cp и mv, можно за секунду разложить тысячи фотографий по подкаталогам. Главное помнить, что расширение шаблона делает оболочка, а команда получает уже готовый список имён.
Переменные окружения и PATH
Каждый процесс в Linux наследует набор переменных окружения. Если вы набираете имя программы без пути, оболочка ищет её в каталогах, перечисленных в переменной $PATH. Проверьте содержимое командой echo $PATH — вы увидите двоеточием разделённый список директорий.
Чтобы добавить свой каталог с утилитами:
- Создайте папку ~/bin и поместите туда скрипты.
- Откройте ~/.bashrc и добавьте строку export PATH="$HOME/bin:$PATH".
- Перезапустите оболочку командой source ~/.bashrc.
Теперь любые скрипты из ~/bin доступны как обычные команды. Это простой способ расширить инструментарий без установки пакетов в систему.
Частые ошибки и способы их избежать
Ошибаться — естественно, но некоторые промахи могут стоить времени и данных. Ниже список распространённых ситуаций и полезных приёмов, которые помогут:
- Случайное удаление каталога: всегда смотрите, не находится ли курсор на «/» или «/home». Подтверждение rm -i спасает нервы.
- Неверный путь в cp или mv: предварительно выполняйте echo перед подстановкой шаблонов, чтобы увидеть, какие файлы будут затронуты.
- Редактирование системных файлов без резервной копии: делайте «копию-тень» командой cp -a file{,.bak}.
- Перегрузка терминала бесконечным выводом: добавьте | less в конец длинной команды, чтобы пролистывать информацию.
Практические задачи для тренировки
Попробуйте закрепить приёмы на реальных заданиях:
- Быстрый бэкап: создайте скрипт, который каждый вечер архивирует ~/Documents в каталог /backup и удаляет архивы старше недели.
- Уборка загрузок: с помощью rm -i и mv сортируйте скачанные файлы по расширениям в подпапки.
- Учёт места: напишите одноразовую команду, которая выводит список файлов больше 100 МБ в домашнем каталоге.
Выполняя такие упражнения, вы закрепите навык чтения справки, навигации и управления файлами.
Следующий шаг после базовых команд
- grep — поиск текста по шаблону в потоке данных;
- find — сканирование и массовые действия над файлами по критериям имени, даты или размера;
- rsync — синхронизация каталогов по сети с инкрементальными обновлениями;
- tar — архивирование с сохранением прав доступа и ссылок.
Каждая из этих команд наследует идеи, описанные выше: навигацию, шаблоны, пайпы и переменные окружения. Поэтому заложенные «фундаментальные команды Linux» служат точкой опоры для изучения всего остального инструментария.
Полезные ресурсы для дальнейшего обучения
- Open Source Guides — для понимания структуры проектов.
- Руководство GNU Coreutils — официальная документация основных команд.
- cheat.sh — быстрые шпаргалки по Linux без установки.
- ExplainShell — интерактивный разбор сложных команд.
Что дальше
Если после прочтения руки тянутся открыть терминал — цель достигнута. Попрактикуйтесь: напишите мини-скрипт для резервного копирования, наведите порядок в каталоге загрузок, поэкспериментируйте с пайпами. Когда базовые команды станут частью мышечной памяти, переходите к grep, find, rsync и знакомьтесь с миром shell-скриптов. Чем больше вы «разговариваете» с Linux на его родном языке, тем охотнее он выполняет вашу работу.