Основные операции с файлами

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Добро пожаловать в лабораторную работу "Основные операции с файлами в Linux"! В Linux почти все рассматривается как файл, что делает операции с файлами основой использования системы. В этой лабораторной работе вы научитесь использовать самые распространенные команды для управления файлами и каталогами, что поможет вам стать более опытными в навигации по системе Linux и ее организации.

Предварительные требования

  • Базовое понимание, что такое командная строка
  • Закрепленное понятие о файлах и каталогах (папках)

Цели

По завершении этой лабораторной работы вы сможете:

  • Конфидентно перемещаться по файловой системе Linux
  • Создавать, просматривать и изменять файлы и каталоги
  • Понимать и использовать основные команды для работы с файлами

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/mv("File Moving/Renaming") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") subgraph Lab Skills linux/echo -.-> lab-270248{{"Основные операции с файлами"}} linux/ls -.-> lab-270248{{"Основные операции с файлами"}} linux/touch -.-> lab-270248{{"Основные операции с файлами"}} linux/cp -.-> lab-270248{{"Основные операции с файлами"}} linux/mv -.-> lab-270248{{"Основные операции с файлами"}} linux/rm -.-> lab-270248{{"Основные операции с файлами"}} linux/cd -.-> lab-270248{{"Основные операции с файлами"}} linux/pwd -.-> lab-270248{{"Основные операции с файлами"}} linux/mkdir -.-> lab-270248{{"Основные операции с файлами"}} end

Понимание рабочей среды

В Linux каждый пользователь обычно имеет "домашний каталог", обозначаемый символом ~. Однако в этой лабораторной среде мы начнем работу в каталоге /home/labex/project, который является нашим каталогом по умолчанию.

Сначала откройте терминал на рабочем столе ИЛИ переключитесь на вкладку терминала в лабораторной среде.

Скриншот интерфейса терминала

Начнем с определения нашего текущего местоположения:

pwd

pwd расшифровывается как "print working directory" (вывести текущий рабочий каталог). Эта команда отображает ваше текущее местоположение в файловой системе. Она очень важна для ориентирования в структуре файлов Linux. В результате выполнения этой команды вы должны увидеть /home/labex/project.

Теперь давайте исследуем связь между текущим каталогом и домашним каталогом:

echo ~

Эта команда отобразит путь к вашему домашнему каталогу, который должен быть /home/labex.

Чтобы посмотреть содержимое текущего каталога, используйте:

ls

Эта команда выведет список файлов и каталогов в текущем рабочем каталоге (/home/labex/project).

Также проверим содержимое вашего домашнего каталога:

ls ~

Эта команда выводит содержимое вашего домашнего каталога, которое может отличаться от содержимого текущего рабочего каталога.

Понимание различия между текущим рабочим каталогом и домашним каталогом важно для эффективной навигации по файловой системе Linux.

Навигация по файловой системе

Linux использует так называемую "иерархическую файловую систему". Представьте ее как большое дерево с ветвями. Главный ствол называется "корневой каталог" (root directory), обозначаемый одинарной косой чертой /. Все остальные каталоги и файлы отходят от этого корня.

Давайте узнаем, как перемещаться по этой древовидной структуре:

  1. Проверьте свое текущее местоположение:
pwd

Должно отобразиться /home/labex/project. Если это не так, возможно, вы находитесь в другом каталоге. Используйте cd /home/labex/project, чтобы вернуться в начальную точку.

  1. Просмотрите содержимое текущего каталога:
ls

Эта команда выводит все файлы и папки в текущем местоположении. Каталог /home/labex/project пуст, поэтому ничего не будет отображено.

  1. Перейдите на один уровень выше, в родительский каталог:
cd..

.. означает "каталог выше". После выполнения этой команды снова выполните pwd. Теперь вы должны находиться в /home/labex.

  1. Вернитесь в проектный каталог:
cd project

Эта команда возвращает вас в /home/labex/project.

  1. Перейдите в домашний каталог:
cd ~

~ - это сокращение для домашнего каталога. Выполните pwd, чтобы убедиться, что вы находитесь в /home/labex.

  1. Вернитесь в проектный каталог, используя абсолютный путь:
cd /home/labex/project

Это называется "абсолютным путем" (absolute path), потому что он начинается от корня (/) и указывает полное местоположение.

Создание файлов и просмотр содержимого каталога

Теперь, когда мы знаем, как перемещаться по файловой системе, давайте создадим несколько файлов и узнаем, как просматривать содержимое каталогов.

Сначала убедитесь, что вы находитесь в каталоге /home/labex/project:

cd /home/labex/project
  1. Создадим несколько файлов:
touch file1.txt

Команда touch используется для создания пустого файла. Если файл уже существует, эта команда обновляет временную метку файла без изменения его содержимого. Это простой способ создать новые пустые файлы.

echo "Hello, Linux" > file2.txt

Эта команда выполняет две задачи:

  • echo - это команда, которая выводит текст.
  • Символ > перенаправляет вывод команды echo в файл с именем file2.txt. Если файл не существует, он будет создан. Если файл уже существует, его содержимое будет заменено.
echo "Hidden file" > .hiddenfile

Эта команда создает скрытый файл. В Linux любой файл или каталог, имя которого начинается с точки (.), считается скрытым.

  1. Теперь создадим каталог:
