Введение
Добро пожаловать в лабораторную работу по основным операциям с файлами в 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 означает "recursive" (рекурсивно). Она необходима при копировании каталогов, чтобы гарантировать, что всё содержимое будет скопировано.
- Проверим наши копии:
ls
ls testdir
ls testdir_copy

Перемещение и переименование файлов и каталогов
Команда mv используется в Linux как для перемещения, так и для переименования:
- Переименуйте файл:
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") удаляет файлы. Давайте проверим:lsoriginal_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_testdirrmdir(удаление каталога) работает только с пустыми каталогами.lsnew_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и все, что находится внутри него. Используйте эту команду с осторожностью.lstestdirтеперь должен быть удален.Принудительное удаление (использовать с особой осторожностью):
Иногда может потребоваться удалить файлы без запроса подтверждения, даже если они защищены от записи (хотя у нас таких нет). Опция
-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Примечание: Вы могли заметить, что мы использовали
-R(заглавная) сlsвместо-r(строчная), как мы делали сcpиrm. Это не просто разница в регистре — это совершенно разные опции! Дляls-Rозначает "рекурсивный список" (список подкаталогов), в то время как-rозначает "обратный порядок сортировки". Дляcpиrmрекурсивная опция — это-r(строчная). Всегда проверяйте руководство (man command), чтобы понять специфические опции каждой команды.Теперь давайте удалим его принудительно:
rm -rf temp_dirПроверьте удаление:
lstemp_dirдолжен быть удален.
Помните: в командной строке Linux удаленные файлы, как правило, исчезают навсегда. Используйте rm осторожно!
Резюме
Поздравляем! Вы изучили основные операции с файлами в Linux:
- Навигация по файловой системе с помощью
cdиpwd - Создание файлов и каталогов с помощью
touchиmkdir - Просмотр содержимого с помощью
lsи его опций - Копирование файлов и каталогов с помощью
cp - Перемещение и переименование с помощью
mv - Удаление файлов и каталогов с помощью
rmиrmdir
Эти команды составляют основу управления файлами в Linux. С практикой вы станете профессионалом в управлении файлами и каталогами из командной строки.
Не забывайте использовать эти команды осторожно, особенно rm, так как она безвозвратно удаляет файлы и каталоги без возможности восстановления.
Продолжая свой путь в Linux, изучайте страницы руководства (например, man ls), чтобы узнать больше о каждой команде и её опциях. Удачи в исследованиях!



