Управляем файлами и директориями в Linux

Данная статья будет полезна для начинающих пользователей и позволит работать с серверами быстрее и удобнее, даже если вы раньше не пользовались Linux.

Вы научитесь:
  • создавать файлы и папки
  • перемещать и копировать файлы и папки
  • узнаете о ссылках
  • сможете легко переносить файлы на сервер, с него и между серверами.
и многое другое…

Также рекомендуем к прочтению статью «Как правильно подключиться к серверу по SSH. Руководство».


Примеры продемонстрированы на VPS от Infobox и на облачных VPS.

Для работы с сервером подключитесь к нему по SSH.

Как узнать абсолютный путь к директории?

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


Как перейти в нужную директорию?

Для того, чтобы перейти в нужную директорию, используется команда:
cd <директория>
, где вместо <директория> нужно подставить путь к ней.
Путь может быть абсолютным или относительным.

Абсолютный путь
Абсолютный путь всегда начинается от корня файловой системы /.
Например, для того, чтобы перейти по абсолютному пути с помощью команды cd в папку /var/logs используйте команду:
cd /var/logs/

Относительный путь
Относительный путь не содержит "/" в начале. Это означает, что вы указываете путь относительно директории, в которой сейчас находитесь.
Для задания относительных путей нам понадобятся служебные символы:
  • . — означает текущую директорию
  • .. — означает директорию выше этой по иерархии.
  • ~ — означает домашнюю директорию пользователя.
Например, мы находимся в директории /root/. Давайте перейдем в директорию /:
cd ..

Мы сказали «перейди в директорию, лежащую выше этой по иерархии».

Давайте теперь перейдем в директорию root:
cd root

Это означает «перейди в директорию root, которая находится в директории, в которой мы сейчас находимся».
То же самое можно сделать, используя обозначение текущей директории:
cd ./root

Из любого места мы можем перейти в домашнюю директорию, используя команду:
cd ~


Как просмотреть содержимое директории?

Для просмотра списка файлов и папок в директории воспользуйтесь командой:
ls


При этом не будут выведены скрытые файлы и директории (название скрытых файлов и директорий начинается с точки .).
Вы можете использовать дополнительные параметры команды ls.
Наиболее часто используемые:
  • ls -l – показать дополнительно список прав, размеры файлов, дату изменения и владельца;
  • ls -a – показать все, включая скрытые файлы;
  • ls -la – показать все, включая скрытые файлы, список прав, размеры файлов, дату изменения и владельцев;



Можно просмотреть дерево директорий с помощью команды:
tree

Этого приложения может не быть в вашем дистрибутиве.
Если вы видите сообщение:
The program 'tree' is currently not installed.
, установите программу tree.

В Debian и Ubuntu это можно сделать с помощью команды:
apt-key update && apt-get update && apt-get -y install tree

В CentOS и Oracle Linux:
yum install -y tree


Результат работы tree выглядит так:



Сколько свободного и занятого места?

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


Как мы видим, объем диска 20 гигабайт, занято 2.9 гигабайта, свободно 16 гигабайт.

Для того, чтобы узнать размер директории или файла, воспользуйтесь командой:
du -sh <путь к директории>




Как найти файл или директорию

В этом вам поможет утилита find.

В самом простом случае использoвать ее можно так:
find / -name file

Будет осуществлен поиск файла или директории с именем file начиная от корневой директории /.


Опция -name чувствительна к регистру (различает заглавные и строчные буквы). Если вы не знаете, заглавные или строчные буквы используются в названии искомого файла, воспользуйтесь опцией -iname. С помощью опции -regex или -iregex можно найти что-то соответствующее регулярному выражению.

Команда find с параметром -exec позволяет выполнить команду для всего найденного.

Например:
find / -name '*.docx' -exec cp '{}' /tmp/ ';'

Найдя любой файл с расширением .docx он будет скопирован в директорию /tmp.

Для того, чтобы найти, где располагается бинарный файл программы, исходные тексты и документация воспользуйтесь командой whereis:
whereis ssh


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



Как создать директорию?

Для создания директории используйте команду mkdir.

Например, создадим в текущей директории директорию «foo»:
mkdir foo

Для создания директорий и поддиректорий используйте команду mkdir -p:
mkdir -p foo1/foo2/foo3


Как удалить файл или директорию?

Для удаления воспользуйтесь командой rm:
rm file1.txt
Чтобы удалить и вложенные файлы и папки, добавьте параметр -r:
rm -r folder

Если вы не хотите, чтобы вам был задан вопрос, спрашивающий разрешение на удаление, используйте параметр -f:
rm -r folder -f



Если вы хотите удалить только пустую директорию, вам поможет команда rmdir:
rmdir folder

Если директория не пустая, вы получите уведомление и удаление не будет выполнено.

Как переместить или переименовать файл или директорию?

Для перемещения файла или директории используйте команду mv:
mv откуда куда


Переименование можно представить, как перемещение в ту же директорию с другим именем.
Давайте переименуем директорию suda в tuda:
mv suda tuda


Заметьте, что вы можете переместить и переименовать файл или директорию в одну команду при необходимости. Для этого в правой части напишите уже новое имя:
mv tuda /var/www/site


