Введение
Добро пожаловать в лабораторную работу «Основные операции с файлами в Linux»! В Linux почти всё рассматривается как файл, поэтому операции с файлами имеют фундаментальное значение для работы с системой. В этой лабораторной работе вы изучите наиболее распространённые команды для управления файлами и каталогами. Это поможет вам лучше ориентироваться в файловой системе Linux и организовывать её содержимое.
Знакомство с рабочей средой
В Linux у каждого пользователя обычно есть «домашний каталог», обозначаемый как ~. Однако в этой лабораторной среде работа начинается в каталоге /home/labex/project, который является рабочим каталогом по умолчанию.
Сначала откройте терминал на рабочем столе или переключитесь на вкладку терминала в лабораторной среде.

Начнём с проверки текущего расположения:
pwd
pwd означает «print working directory» — «вывести рабочий каталог». Команда показывает ваше текущее расположение в файловой системе. Это важно для ориентации в структуре Linux. В выводе должно появиться /home/labex/project.
Теперь посмотрим на связь между текущим каталогом и домашним каталогом:
echo ~
Примечание. Если в терминале на рабочем столе вы не можете ввести символ
~из-за особенностей раскладки клавиатуры в некоторых странах, попробуйте переключиться на отдельную вкладку Terminal в левом верхнем углу интерфейса виртуальной машины.
Эта команда выведет путь к домашнему каталогу. Он должен быть равен /home/labex.
Чтобы просмотреть содержимое текущего каталога, выполните:
ls
Команда выведет файлы и каталоги из текущего рабочего каталога (/home/labex/project).
Также проверим содержимое домашнего каталога:
ls ~
Эта команда выводит содержимое домашнего каталога. Оно может отличаться от содержимого текущего рабочего каталога.
Понимание различий между текущим рабочим каталогом и домашним каталогом важно для эффективной навигации по файловой системе Linux.
Навигация по файловой системе
В Linux используется так называемая «иерархическая файловая система». Представьте её в виде большого дерева с ветвями. Основной ствол называется «корневым каталогом» и обозначается одной косой чертой /. Все остальные каталоги и файлы находятся в ветвях, исходящих из этого корня.
Рассмотрим, как перемещаться по такой структуре:
- Проверьте текущее расположение:
pwd
Команда должна вывести /home/labex/project. Если отображается другой путь, вы находитесь в другом каталоге. Выполните cd /home/labex/project, чтобы вернуться в начальный каталог.
- Просмотрите содержимое текущего каталога:
ls
Команда выводит все файлы и каталоги в текущем расположении. Каталог /home/labex/project пуст, поэтому вы ничего не увидите.
- Перейдите на один уровень вверх, в родительский каталог:
cd ..
.. означает «каталог уровнем выше». После выполнения команды снова запустите pwd. Теперь текущим каталогом должен быть /home/labex.
- Вернитесь в каталог проекта:
cd project
Вы снова окажетесь в /home/labex/project.
- Перейдите в домашний каталог:
cd ~
~ — это сокращённое обозначение домашнего каталога. Выполните pwd, чтобы убедиться, что текущий каталог — /home/labex.
- Вернитесь в каталог проекта с помощью абсолютного пути:
cd /home/labex/project
Это называется «абсолютным путём», потому что путь начинается с корневого каталога (/) и содержит полный адрес каталога.
Создание файлов и просмотр содержимого каталога
Теперь, когда вы умеете перемещаться по файловой системе, создадим несколько файлов и посмотрим, как отображается содержимое каталога.
Сначала убедитесь, что вы находитесь в каталоге /home/labex/project:
cd /home/labex/project
- Создайте несколько файлов:
touch file1.txt
Команда touch создаёт пустой файл. Если файл уже существует, команда обновляет его временную метку, не изменяя содержимое. Это простой способ создавать новые пустые файлы.
echo "Hello, Linux" > file2.txt
Эта команда выполняет две операции:
echo— команда, которая выводит текст.- Символ
>перенаправляет выводechoв файл с именемfile2.txt. Если файла нет, он создаётся. Если файл уже существует, его содержимое заменяется.
echo "Hidden file" > .hiddenfile
Эта команда создаёт скрытый файл. В Linux имя любого файла или каталога, начинающееся с точки (.), считается скрытым.
- Создайте каталог:
mkdir testdir
Команда mkdir (сокращение от «make directory») создаёт новый каталог с именем testdir.
- Обычный просмотр содержимого:
ls

