Введение
Добро пожаловать в лабораторную работу по основным операциям с файлами в 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.
-rw-rw-r-- 1 labex labex 12 May 3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex 0 May 3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex 13 May 3 08:44 file2.txt
drwxrwxr-x 2 labex labex 23 May 3 08:45 new_testdir
-rw-rw-r-- 1 labex labex 0 May 3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex 23 May 3 08:45 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? Давайте проверим, пуст ли он:ls new_testdirЕсли он пуст (файлы не отображаются), мы можем удалить его с помощью
rmdir:rmdir new_testdirrmdir(remove directory) работает только с пустыми каталогами.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), чтобы узнать больше о каждой команде и её опциях. Удачи в исследованиях!