В данном примере мы переместили директорию tuda в директорию /var/www и переименовали в site.

Как скопировать файл или директорию

Скопировать файл можно с помощью команды cp:
cp file ~/file


Можно скопировать сразу несколько файлов в директорию, указанную в последнем параметре:
cp file file2 dir1/



Для копирования директорий используйте параметр -r:
cp -r dir1/ dir2/


Так же вам может пригодиться параметр -u для копирования больших файлов и директорий. С его помощью будет выполняться копирование только если копируемый файл новее, чем существующий.
cp -r -u dir1 dir2



Создаем ссылки

Есть два типа ссылок: жесткие ссылки и символические ссылки.

Жесткие ссылки
Жесткие ссылки — это указатели на файлы. Всегда существует минимум одна жесткая ссылка на файл. Сам файл находится где-то на жестком диске и у него есть уникальный номер. Имя файла хранится отдельно в файловом индексе (inode). Также в файловом индексе содержится тот же уникальный номер. Файловый индекс — жесткая ссылка на файл. При создании еще одной жесткой ссылки появляется еще одна запись в файловом индексе со ссылкой на файл и тем же номером. Сам файл удалится только если будут удалены все жесткие ссылки на него.
Жесткая ссылка создается командой:
ln имя_файла имя_ссылки

Можно убедиться, что уникальные номера файлов с жесткими ссылками одинаковы командой:
ls -i



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

Создать символическую ссылку можно командой:
ln -s исходный_файл символическая_ссылка



Как создать пустой файл

Для этого используйте команду:
touch имя_файла



Как отредактировать текстовый файл

Редактировать текстовые файлы нужно часто при настройке серверов и не только. В данном разделе мы дадим только вводную информацию. В дальнейшем вы можете изучать редакторы более глубоко.

nano
nano – это простой редактор с графическим интерфейсом.
Для установки на CentOS или Oracle Linux выполните команду:
yum install -y nano

Для установки на Ubuntu и Debian используйте команду:
apt-key update && apt-get update && apt-get -y install nano

Для редактирования файла введите:
nano имя_файла


Редактировать можно сразу же после открытия редактора. Для сохранения изменений и выхода нажмите ctrl + X (^ в подсказках редактора обозначается, как нажатие на кнопку ctrl).


Будет предложено записать изменения на диск, нажмите Y.


На этом шаге можно изменить имя сохраняемого файла. Если это не требуется, просто нажмите Enter.


Мы видим, что изменения успешно записались в файл.

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

Как скопировать файл или директорию по SSH на сервер и обратно

Соединение по SFTP с помощью Filezilla
Вы можете воспользоваться Filezilla и настроить соединение по STFP.
Установите клиент, нажмите кнопку создания нового подключения, как показано на скриншоте ниже:


Создайте новый сайт, укажите ip–адрес сервера, тип подключения SFTP, логин и пароль доступа к серверу и нажмите «Connect» (Соединиться).


Разрешите подключение к серверу в следующем окне.


Теперь соединение успешно установлено, вы можете перемещать данные на сервер и с сервера.



Копирование данных с помощью scp
Этот способ особенно полезен, если вы хотите переносить данные между серверами.

На вашем компьютере запустите терминал или Cygwin в Windows (руководство по установке Cygwin есть в этой статье).

Для копирования файла используйте команду:
scp откуда куда

Для копирования папки используйте команду:
scp -r откуда куда


Встает вопрос, как же указать местоположение на удаленном сервере. Это делается в формате:
имя_пользователя@ip_адрес_сервера:путь

Например, давайте скопируем папку
temp
на удаленный сервер в папку пользователя (~):
scp -r temp root@77.221.144.179:~/


Или давайте скопируем ее в папку /var/www:
scp -r temp root@77.221.144.179:/var/www/

Теперь давайте вернем папку temp из /var/www на наш компьютер:
scp -r root@77.221.144.179:/var/www/temp ~/temp

, где ~ – папка пользователя на нашем компьютере.

Данный способ удобно использовать и для переноса данных между серверами.

Примечание для тех, кто копирует сайт в директорию веб-сервера
Убедитесь с помощью команды ls -la, что папка с сайтом (например /var/www/html) и сами файлы сайта доступны от пользователя, под которым работает веб-сервер. Для apache чаще всего пользователь: www-data. Если у вас файлы в папке сайта принадлежат пользователю root – сайт скорее всего не будет открываться.


Для изменения прав воспользуйтесь командой:
chown -R www-data:www-data /var/www/html



Файловый менеджер для Linux

Спасибо, что дочитали статью до конца. Напоследок расскажем о графическом файловом менеджере для Linux Midnight Commander или просто mc.

Установка mc в CentOS или Oracle Linux:
yum -y install mc

Установка mc в Ubuntu или Debian:
apt-key update && apt-get update && apt-get install -y mc


Запустить файловый менеджер можно просто командой
mc



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

Для выхода из mc нажмите F10 и Enter.

Если вы нашли ошибку в статье, считаете, что нужно добавить что-то важное или просто у вас есть вопрос — напишите нам.

Успешного использования Linux на VPS от Infobox и на облачных VPS.

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.