Основы Linux. Работа с файлами и каталогами
Многие пользователи Windows, по разным причинам, задумываются о переходе на Linux. Почему это так, рассуждать не будем, потому что философствовать на эту тему можно до бесконечности. Точно также как и не будем обсуждать что лучше — Windows или Linux, эта тема тоже философская. Одно можно сказать с полной уверенностью, многих людей останавливает стереотип, что Linux это очень сложно и надо быть крутым хацкером. На самом деле это полный бред, ничего сверхъестественного в этой операционной системе нет, и через какое-то время использования ты будешь себя чувствовать не менее комфортно чем в Windows.
И для тех кто всё-таки принял волевое решение, небольшой гайд по основам работы с файлами и каталогами.
Файловая система Linux
Начнём с файловой системы. Здесь нет привычных, пользователям Windows, дисков C, D и так далее. Файловая система Linux имеет древовидную структуру и в основе её лежит корневой каталог, который обозначается символом «/», а за ним находятся остальные папки.
Конечно же в Linux есть набор стандартных каталогов которые унифицированы согласно стандарту FHS (Filesystem Hierarchy Standard), и среднестатистическому пользователю Windows разобраться где здесь чего, может быть сложновато, поэтому для большего понимания, давай ознакомимся с основными:
Основные каталоги Linux
- /bin — основные двоичные модули (стандартные утилиты);
- /boot — содержит конфигурационные файлы загрузчика GRUB, образы ядра и другие вспомогательные файлы загрузчика;
- /dev — содержит файлы устройств, тут не лишним будет заметить, что в Linux все подключенные устройства представлены в виде файлов и обращение к ним происходит именно через файлы в этом каталоге;
- /etc — содержит конфигурационные файлы операционной системы и всех сетевых служб, здесь находятся именно общесистемные конфигурационные файлы, а пользовательские конфигурационные файлы находятся в домашнем каталоге каждого пользователя;
- /home — здесь находятся домашние каталоги всех пользователей, которые зарегистрированы в системе, а именно хранятся пользовательские данные и конфигурационные файлы конкретного пользователя. Обычный пользователь имеет права записи только в своем домашнем каталоге, а что бы изменять другие файлы в системе нужно иметь права доступа root;
- /lib – здесь находятся различные библиотеки и модули ядра, именно сюда устанавливаются различные зависимости необходимые для корректной работы приложений;
- /lost+found — в этот каталог система будет помещать поврежденные файла, в последствии их можно попробовать восстановить;
- /media — подключаемые носители, когда вставишь в компьютер флешку в этом каталоге создастся подкаталог с именем тома твоего устройства и используя его можно получить доступ к содержимому устройства;
- /mnt — в этот каталог можно мониторовать внешние или дополнительные файловые системы
- /opt — каталог содержащий вспомогательные пакеты, туда могут устанавливаться дополнительные пакеты программного обеспечения;
- /proc — содержит файлы с информацией о системе и процессах;
- /root – домашний каталог пользователя root;
- /run — в этом каталоге приложения могут хранить вспомогательные файлы, в том числе идентификаторы процессов;
- /sbin — содержит двоичные файлы, необходимые для администрирования системы;
- /srv – хранятся данные сервисных служб;
- /sys — информация о системе;
- /tmp – временные файлы;
- /usr — находятся приложения и файлы, используемые пользователями;
- /var — содержит наиболее часто изменяющиеся файлы, например, кэши программ, файлы системных журналов, временные файлы и т.д.
Основные команды Linux
Теперь перейдём непосредственно к работе с каталогами и файлами. И конечно, же работать с ними мы будем из терминала, потому в Linux без терминала никак, прими это за аксиому. В терминале работать быстро, надёжно и удобно (когда разберёшься). Поэтому давай разберём наиболее часто используемые команды.
И начнем мы с обновления системы. Есть несколько способов, в том числе это можно делать из пункта меню «Центра приложений», но проще это сделать командами:
sudo apt update | синхронизирует информацию из репозитория с локальным кэшем, эту команду необходимо выполнять перед установкой любых пакетов |
sudo apt full-upgrade | обновит все пакеты, для которых вышли новые версии, в том числе установит необходимые зависимости и удалит мешающие пакеты, а также обновится ядро системы, если вышла новая версия |
В предыдущем примере, для обновления системы, мы использовали менеджер пакетов — apt, как понятно из названия, он используется для установки, обновления и удаления программных пакетов в системе:
apt-get install program | установить/обновить program |
apt-get remove program | удалить program, сохранив файлы конфигурации |
apt-get purge program | удалить program и файлы конфигурации |
apt-get check | проверить зависимости |
apt-get autoclean | удалить старые архивные файлы пакетов |
Работа с файлами и каталогами Linux
Одна из команд которую ты будешь применять очень часто это cd. Это команда изменения каталога, она позволяет перемещаться между каталогами:
cd /home/user | перейти в указанный каталог |
cd / | перейти корневой каталог |
cd | перейти в домашний каталог текущего пользователя |
cd ../.. | перейти в каталог на два уровня выше |
cd — | перейти в каталог в котором находился до перехода в текущий |
Следующая очень полезная команда: ls. Просмотр содержимого каталога:
ls | покажет файлы и каталоги в текущей папке |
ls -l | покажет содержимое с подробной информацией (дата создания, размер, права доступа и т.д.) |
ls -a | покажет содержимое включая скрытые файлы (начинаются с символа «.») |
Иногда возникает необходимость увидеть полный путь к каталогу в котором ты работаешь, для этого используется команда: pwd
Что бы создать новый каталог, нужно воспользоваться командой mkdir и указать название нового каталога. Не забывай, что ты можешь создавать новые каталоги только внутри папки, в которой у тебя есть права на запись (о правах доступа будет чуть ниже):
mkdir newfolder | создаст каталог с именем newfolder |
mkdir new new1 | создаст два каталога с именами new и new1 |
mkdir -p new/new1/new2 | создаст указанное дерево директорий |
Рассмотрим команды копирования:
cp file1 file2 | скопировать файл file1 в файл file2 (если файлы не в текущем каталоге необходимо указывать полный путь к файлам |
cp file1 /home/user1/ | скопировать файл file1 в каталог user1 |
cp -r folder1 folder2 | скопировать каталог folder1 в каталог folder2 (если каталога folder2 не существует он будет создан) (folder1/2 это полный путь к каталогу) |
Команды удаления:
rm file1 | удалить file1 |
rm -r folder1 | удалить каталог folder1 |
Команды переименования/перемещения:
mv file1 newname | переименовать файл (каталог) file1 в newname |
mv file1 folder1 | переместить файл file1 в каталог folder2 |
mv folder1 folder2 | переместить каталог folder1 в каталог folder2 |
Просмотр содержимого файлов:
cat file1 | показать содержимое файла file1 в терминале |
tac file1 | показать содержимое файла file1 в терминале начиная с конца |
less file1 | показать содержимое файла file1 в терминале, постранично, с возможно листать страницы |
Права доступа к файлам и каталогам
Чтобы изменить права доступа необходимо воспользоваться командой chmod, она имеет такой синтаксис:
chmod кому-какие-права-предоставить имя_файла |
Права доступа к файлам:
r — право на чтение данных;
w — право на изменение содержимого (но не удаление);
x — право на исполнение файла;
Права доступа к каталогам:
r — право на чтение каталога (можно прочитать содержимое, т.е. получить список объектов, находящихся в каталоге)
w — право на изменение содержимого каталога (можно создавать и удалять объекты)
x — позволяет войти в каталог
Существует три типа пользователей, каждому права задаются отдельно:
u — пользователь, который владеет этим файлом;
g — пользователи из группы, владеющей данным файлом;
o — все остальные пользователей
Числовое обозначение прав
Для того чтобы упростить процесс изменения прав, проще использовать такие, наиболее распространённые комбинации:
400 (-r——–) | Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия |
644 (-rw-r–r–) | Все пользователи имеют право чтения; владелец может редактировать |
660 (-rw-rw—-) | Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий |
664 (-rw-rw-r–) | Все пользователи имеют право чтения; владелец и группа могут редактировать |
666 (-rw-rw-rw-) | Все пользователи могут читать и редактировать |
700 (-rwx——) | Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия |
744 (-rwxr–r–) | Все пользователи могут читать, владелец имеет право редактировать и запускать на выполнение |
755 (-rwxr-xr-x) | Все пользователи имеет право читать и запускать на выполнение; владелец может редактировать |
777 (-rwxrwxrwx) | Все пользователи могут читать, редактировать и запускать на выполнение |
1555 (-r-xr-xr-t) | Все пользователи имеют право читать и запускать на выполнение; удалить файл может только владелец этого файла |
2555 (-r-xr-sr-x) | Все пользователи имеют право читать и запускать на выполнение с правами группы(user group) владельца файла |
4555 (-r-sr-xr-x) | Все пользователи имеют право читать и запускать на выполнение с правами владельца файла |
Пример:
chmod 777 file1 | все пользователи могут читать, редактировать и запускать файл file1 |
Для первого раза, пожалуй, хватит. Перечисленных мною команд, как мне кажется, будет достаточно среднестатистическому пользователю для работы с файлами и каталогами в Linux. А в следующих уроках разберемся как работать с дисками, сетью, процессами и т.д., поэтому не забывай возвращаться к нам.
Твой Pulse.