Раздел помощи SpaceWeb

Работа с файлами и каталогами в Linux

17 июн, 2024

Работа с файлами и каталогами в Linux – это основа для эффективного использования операционной системы. В Linux используется мощная файловая система, которая предоставляет пользователям гибкие инструменты для управления файлами и директориями. 

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

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

Иногда вам может понадобиться изменить текущий рабочий каталог, чтобы получить доступ к другим подкаталогам и файлам. В Linux для этого используется команда cd (сокращение от change directory – «сменить директорию»), за которой следует имя каталога. 

Изменение текущего каталога

Чтобы изменить текущий каталог на другой каталог в текущем расположении, используйте относительный путь. Например, чтобы перейти в каталог Documents из текущего каталога, пропишите:

cd Documents

Чтобы перейти в каталог Documents, который находится в домашнем каталоге пользователя johndoe, пропишите ту же команду и полный (относительный) путь:

cd /home/johndoe/Documents

Также иногда требуется вернуться на один уровень выше в иерархии каталогов. Для этого используйте две точки в качестве аргумента для команды cd:

cd ..

Возврат в домашний каталог

Чтобы быстро вернуться в домашний каталог пользователя, можно использовать символ тильда (~). Это удобный способ, который не требует ввода полного пути к домашнему каталогу:

cd ~

Переход в корневой каталог

Если нужно перейти в корневой каталог файловой системы, используйте команду cd с косой чертой (/) в качестве аргумента:

cd /

Как найти файл в Linux

Иногда необходимо найти местоположение определённого файла. В Linux для этого можно использовать команды find и locate.

Команда find позволяет искать файлы в заданном каталоге и его подкаталогах. Она принимает два основных аргумента: путь до директории, в которой нужно произвести поиск, и имя файла, который требуется найти. 

Например, чтобы найти файл с именем example.js в домашней директории пользователя johndoe, используйте следующую команду:

find /home/johndoe -name example.js

Эта команда начнёт поиск в каталоге /home/johndoe и покажет все найденные файлы с именем example.js.

Команда locate также используется для поиска файлов, но она работает несколько иначе. Она принимает только один аргумент – имя файла или части имени – и ищет все совпадения по всей системе, используя предварительно построенную базу данных. Благодаря этому поиск с помощью locate считается наиболее быстрым. Однако для этого способа база данных должна быть актуальной. 

Чтобы найти файл example.js, можно использовать следующую команду:

locate example.js

Команда locate выведет список всех файлов и каталогов, содержащих example.js в своём имени. Например:

/home/johndoe/example.js
/home/johndoe/.nvm/versions/node/v22.2.0/lib/node_modules/jsnn/example.js
/home/johndoe/.nvm/versions/node/v22.2.0/deps/npm/node_modules/jsnn/example.js
jsnn/example.js/test/fixtures/snapshot/ts-example.js
/usr/local/lib/node_modules/npm/node_modules/jsbn/example.js

Просмотр содержимого каталогов

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

В Linux для этого используется команда ls (сокращение от list – «список»).

Чтобы вывести список файлов и директорий в текущем каталоге, достаточно просто ввести команду ls:

ls

В ответ мы увидим список файлов и директорий, например:

example.js    node-v22.2.0-linux-arm64.tar.xz    nodev22.2.0.tar.gz

 

Чтобы посмотреть содержимое конкретного каталога, нужно передать путь до него в команду ls. Например, чтобы просмотреть содержимое каталога Documents в домашней директории пользователя johndoe, используйте:

ls /home/johndoe/Documents

Для вывода списка всех файлов в подкаталогах используйте флаг –R (рекурсивный режим). Он позволяет увидеть содержимое всех вложенных каталогов:

ls -R /home/johndoe/

Команда ls также может выводить подробную информацию о содержимом каталога, такую как права доступа, размер, владелец и дату последнего изменения. Для этого используется флаг -l:

ls -l /home/johndoe/

Пример вывода:

total 168956
-rw-rw-r-- 1 johndoe johndoe 23 мая 29 06:55 example.js
drwxr-xr-x 12 1001 1001 4096 мая 15 12:35 node-v22.2.0
-rw-rw-r-- 1 johndoe johndoe 26785696 мая 15 12:33 node-v22.2.0-linux-arm64.tar.xz
-rw-rw-r-- 1 johndoe johndoe 26785696 мая 15 12:33 node-v22.2.0-linux-arm64.tar.xz.1
-rw-rw-r-- 1 johndoe johndoe 26785696 мая 15 12:33 node-v22.2.0-linux-arm64.tar. xz.2
-rw-rw-r-- 1 johndoe johndoe 92638059 мая 15 12:36 node-v22.2.0.tar.gz

Чтобы увидеть скрытые файлы и директории (обычно их имена начинаются с точки), используйте флаг -a. Например, для просмотра всех файлов в домашней директории пользователя johndoe, включая скрытые, используйте:

ls -a /home/johndoe/

Пример вывода:

.bashrc   node-v22.2.0-linux-arm64.tar.xz   .npm   sudo_as_admin_successful
cache   node-v22.2.0-linux-arm64.tar.xz.1   .nvm .viminfo
.bash_history   example.js   node-v22.2.0-linux-arm64.tar.xz.2   .profile  .wget-hsts
.bash_logout   node-v22.2.0   node-v22.2.0.tar.gz  .ssh

Кроме того, флаги можно комбинировать друг с другом. Например, чтобы вывести подробную информацию обо всех файлах, включая скрытые, используйте комбинацию флагов -l и -a:

ls -la /home/johndoe/

Просмотр содержимого файлов