Команда показывает содержимое текущего каталога. В списке должны быть file1.txt, file2.txt и testdir.
- Подробный просмотр:
ls -l
Параметр -l (это строчная буква L, а не цифра 1) включает подробный формат списка. Вы увидите дополнительные сведения: права доступа, владельца, размер и дату изменения.
- Показать скрытые файлы:
ls -a
Команда покажет все файлы, включая созданный скрытый файл .hiddenfile.
- Объединить параметры:
ls -la
Эта команда объединяет подробный формат (-l) с отображением всех файлов (-a).
- Просмотреть содержимое определённого каталога:
ls -l testdir
Команда выводит содержимое каталога testdir, который на этом этапе должен быть пустым.
Команды просмотра списка в этом разделе предназначены для практики и визуальной проверки. Результат лабораторной работы оценивается по тому, правильно ли созданы требуемые файлы и каталог.
Копирование файлов и каталогов
Теперь у нас есть файлы для работы. Научимся копировать их:
- Скопируйте файл:
cp file1.txt file1_copy.txt
Команда создаёт в текущем каталоге копию file1.txt с именем file1_copy.txt.
Проверьте результат:
ls
- Скопируйте файл в другой каталог:
cp file2.txt testdir/
Команда копирует file2.txt в каталог testdir.
- Скопируйте каталог:
cp -r testdir testdir_copy
Параметр -r означает «рекурсивно». Он необходим при копировании каталогов, чтобы скопировать всё их содержимое.
- Проверьте созданные копии:
ls
ls testdir
ls testdir_copy

Перемещение и переименование файлов и каталогов
В Linux команда mv используется как для перемещения, так и для переименования:
- Переименуйте файл:
mv file1.txt newname.txt
Команда переименовывает file1.txt в newname.txt.
- Переместите файл в каталог:
mv newname.txt testdir/
Команда перемещает newname.txt в каталог testdir.
- Переименуйте каталог:
mv testdir_copy new_testdir
Команда переименовывает testdir_copy в new_testdir.
- Переместите файл и одновременно переименуйте его:
mv testdir/newname.txt ./original_file1.txt
Команда перемещает newname.txt из каталога testdir в текущий каталог и переименовывает его в original_file1.txt.
- Проверьте изменения:
ls
ls testdir