mkdir testdir

Команда mkdir (сокращение от "make directory" - создать каталог) создает новый каталог с именем testdir.

  1. Простой просмотр содержимого:
ls
Вывод списка содержимого каталога

Эта команда показывает содержимое текущего каталога. Вы должны увидеть file1.txt, file2.txt и testdir.

  1. Подробный просмотр содержимого:
ls -l

Опция -l (это строчная буква "L", а не цифра 1) предоставляет вывод в "длинном" формате. Вы увидите дополнительные сведения, такие как права доступа к файлу, владелец, размер и дата изменения.

  1. Показать скрытые файлы:
ls -a

Эта команда покажет все файлы, включая скрытый файл .hiddenfile, который мы создали.

  1. Комбинирование опций:
ls -la

Эта команда комбинирует длинный формат вывода (-l) с показом всех файлов (-a).

  1. Просмотр содержимого конкретного каталога:
ls -l testdir

Эта команда выводит содержимое каталога testdir (который на данный момент должен быть пустым).

Копирование файлов и каталогов

Теперь, когда у нас есть файлы, с которыми можно работать, давайте научимся их копировать:

  1. Скопировать файл:
cp file1.txt file1_copy.txt

Эта команда создает копию файла file1.txt с именем file1_copy.txt в текущем каталоге.

Проверим, что файл скопирован:

ls
  1. Скопировать файл в другой каталог:
cp file2.txt testdir/

Эта команда копирует файл file2.txt в каталог testdir.

  1. Скопировать каталог:
cp -r testdir testdir_copy

Опция -r расшифровывается как "рекурсивно" (recursive). Она обязательна при копировании каталогов, чтобы скопировать все их содержимое.

  1. Проверим, что все скопировано:
ls
ls testdir
ls testdir_copy
Терминал, показывающий скопированные файлы

Перемещение и переименование файлов и каталогов

В Linux команда mv используется как для перемещения, так и для переименования:

  1. Переименовать файл:
mv file1.txt newname.txt

Эта команда переименовывает файл file1.txt в newname.txt.

  1. Переместить файл в каталог:
mv newname.txt testdir/

Эта команда перемещает файл newname.txt в каталог testdir.

  1. Переименовать каталог:
mv testdir_copy new_testdir

Эта команда переименовывает каталог testdir_copy в new_testdir.

  1. Переместить и переименовать за один раз:
mv testdir/newname.txt./original_file1.txt

Эта команда перемещает файл newname.txt из каталога testdir и переименовывает его в original_file1.txt в текущем каталоге.

  1. Проверить изменения:
ls
ls testdir
Отображение результатов выполнения команд

Удаление файлов и каталогов

Удаление файлов и каталогов - это мощная, но потенциально опасная операция. Всегда дважды проверяйте, прежде чем использовать эти команды, особенно когда используете параметры, которые обходят защитные механизмы:

  1. Удалить файл:
rm file1_copy.txt

Эта команда безвозвратно удаляет файл file1_copy.txt.

  1. Удалить пустой каталог:
rmdir new_testdir

Команда rmdir работает только с пустыми каталогами, и если каталог не пуст, вы получите ошибку.

  1. Удалить каталог и его содержимое:
rm -r testdir

Параметр -r необходим для рекурсивного удаления каталогов и их содержимого.

  1. Удалить файлы интерактивно:
rm -i file2.txt

Параметр -i запрашивает подтверждение перед каждым удалением. Введите 'y' и нажмите Enter, чтобы подтвердить удаление.

  1. Принудительно удалить без запроса подтверждения:
touch remaining_files
ls
Список файлов перед удалением
rm -rf remaining_files

Комбинация -rf очень мощная и потенциально опасная. Она означает:

  • -r: рекурсивно (для каталогов)
  • -f: принудительно (игнорировать несуществующие файлы, никогда не запрашивать подтверждение)

ВНИМАНИЕ: Команда rm -rf удалит файлы и каталоги без запроса подтверждения. Она может быть чрезвычайно разрушительной, если используется неправильно. Всегда дважды проверяйте команду перед использованием, особенно когда используете ее с подстановочными знаками или от имени суперпользователя.

  1. Проверить удаление:
ls
Список каталога после удаления файлов

Помните: В Linux обычно нет "Корзины" или "Мусора" для командной строки. Когда вы удаляете что-то с помощью команды rm, оно обычно удаляется навсегда.

Итог

Поздравляем! Вы научились выполнять основные операции с файлами в Linux:

  • Перемещение по файловой системе с помощью команд cd и pwd
  • Создание файлов и каталогов с помощью команд touch и mkdir
  • Просмотр содержимого с помощью команды ls и ее параметров
  • Копирование файлов и каталогов с помощью команды cp
  • Перемещение и переименование с помощью команды mv
  • Удаление файлов и каталогов с помощью команд rm и rmdir

Эти команды являются основой управления файлами в Linux. Практикуясь, вы станете профи в управлении файлами и каталогами с помощью командной строки.

Помните, что нужно использовать эти команды осторожно, особенно команду rm, так как она безвозвратно удаляет файлы и каталоги.

По мере продолжения изучения Linux изучайте руководства (man pages, например, man ls), чтобы узнать больше о каждой команде и ее параметрах. Удачи в исследованиях!