Структура файловой системы Linux
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
Структура каталогов
В ОС Windows жесткие диски называются латинскими буквами (С:, D:, . ), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.
Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие файла
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Стандарт иерархии файловой системы
- / — root каталог. Содержит в себе всю иерархию системы;
- /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
- /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
- /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
- /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
- /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
- /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
- /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
- /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
- /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
- /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
- /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
- /root — директория, которая содержит файлы и личные настройки суперпользователя;
- /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
- /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
- /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
- /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
- /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
- /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
- /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Источник
Место для хранения пользовательских данных в Linux
Где хранить пользовательские данные, такие как документы, фотографии, музыка, видео, электронные книги и т. Д. В Linux? Основная идея заключается в том, чтобы иметь возможность переустанавливать и переформатировать системные диски в Linux без страха потери личных данных (MP3, JPG, PDF и т. Д., А не файлов пользовательских настроек).
Я планирую исследовать Linux, поэтому я полагаю, что он может часто разрушаться, поэтому мне нужно иметь возможность полностью переустановить систему без проблем с личными файлами.
Есть похожая тема: « Суперпользователи и домашний каталог », но эта тема настолько многословна и не дает конкретного ответа. Основными вопросами являются:
Должен ли я использовать /home или стоит определить мой собственный раздел, например /data ?
И если я определю свой собственный раздел, как сделать так, чтобы каждый раз, когда я переустанавливал ОС, мой собственный раздел был доступен (автоматически монтировался и был готов к использованию без углубления в конфиги)?
Данные должны храниться в другом разделе файловой системы вашей ОС. В Linux личные данные хранятся в /home/username папке. Когда вы запустите установщик и он попросит вас создать раздел жесткого диска, я предлагаю вам создать расширенный раздел для домашней папки.
Если вам нужно отформатировать компьютер, вам нужно сделать это только с основным разделом.
Я прилагаю вам скриншот утилиты Gparted; это показывает мой диск. Когда вы переустанавливаете ОС и у вас уже есть домашняя папка, вам необходимо будет создать новый домашний каталог для нового пользователя и связать или переместить (осторожно) все файлы старой папки в новую папку.
ОБНОВЛЕНИЕ
Исходя из моего опыта, лучше иметь эксклюзивный раздел для вашего /home (Linux) или D:\ (Windows). Как в Windows, так и в Linux, в вашей папке данных будут создаваться некоторые файлы (в основном скрытые файлы), которые могут вызвать некоторые проблемы, если вы не будете осторожны при перемещении старых файлов в новую папку (при переустановке ОС). ,
Я пять раз переустанавливал свой Linux, не трогая свои личные данные, и без проблем делюсь ими с Win7 🙂
Храните пользовательские данные в отдельном разделе от операционной системы. Если вы будете осторожны, чтобы не перезаписать этот раздел при переустановке операционной системы, эти данные будут в безопасности. Например, если на вашем компьютере есть два жестких диска, SSD и HDD, поместите операционную систему на SSD, а пользовательские данные — на HDD.
Мое мнение таково, что лучше не иметь отдельный /home раздел по двум причинам:
При переустановке операционной системы некоторые файлы в /home каталоге перезаписываются, но ваши пользовательские данные не будут затронуты, если они находятся в отдельном разделе.
Часто используемые файлы, такие как параметры конфигурации и образы виртуальных машин, могут храниться в /home каталоге, где к ним можно получить более быстрый доступ, если /home каталог находится на SSD.
Раздел данных можно сделать доступным, если он автоматически монтируется при запуске операционной системы. Это делается в Linux путем редактирования /etc/fstab файла и добавления в него новой строки, содержащей информацию о том, как раздел, который вы хотите автоматически монтировать при запуске, должен быть смонтирован в файловую систему.
Вы можете использовать пользовательские папки для папок в /home/ . Пример:
будет переключаться с /home/$USER/Downloads/ на /media/user/Downloads/ и загруженные документы будут затем загружаться на жесткий диск, а не на SSD. То же самое относится ко всем остальным каталогам. Смотрите
./config/user-dirs.dirs о ручном редактировании этих настроек. источник
Делая обоснованное предположение здесь, вы ищете простое решение вашей проблемы
Не придавайте особого значения созданию другого раздела, но это зависит от вашей ситуации
Когда вы устанавливаете выбранный вами дистрибутив, убедитесь, что ваш диск / раздел обнулен, как в полном формате, это также может быть достигнуто с помощью «dd if = / dev / zero of = / dev / sda1», где sda1 Если вы предпочитаете использовать диск или раздел, вы можете получить аналогичные результаты с помощью команды типа «dd if = / dev / zero of = / home / user / zeros», это гарантирует, что неиспользуемое пространство не содержит никаких данных
Установите дистрибутив, настройте его так, как вы хотите
Используя установочный носитель, вы захотите создать образ диска, предыдущая команда поможет вам уменьшить использование пространства резервной копией, это можно сделать так: «dd if = / dev / sda1 | bzip2 | dd of = / path / в / backup », когда резервная копия находится на отдельном диске / разделе. Если вам необходимо восстановить указанную резервную копию, просто отмените приведенную выше команду и замените bzip2 на bunzip2
Эти инструкции не будут работать «из коробки», но их не должно быть слишком сложно понять, если вы не торопитесь, чтобы прочитать их
Вы можете рассмотреть возможность чтения и завершения linuxfromscratch, это поможет вам
Источник
Общие папки Linux
Если вы администрируете какой-либо сервер, у вас может возникнуть необходимость создать общую папку, к которой будут иметь доступ все пользователи на сервере. Например, необходимо, чтобы они имели возможность создавать в ней файлы и все эти файлы были доступны всем пользователям на сервере.
В этой небольшой статье мы рассмотрим как настраиваются общие папки Linux с помощью стандартной системы полномочий Linux.
Общие папки в Linux
Как вы знаете, в Linux есть своя система полномочий для файлов и папок, в которой можно разрешить чтение, запись и выполнение для пользователя владельца, определённой группы пользователей и всех остальных. Если вы забыли как это работает ознакомьтесь со статьей Права доступа к файлам и Группы пользователей Linux.
Сначала давайте создадим саму папку:
sudo mkdir /var/share
Если надо разрешить доступ к папке всем, то достаточно установить такие права:
sudo chmod ugo+rw -R /var/share
sudo chmod 766 -R /var/share
Эти две команды аналогичны. Они включают для владельца файла полный доступ к нему, а для группы и всех остальных — только чтение и запись. Опция -R позволяет применить изменения рекурсивно ко всем подпапкам и файлам в этом каталоге. Для того чтобы разрешить вообще всё используйте маску прав 777:
sudo chmod 777 -R /var/share
Теперь все пользователи смогут не только создавать и читать файлы в этой папке, но и выполнять их.
Если же надо чтобы папка была доступна только нескольким пользователям, надо объединить их в группу. Например, в группу project. Если такой группы не существует, создайте её:
sudo groupadd project
Для добавления пользователя в группу используется команда usermod. Например, для пользователей losst и losst1 команды будут выглядеть так:
usermod -aG project losst
usermod -aG project losst1
Затем группу папки надо изменить на project. Для этого можно воспользоваться командой chgrp:
sudo chgrp project -R /var/share
Осталось сделать права для этой папки. Кроме стандартных прав, которые разрешают чтение, запись и выполнение файлов для группы project нам необходимо установить SGID бит. Если этот флаг устанавливается для файла, то он позволяет выполнять этот файл с правами группы файла, но если он устанавливается для папки, то все файлы и папки, создаваемые в ней будут получать ту же группу что и у этой папки. Это как раз то, что нам надо:
sudo chmod ug+rwx -R /var/share
sudo chmod +s -R /var/share
sudo chmod 2774 /var/share
Маска прав 774 разрешает всё группе и владельцу, и разрешает только чтение всем остальным. Можно запретить им и чтение заменив 4 на 0, получится 770. После этого оба пользователя losst и losst1 смогут создавать файлы в этой папке, а также оба получат доступ к созданным файлам.
Как видите всё очень просто. А если вам надо создать общую папку, доступную по сети посмотрите на статью про настройку NFS или Samba.
Источник
Как хранить пользовательские файлы?
Я имею сравнительно небольшой опыт использования Linux.
На данный момент использую Ubuntu 13.10.
Вот к примеру при использовании windows система ставится отдельно а пользовательские файлы отдельно. Снес систему а файлы остались отдельно от системы.
В линукс как я понял система другая. Все с чем работает линукс располагается на том дисковом пространстве которое ему выделяется при установке. И при удалении системы исчезнут и все пользовательские файлы – к примеру, фотки, музыка, фильмы и прочее.
Единственный способ сохранить свои файлы в линукс это записать их на флешку.
А вопрос у меня следующий: есть еще какой-нибудь способ сохранения пользовательских файлов в линукс? Ну может отдельную папку создать какую чтобы файлы не удалялись вместе с системой или еще как-нибудь?
Как хранить пользовательские данные на сервере?
Пример: пользователь пишет пост, возможно прикрепляет картинку, загружает на сервер. В каком виде.
где хранить текст файлы? или как хранить данные?
Есть прога простенкая: берет инфу из текстфайла, редактирует и записывает обратно в тхт файл. Нужно.
Как правильно хранить видео файлы?
Подскажите схему хранения видео файлов в базе. Видео пишутся сначала в файл на диск, потом.
Как и в каком виде хранить файлы в приложении
Добрый вечер! Помогите, пожалуйста, со след. заданием.:( Требуется в имеющуюся формочку добавлять.
Нет. Система — это такие же файлы, они даже от оболочки отделены.
Добавлено через 26 секунд
Только не сохранить, а потерять.
Добавлено через 1 минуту
Да и не единственный, есть ещё: флоп, CD, blue ray, DVD.
Добавлено через 45 секунд
Лучший же способ потерять данные — это копирожание на флоп.
taras atavin, бред, зачем тогда люди ставят отдельным разделом /home ?
Наверное, что бы после переустановки, указать имя пользователя и не потерять свои данные и отформатировать только раздел /?
taras atavin, почитайте еще раз вопрос ТС, мне кажется Вы не слишком его поняли раз пишите такие бредни.
Добавлено через 4 минуты
coder8763, /home на отдельный раздел. ВО время переустановки / форматировать, /home — нет, только примонтировать. На этапе выбора имени пользователя можно поступить по-разному: 1 — просто создать такое же имя пользователя и тогда у Вас все настройки сохранятся вплоть до настроек рабочего стола и окружения. Так же останутся настройки тех приложений, которыми Вы пользовались, а в новой системе они еще не установлены. Как только Вы их установите, все настройки подхватятся.
2 способ — Создайте другого пользователя. При загрузке у Вас будет чистая система, без соплей от старой. Потом со старого пользователя перетягивайте папки с теми настройками, которые Вам нужны. Как бы начало с чистого листа, но с оговорками (с) srka
taras atavin, почитайте еще раз вопрос ТС, мне кажется Вы не слишком его поняли раз пишите такие бредни.
Добавлено через 4 минуты
coder8763, /home на отдельный раздел. ВО время переустановки / форматировать, /home — нет, только примонтировать. На этапе выбора имени пользователя можно поступить по-разному: 1 — просто создать такое же имя пользователя и тогда у Вас все настройки сохранятся вплоть до настроек рабочего стола и окружения. Так же останутся настройки тех приложений, которыми Вы пользовались, а в новой системе они еще не установлены. Как только Вы их установите, все настройки подхватятся.
2 способ — Создайте другого пользователя. При загрузке у Вас будет чистая система, без соплей от старой. Потом со старого пользователя перетягивайте папки с теми настройками, которые Вам нужны. Как бы начало с чистого листа, но с оговорками (с) srka
понял вас. ответ исчерпывающий. спасибо.
интересует еще такой вопрос: если вдруг линукс система случайно повредилась пользовательские файлы сохраняться?
у меня еще очень мало опыта использования линукс. буду разбираться )
Источник