Чтобы просмотреть содержимое файла, чаще всего используют команду cat (сокращение от concatenate – «объединять»). Эта команда выводит содержимое файла на экран:

cat helloworld.txt

Пример вывода:

Hello, world!
This is a sample file.

Вы также можете просто указать путь до файла:

cat /home/johndoe/Documents/helloworld.txt

Операции с файлами и каталогами 

У каждой команды в Linux есть множество параметров. Чтобы узнать о них подробнее, введите команду с параметром --help, например:

grep --help

Ниже приведён список основных команд для навигации в консоли Linux.

Как создать каталог в linux

Чтобы создать новый каталог, достаточно указать его имя после команды mkdir:

mkdir название_каталога

Пример:

mkdir /home/johndoe/new_directory

Эта команда создаст каталог с именем new_directory в директории /home/johndoe.

Как создать файл в Linux

Для создания файлов в Linux часто используется команда touch. Она создаёт новый пустой файл или обновляет время последнего изменения существующего файла. 

Чтобы создать новый файл, достаточно указать его имя после команды touch:

touch example.txt

Пример:

touch /home/johndoe/newfile.txt

Эта команда создаст пустой файл с именем newfile.txt в директории /home/johndoe.

Как удалить каталог в Linux через терминал

Чтобы удалить директорию вместе с её содержимым, в Linux используют команду rm с флагом -r (рекурсивный режим). Этот способ позволяет удалить каталог и все файлы и подкаталоги внутри него.

Пропишите команду:

rm -r путь_к_каталогу

Пример:

rm -r /home/johndoe/old_directory

Так вы удалите каталог old_directory, а также все файлы и подкаталоги, которые находятся внутри него.

Теперь вы знаете, как удалить директорию в Linux. 

Как удалить файл в Linux

Для удаления файла в Linux используется команда rm (remove). Этот способ позволяет удалить указанный файл. 

Используйте команду rm, указав имя файла:

rm example.txt

Пример:

rm /home/johndoe/oldfile.txt

Эта команда удалит файл с именем oldfile.txt, который хранится в директории /home/johndoe.

Как переместить файл в Linux

Для перемещения файла в Linux используется команда mv (сокращение от move – «двигать, перемещать»). Эта команда позволяет перемещать файл из одного места в другое.

Чтобы переместить файл, используйте команду mv, указав текущий путь к файлу и новый путь:

mv путь_к_файлу новый_путь/

Пример:

mv /home/johndoe/oldfile.txt /home/johndoe/new_directory/

Так вы переместите файл oldfile.txt из директории /home/johndoe в директорию /home/johndoe/new_directory/.

Как переименовать файл в Linux 

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

Чтобы переименовать файл, используйте команду mv, указав текущее имя файла и новое имя:

mv old_example.txt new_example.txt

Пример:

mv /home/johndoe/oldfile.txt /home/johndoe/newfile.txt

Эта команда изменит имя файла с oldfile.txt на newfile.txt в директории /home/johndoe.

Как скопировать файл в Linux через терминал

Для копирования файла в Linux используется команда cp (сокращение от copy – «копировать»). Этот способ позволяет создать копию файла в указанном месте.

Чтобы скопировать файл, используйте команду cp, указав исходный файл и целевой путь:

cp путь_к_файлу новый_путь/

Пример:

cp /home/johndoe/example.txt /home/johndoe/backup/example.txt

Так вы скопируете файл example.txt из директории /home/johndoe в директорию /home/johndoe/backup.
 

Редактирование файлов

Для редактирования файлов в Linux можно воспользоваться встроенным консольным редактором nano. Это удобный и простой в использовании текстовый редактор, который позволяет выполнять различные операции с текстом.

Чтобы открыть файл с именем example.js, введите в терминале следующую команду:

nano example.js

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

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

  • Ctrl+A для перехода в начало строки.
  • Ctrl+E для перехода в конец строки.
  • Ctrl+Y для прокрутки на одну страницу вверх.
  • Ctrl+V для прокрутки на одну страницу вниз.

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

Как вырезать строку: переместите курсор на нужную строку и нажмите Ctrl+K. Это вырежет строку и поместит её в буфер обмена.

Как копировать строку: чтобы вставить строку из буфера, нажмите Ctrl+U.

Как копировать произвольный текст

  1. Поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6 (Ctrl+^).
  2. Перемещайте курсор, выделяя текст.
  3. Нажмите Alt+6, чтобы скопировать выделенный текст в буфер обмена.
  4. Чтобы вырезать выделенный текст, нажмите Ctrl+K.

Поиск и замена

  1. Для поиска текста в файле используйте комбинацию клавиш Ctrl+W.
  2. Затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. 
  3. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.
  4. Для замены текста используйте комбинацию клавиш Ctrl+\\ (Ctrl+Shift+\)
  5. Введите текст для поиска, нажмите Enter
  6. Затем введите текст для замены и снова нажмите Enter
  7. Подтвердите замену для каждого совпадения или замените все сразу.

Сохранение и выход из редактора

Чтобы сохранить текущие изменения в файле, нажмите комбинацию клавиш Ctrl+O. Если вы редактируете новый файл, система предложит вам дать ему имя. Это сохранит текущие изменения, при этом nano останется открытым, и вы сможете продолжить работу.

Чтобы выйти из редактора, нажмите комбинацию клавиш Ctrl+X. Если у вас есть несохранённые изменения, редактор предложит сохранить их перед выходом.

Заключение

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

Понимание и уверенное использование этих команд позволит вам эффективно и продуктивно работать в среде Linux, обеспечивая надёжное управление вашими данными и ресурсами системы.