Работа с файлами и папками в Linux
Общие сведения
Данное руководство содержит описание базовых команд управления файловой системой в операционной системе Linux.
Команды приведены с краткими пояснениями, синтаксисом и типовыми параметрами.
Навигация по файловой системе
pwd — определение текущего каталога
Команда выводит абсолютный путь к рабочей директории. Используется для ориентации в дереве каталогов.
$ pwd
/home/user/documents
ls — просмотр содержимого каталога
Отображает список файлов и поддиректорий. Основные варианты:
ls - Краткий список имён
ls -l - Детальный список (права, владелец, размер, дата)
ls -a - Включение скрытых файлов (начинающихся с точки)
ls -la - Комбинированный вывод всех элементов с деталями
ls -lh - Детальный список с человеко-читаемым размером (K, M, G)
ls -lt - Сортировка по времени изменения (новые сверху)
cd — смена текущего каталога
cd /абсолютный/путь - переход по абсолютному пути
cd относительный/путь - переход относительно текущей позиции
cd / - переход в корневой каталог
cd .. - переход на уровень выше
cd ~ - переход в домашний каталог пользователя
cd - - переход в предыдущий каталог
Вспомогательные средства: tree и mc
tree — отображение структуры каталогов
Утилита tree предназначена для рекурсивного отображения содержимого каталогов в виде древовидной структуры. В отличие от стандартных команд ls, которые выводят список файлов линейно, tree визуализирует иерархию вложенности, что незаменимо при быстром анализе структуры проектов или знакомстве с файловой системой незнакомого сервера. Команда tree не входит в базовую поставку большинства дистрибутивов и требует отдельной установки.
Установка:
Debian / Ubuntu:
sudo apt update && sudo apt install tree
CentOS / RHEL / Fedora:
sudo yum install tree
Основные параметры:
tree -a - Показывать все файлы, включая скрытые (начинающиеся с точки)
tree -d - Выводить только каталоги, игнорируя файлы.
tree -L 2 - Ограничить глубину рекурсии (-L уровень). Значение 1 покажет только текущий каталог.
tree -P "*.sh" - Показывать только файлы (-P шаблон), соответствующие указанному шаблону (поддерживаются wildcard).
tree -I "node_modules" - Исключить файлы, соответствующие шаблону (-I шаблон).
tree --filelimit 10 - Не обрабатывать каталоги, содержащие более # файлов (--filelimit #).
tree -h - Отображать размер файлов в человеко-читаемом формате (K, M, G)
Просмотр структуры текущего каталога: tree. Без аргументов показывает иерархию, начиная с текущей директории.
Игнорирование определённых каталогов: tree -I "build|dist". Исключает из вывода каталоги build и dist.
Комбинированный вывод: tree -ah --du. Отображает все файлы (включая скрытые), их размеры в удобном формате и итоговый размер каждого каталога.
mc (Midnight Commander) — консольный двухпанельный файловый менеджер.
Midnight Commander (или просто mc) — это мощный консольный файловый менеджер с двухпанельным интерфейсом, созданный как свободный аналог классического Norton Commander под UNIX-подобные системы. mc позволяет выполнять все основные файловые операции, работать с архивами как с обычными каталогами, подключаться к удалённым серверам по FTP/SFTP и даже редактировать файлы с помощью встроенного редактора, не покидая сессии терминала.
Установка и запуск:
Debian / Ubuntu:
sudo apt install mc
CentOS / RHEL / Fedora:
sudo yum install mc
Запуск: Введите в терминале mc. Программа запустится в текущем окне терминала. Во время запуска можно указать каталоги для отображения в левой и правой панелях: mc /var/log /home/user.
Интерфейс и управление
Основу интерфейса составляют две вертикальные панели, которые могут отображать содержимое каталогов, дерево каталогов, информацию о файле или предварительный просмотр текста. Под панелями располагается командная строка, в которой можно исполнять обычные команды оболочки, не выходя из файлового менеджера.
Управление осуществляется как с помощью клавиатуры, так и с помощью мыши (работает даже через SSH в совместимых терминалах). Активная панель (та, с которой выполняются действия) выделяется подсветкой.
Основные «горячие клавиши»
| Клавиша | Назначение |
| Tab | Переключение между левой и правой панелями. |
| Стрелки, Enter | Навигация по файловой системе. |
| F1 | Вызов контекстно-зависимой справки. |
| F2 | Вызов пользовательского меню для быстрого доступа к часто используемым командам. |
| F3 | Просмотр содержимого выделенного файла (встроенный просмотрщик). |
| F4 | Редактирование выделенного файла (открывает встроенный редактор mcedit). |
| F5 | Копирование выделенного файла или каталога из активной панели в пассивную. |
| F6 | Перемещение (или переименование) выделенного объекта. |
| F7 | Создание нового каталога. |
| F8 | Удаление выделенного файла или каталога. |
| F9 | Активация верхнего меню (Left, File, Command, Options, Right) для доступа ко всем функциям. |
| F10 | Выход из Midnight Commander. |
Дополнительные возможности
- Работа с архивами: Midnight Commander позволяет просматривать и копировать файлы из архивов (tar, zip, rar, arj и др.) так, будто они являются обычными каталогами. Для перемещения файла в архив достаточно скопировать его в файл с соответствующим расширением.
- Удалённый доступ: Поддерживаются встроенные возможности подключения по протоколам FTP, SFTP и SMB (Windows-шары). Для подключения к удалённому серверу по SFTP можно использовать командную строку внутри mc: cd sh://user@host/путь, или активировать меню через F9 -> Left -> FTP link и ввести URI в формате sftp://user@remote-host.
Создание объектов файловой системы
mkdir — создание каталогов
mkdir папка # создать подкаталог в текущей директории
mkdir /home/user/папка # создать по абсолютному пути
mkdir папка1 папка2 # создать несколько каталогов
mkdir -p путь/к/вложенной/папке # создать всю цепочку каталогов (включая промежуточные)
Параметр -p (parents) необходим для создания вложенных структур, когда родительские каталоги отсутствуют.
touch — создание пустых файлов
Команда обновляет временные метки файла. При отсутствии файла создаёт его нулевого размера.
touch file.txt
touch file1.txt file2.txt file3.txt
echo — запись строки в файл
echo "текст" > file.txt # перезапись файла
echo "текст" >> file.txt # добавление в конец файла
nano — текстовый редактор
nano — консольный текстовый редактор, входящий в состав большинства дистрибутивов Linux по умолчанию. Отличительной особенностью редактора является его простота и наглядность. В отличие от редакторов vim или emacs, nano имеет немодальный интерфейс: после открытия файла пользователь сразу может приступать к набору и редактированию текста, без переключения между режимами. В нижней части окна постоянно отображается список основных «горячих клавиш», что делает его идеальным инструментом для начинающих пользователей и для выполнения быстрых правок конфигурационных файлов.
Возможности и синтаксис
-
Запуск и создание файлов:
-
nano имя_файла — открыть существующий или создать новый файл для редактирования.
- nano — запустить редактор с пустым буфером; при сохранении будет предложено указать имя файла.
-
- Синтаксис команд:
- все команды ввода осуществляются с помощью комбинаций клавиш.
- Символ ^ обозначает клавишу Ctrl, а символ M обозначает клавишу Alt (Meta). Например, запись ^X означает нажатие Ctrl+X, а M-U — нажатие Alt+U.
Основные комбинации клавиш:
| Комбинация | Назначение | Примечание |
| Ctrl+G | Вызов справки | Отображает полный список всех доступных команд. |
| Ctrl+X | Выход из редактора | При наличии несохранённых изменений будет запрошено подтверждение. |
| Ctrl+O | Сохранить файл (WriteOut) | Перед сохранением запрашивает подтверждение имени файла. |
| Ctrl+W | Поиск текста | Позволяет найти строку или регулярное выражение. |
| Ctrl+\ | Поиск и замена | Выполняет замену найденного текста в документе. |
| Ctrl+K | Вырезать строку | Удаляет текущую строку и помещает её в буфер обмена. |
| Ctrl+U | Вставить из буфера | Вставляет содержимое буфера в текущей позиции курсора. |
| Alt+6 | Копировать выделенный текст | Копирует выделенный фрагмент в буфер без удаления. |
| Alt+U | Отменить последнее действие (Undo) | Позволяет откатить изменения. |
| Alt+E | Повторить отменённое действие (Redo) | Повторяет действие, отменённое через Alt+U. |
| Alt+A | Начать выделение текста | Позволяет выделить блок текста с помощью стрелок для последующего копирования/вырезания. |
Навигация по тексту
- Ctrl+A / Ctrl+E — перейти в начало / конец текущей строки.
- Ctrl+Y / Ctrl+V — перейти на страницу вверх / вниз.
- Ctrl+_ — перейти к указанной строке и столбцу.
- Ctrl+T / Ctrl+F — перейти к предыдущему / следующему слову в строке.
Просмотр содержимого файлов
cat file.txt - Вывод всего содержимого файла (для небольших объёмов)
head file.txt - Вывод первых 10 строк
head -n 20 file.txt - Вывод первых 20 строк
tail file.txt - Вывод последних 10 строк
tail -n 5 file.txt - Вывод последних 5 строк
tail -f file.log - Отслеживание новых строк в реальном времени (для логов)
less file.txt - Постраничный просмотр с возможностью поиска (/слово), выхода (q)
Копирование, перемещение и удаление
cp — копирование
cp исходный_файл целевой_файл # копирование в текущем каталоге
cp файл /путь/к/папке/ # копирование в другой каталог
cp -r исходная_папка целевая_папка # рекурсивное копирование каталогов
cp -i файл файл2 # запрос подтверждения перед перезаписью
cp -v файл файл2 # вывод деталей операции
mv — перемещение и переименование
mv старое_имя новое_имя # переименование
mv файл /путь/к/папке/ # перемещение
mv -i файл /путь/ # запрос при перезаписи
mv -v файл /путь/ # вывод подробностей
rm — удаление
rm file.txt # удаление файла
rm -r каталог # рекурсивное удаление каталога
rm -rf каталог # принудительное удаление без запросов
rm * # удаление всех файлов в текущем каталоге
rm -i file.txt # запрос подтверждения для каждого файла
Передача файлов по сети
wget — загрузка по HTTP/HTTPS/FTP
wget https://example.com/file.zip
wget -O имя_файла.zip http://example.com/file.zip # сохранение с новым именем
wget -r https://example.com/каталог/ # рекурсивная загрузка
curl — универсальная передача данных
curl -O https://example.com/file.zip # сохранение с оригинальным именем
curl -o имя.zip https://example.com/file.zip # сохранение с указанным именем
curl -I https://example.com # получение только HTTP-заголовков
scp — защищённое копирование по SSH
scp file.txt user@192.168.1.10:/home/user/ # копирование на удалённый хост
scp user@192.168.1.10:/home/user/file.txt ./ # копирование с удалённого хоста
scp -r каталог/ user@192.168.1.10:/home/user/ # рекурсивное копирование каталога
Управление правами и выполнение скриптов
chmod — изменение прав доступа
Права доступа задаются для трёх категорий: владелец, группа, остальные. Символы прав: r (чтение), w (запись), x (выполнение).
chmod +x script.sh # добавление права на выполнение для всех
chmod 755 script.sh # установка прав: rwxr-xr-x
chmod -R 750 каталог/ # рекурсивное изменение прав для каталога
Запуск скриптов
Для файла например script.sh возможны следующие способы выполнения:
| Способ | Требование |
| sh script.sh | Не требуется право x, используется интерпретатор sh |
| bash script.sh | Не требуется право x, используется интерпретатор bash |
| ./script.sh | Требуется право x и корректный shebang (#!/bin/bash) |
Дополнительные команды
| Команда | Назначение |
| find /путь -name "*.txt" | Поиск файлов по имени в указанной директории |
| grep "строка" файл.log | Поиск строки в файле |
| df -h | Просмотр использования дискового пространства |
| du -sh каталог/ | Определение размера каталога |
| ln -s /реальный/путь имя_ссылки | Создание символической ссылки |
| history | Отображение истории выполненных команд |
| clear | Очистка экрана терминала |
Примечания по использованию
- Для получения полной документации по любой команде используйте man команда или команда --help.
- Символ ~ (тильда) всегда интерпретируется как путь к домашнему каталогу текущего пользователя.
- Символ . (точка) обозначает текущий каталог, .. (две точки) — родительский.
- При работе с критически важными данными рекомендуется перед выполнением rm использовать параметр -i.
























