Введение / Зачем это нужно
Файловая система Linux — это иерархическая структура, где всё представлено в виде файлов и каталогов. Умение управлять ею — базовый навык любого пользователя Linux, от новичка до администратора. Этот гайд даст вам практические инструменты для навигации, организации данных и базового администрирования. Вы сможете уверенно работать в терминале, создавать/удалять файлы, управлять правами и понимать логику расположения системных файлов.
Требования / Подготовка
- Доступ к терминалу любого Linux-дистрибутива (Ubuntu, CentOS, Fedora и т.д.).
- Пользовательская учётная запись с правами на выполнение команд в вашей домашней директории (
/home/ваше_имя). - Для операций вне вашей домашней папки (например, в
/etcили/var) могут потребоваться права суперпользователя (sudo). Будьте осторожны с такими командами. - Базовое понимание, что такое путь (например,
/home/user/Documents/file.txt).
Основные команды навигации и просмотра
Шаг 1: Определение местоположения — pwd
Команда pwd (print working directory) показывает полный путь к вашей текущей директории. Это первая команда, которую стоит использовать при открытии терминала, чтобы понять, где вы находитесь.
pwd
# Пример вывода: /home/username
Шаг 2: Перемещение между каталогами — cd
Команда cd (change directory) позволяет перемещаться по файловой системе.
# Перейти в домашнюю директорию
cd ~
# или просто
cd
# Перейти в конкретный абсолютный путь
cd /etc/nginx
# Перейти на уровень выше (родительская директория)
cd ..
# Вернуться в предыдущую директорию (как "назад" в браузере)
cd -
Совет: Используйте автодополнение Tab. Начните вводить cd /ho и нажмите Tab — система сама дополнит до cd /home/.
Шаг 3: Просмотр содержимого каталога — ls
Команда ls (list) выводит список файлов и подкаталогов в текущей или указанной директории.
# Простой список
ls
# Подробный список (права, владелец, размер, дата)
ls -l
# Показать все файлы, включая скрытые (начинающиеся с .)
ls -la
# Сортировка по размеру (самые большие вверху)
ls -lS
# Рекурсивный просмотр (включая вложенные каталоги)
ls -R
Работа с файлами и каталогами
Шаг 4: Создание файлов и папок
- Создание пустого файла:
touch filename.txttouch notes.txt - Создание каталога:
mkdir foldernamemkdir project_2026 - Создание вложенных каталогов (если родительские не существуют):
mkdir -p path/to/new/foldermkdir -p archive/2026/02
Шаг 5: Копирование, перемещение и переименование
- Копирование файла:
cp source.txt destination/cp report.docx ~/Documents/ - Копирование каталога (рекурсивно):
cp -r source_folder/ destination/cp -r templates/ backup/ - Перемещение или переименование:
mv oldname.txt newname.txtилиmv file.txt /new/path/mv draft.txt final.txt mv image.jpg /var/www/images/⚠️ Важно: Команда
mvбез флагов перезаписывает файл назначения без предупреждения. Используйтеmv -iдля интерактивного подтверждения.
Шаг 6: Удаление файлов и каталогов
- Удаление файла:
rm filenamerm temp.log - Удаление пустого каталога:
rmdir folderrmdir empty_cache - Удаление непустого каталога (со всем содержимым):
rm -rf foldernamerm -rf old_backup/⚠️ Критически важно: Флаг
-rf(recursive, force) удаляет всё безвозвратно и без подтверждения. Дважды проверяйте путь перед выполнением. Ошибка в команде типаrm -rf /может разрушить всю систему.
Права доступа и безопасность
Шаг 7: Просмотр и понимание прав доступа
При использовании ls -l вы видите строку вроде: -rw-r--r-- 1 user group 1234 Feb 17 10:00 file.txt.
Расшифровка:
- Первый символ: тип (
-— файл,d— каталог). - Следующие 9 символов: права в три группы (владелец, группа, остальные). Каждая группа:
r(чтение),w(запись),x(выполнение). - Пример:
rw-= чтение и запись, но не выполнение.
Шаг 8: Изменение прав доступа — chmod
Есть два основных синтаксиса:
- Символьный (более понятный):
# Добавить выполнение для владельца chmod u+x script.sh # Удалить запись для группы и остальных chmod go-w important.conf # Установить права: владелец - rwx, группа и другие - r-x (5) chmod 755 script.sh - Восьмеричный (цифровой): Каждой группе (владелец, группа, другие) присваивается число от 0 до 7, где:
- 4 = чтение (r)
- 2 = запись (w)
- 1 = выполнение (x)
- Сумма: 7=4+2+1 (rwx), 6=4+2 (rw-), 5=4+1 (r-x) и т.д.
# 755 = rwxr-xr-x (владелец: всё, группа и другие: чтение и выполнение) chmod 755 script.sh
Шаг 9: Изменение владельца и группы — chown
Требует sudo.
# Изменить владельца файла
sudo chown newuser filename.txt
# Изменить владельца и группу одновременно
sudo chown newuser:newgroup folder/
# Рекурсивно изменить владельца для всего каталога
sudo chown -R www-data:www-data /var/www/html
Проверка результата
- Проверьте текущий путь:
pwdдолжен показывать ожидаемую директорию. - Подтвердите создание:
lsдолжен отобразить новые файлы/папки. - Убедитесь в правах:
ls -l filenameпокажет установленные права (-rwxr--r--). - Протестируйте выполнение: Если создали скрипт, запустите
./script.sh(при наличии праваxдля владельца).
Возможные проблемы
| Проблема | Причина | Решение |
|---|---|---|
Permission denied | Нет прав на операцию (чтение/запись/выполнение) в целевой директории или для файла. | 1. Используйте sudo для системных путей (осторожно!).2. Измените права через chmod или владельца через chown (если это ваша задача).3. Выполняйте операции в своей домашней директории ( /home/username). |
No such file or directory | Указан неверный путь или имя файла. | 1. Проверьте текущий путь pwd.2. Используйте ls для просмотра содержимого текущей или указанной директории.3. Убедитесь в правильности регистра символов (Linux — регистрозависимый: File.txt ≠ file.txt). |
| Файл случайно удалён | Использована команда rm или rm -rf с ошибкой в пути. | 1. Немедленно прекратите запись на диск. 2. Попробуйте восстановить через утилиты ( extundelete, testdisk), если файловая система не перезаписана. Шансы малы.3. Профилактика: всегда используйте ls перед rm -rf, настраивайте alias rm='rm -i' в ~/.bashrc. |
Operation not permitted при chown/chmod | Попытка изменить права/владельца файла, который вам не принадлежит, без sudo. | 1. Добавьте sudo в начало команды, если вы администратор.2. Если файл системный, подумайте, нужно ли его менять. |
| Автодополнение (Tab) не работает | Терминал использует оболочку, отличную от bash/zsh, или сбиты настройки. | 1. Убедитесь, что вы в bash (echo $SHELL).2. Проверьте, есть ли пакет bash-completion (sudo apt install bash-completion для Debian/Ubuntu). |
Заключительный совет: Начинайте с простых операций в изолированной тестовой папке (например, mkdir test && cd test). Чем увереннее вы становитесь с базовыми командами, тем эффективнее работаете с Linux.