Удаление файлов и каталогов
Удаление файлов и каталогов — мощная операция. В отличие от графических интерфейсов, в командной строке обычно нет «Корзины». Удаление с помощью rm, как правило, необратимо. Всегда внимательно проверяйте команды перед выполнением!
Удалим созданные файлы и каталоги. Убедитесь, что вы находитесь в каталоге /home/labex/project.
pwd
ls -a
В списке должны быть такие файлы, как original_file1.txt, .hiddenfile, file2.txt, а также такие каталоги, как testdir и new_testdir.
.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
Удалите один файл:
rm original_file1.txtКоманда
rm(сокращение от «remove») удаляет файлы. Проверим результат:lsФайла
original_file1.txtбольше быть не должно.Удалите файл в интерактивном режиме (более безопасный способ):
Попробуем удалить
file2.txt, но на этот раз используем интерактивный параметр-i:rm -i file2.txtПараметр
-iзапрашивает подтверждение перед удалением каждого файла. Введитеy(ответ «да») и нажмите Enter, чтобы подтвердить удаление. Если ввестиnили любой другой символ, файл удалён не будет.lsЕсли вы подтвердили удаление, файла
file2.txtбольше не будет.Проверьте, что происходит с непустым каталогом:
Помните каталог
new_testdir, созданный после переименованияtestdir_copy? В нём всё ещё находится скопированныйfile2.txt, поэтому командаrmdirзавершится ошибкой. Сначала проверим содержимое каталога:ls new_testdirВ выводе должен быть
file2.txt. Теперь выполнитеrmdir:rmdir new_testdirКоманда
rmdir(remove directory) работает только с пустыми каталогами.lsКаталог
new_testdirнельзя удалить, потому что он не пуст. Поэтому он по-прежнему должен отображаться в списке.Попробуйте удалить непустой каталог:
Теперь попробуем выполнить
rmdirдляtestdir, в котором всё ещё находитсяfile2.txt(он был скопирован на шаге 4):ls testdir rmdir testdirСкорее всего, вы увидите сообщение об ошибке, например
rmdir: failed to remove 'testdir': Directory not empty. Это ожидаемо:rmdirне удаляет каталоги, содержащие файлы или другие каталоги.Удалите каталог вместе с его содержимым (рекурсивно):
Чтобы удалить непустой каталог, используйте
rmс параметром-r(рекурсивное удаление):rm -r testdirКоманда удаляет каталог
testdirи всё его содержимое. Используйте её осторожно.lsТеперь каталога
testdirбыть не должно.Принудительное удаление (используйте с особой осторожностью):
Иногда требуется удалить файлы без запроса подтверждения, даже если они защищены от записи (хотя в этой лабораторной работе таких файлов нет). Для этого используется параметр
-f(force, принудительно).Удалим скрытый файл:
rm .hiddenfile ls -aТеперь объединим параметры
-rи-f. Командаrm -rfчрезвычайно мощная и потенциально опасная. Она рекурсивно удаляет каталоги (-r) и принудительно удаляет их без запроса подтверждения (-f).!!! ОПАСНАЯ ЗОНА !!! Перед выполнением
rm -rfвы должны быть АБСОЛЮТНО УВЕРЕНЫ, что знаете, какие данные удаляете. Небольшая опечатка может привести к удалению важных системных файлов или личных данных. Отменить такую операцию нельзя. Например,rm -rf /может попытаться удалить всю систему (если у вас есть соответствующие права). Всегда перепроверяйте путь.Безопасно создадим временный каталог и файл для демонстрации:
mkdir temp_dir touch temp_dir/temp_file.txt ls -R temp_dirПримечание. Вы могли заметить, что для
lsмы использовали-R(заглавная буква), а не-r(строчная), как ранее дляcpиrm. Это не просто различие регистра — это совершенно разные параметры! Дляlsпараметр-Rозначает «рекурсивный просмотр» (вывод содержимого подкаталогов), а-r— «обратный порядок сортировки». Дляcpиrmрекурсивным параметром является-r(строчная буква). Всегда сверяйтесь с руководством (man command), чтобы понять параметры конкретной команды.Теперь принудительно удалим созданные объекты:
rm -rf temp_dirПроверьте результат:
lsКаталога
temp_dirбольше быть не должно.
Помните: в командной строке Linux удалённые файлы обычно исчезают навсегда. Используйте rm осторожно!
Итоги
Поздравляем! Вы изучили основные операции с файлами в Linux:
- навигацию по файловой системе с помощью
cdиpwd; - создание файлов и каталогов с помощью
touchиmkdir; - просмотр содержимого с помощью
lsи его параметров; - копирование файлов и каталогов с помощью
cp; - перемещение и переименование с помощью
mv; - удаление файлов и каталогов с помощью
rmиrmdir.
Эти команды составляют основу управления файлами в Linux. С практикой вы научитесь уверенно управлять файлами и каталогами из командной строки.
Помните об осторожности, особенно при использовании rm: эта команда удаляет файлы и каталоги навсегда, без возможности восстановления.
По мере изучения Linux обращайтесь к man-страницам, например man ls, чтобы узнать больше о каждой команде и её параметрах. Успешного изучения!



