Назначение каталога root

Назначение каталога root Техника
Содержание
  1. /dev – файлы устройств
  2. Файловая система и пути хранения данных на физическом диске
  3. /usr – пользовательские двоичные файлы и данные, используемые только для чтения
  4. /var – файлы для хранения изменяющихся данных
  5. Если вам понравилась статья, поделитесь ею с друзьями:
  6. /boot – файлы статической загрузки
  7. /run – файлы состояния приложений
  8. Директории ОС Linux
  9. Основные каталоги, входящие в root directory
  10. Директория для изменяемых данных /var
  11. Корневая директория /
  12. /lost+found – восстановленные файлы
  13. Директории для хранения файлов конфигурации
  14. Монтирование дисков в Linux
  15. /opt – вспомогательные пакеты
  16. Типы файлов Linux
  17. /root – домашний каталог пользователя root
  18. Навигация
  19. Поиск своего местоположения
  20. Перемещение по файловой системе
  21. Просмотр содержимого каталогов
  22. Просмотр содержимого файлов
  23. /mnt – точки временного монтирования
  24. /srv – данные сервисных служб
  25. Особенности организации файлов в Linux
  26. Понятие файла
  27. Каталоговая структура /
  28. /usr/local : Каталог для локального ПО
  29. /usr/share : Архитектурно-независимые данные
  30. Словари
  31. /usr/share/man : Страницы руководства man
  32. /usr/share/misc : Различные архитектурно-независимые данные
  33. Каталоговая структура /var
  34. /var/cache : Данные кэша приложений
  35. /var/crash : Дампы памяти при крахе системы
  36. /var/lock : Файлы блокирования
  37. /var/log : Каталоги и файлы протоколов
  38. /var/mail : Почтовые ящики пользователей
  39. /var/opt : Переменные данные для /opt
  40. /var/run : Переменные данные времени выполнения
  41. /var/spool : Очереди данных для приложений
  42. /var/tmp : Временные файлы, сохраняемые между перезапусками системы
  43. Дополнительные требования стандарта для ОС Linux
  44. Иерархия файловых систем
  45. Литература
  46. Если вам понравилась статья, поделитесь ею с друзьями:
  47. /media – подключаемые носители
  48. Стандарт иерархии файловой системы
  49. Редактирование файлов
  50. Копирование и вставка
  51. Поиск и замена
  52. Сохранение и выход из редактора
  53. /home – домашние каталоги
  54. Страница руководства man hier
  55. /tmp – временные файлы
  56. Директории для хранения бинарных файлов

/dev – файлы устройств

В Linux устройства предоставлены в виде файлов и в каталоге /dev находится ряд специальных файлов, с помощью которых представлены устройства. Это не те файлы, которые мы знаем, но здесь они выглядят в виде файлов — например, с помощью /dev/sda представлен первый диск SATA, имеющийся в системе. Если вам на нем нужен раздел, вам нужно запустить редактор разделов и сообщить ему, что нужно отредактировать /dev/sda.

В этом каталоге также находятся псевдо-устройства, которые являются виртуальными устройствами и для которых, на самом деле, нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа. Файл /dev/null является специальным устройством, которое не выдает никаких выходных данных и автоматически удаляет все входные данные — когда вы перенаправляете выходные данные команды на /dev/null, то вы их удаляете.

Назначение каталога root

Файловая система и пути хранения данных на физическом диске

Каталоги в Linux сопоставляют имена организованных структур данных с их адресами на физическом диске. Для хранения метаинформации задан размер каталога Linux

В отдельных директориях файлы применяют inode (индексный узел). Этот узел хранит адрес блока диска и файловые атрибуты.

Каждая директория и информация о файле Linux содержит inode, а в самом индексном узле задан список указателей, ссылающихся на дисковый блок.

Директория в файловой системе — это inode, хранящий сведения обо всех именах организованных структур данных внутри него.

Еще одна вещь об инодах. Иноды уникальны, но имена, которые переадресовываются на эти узлы, не оригинальны. Именно поэтому inode отслеживает hard links (жесткие ссылки).

/usr – пользовательские двоичные файлы и данные, используемые только для чтения

Каталог /usr/local является местом, где по умолчанию устанавливаются приложения, откомпилированные локально — это позволит им не смешиваться с остальной частью системы.

Назначение каталога root

/var – файлы для хранения изменяющихся данных

Каталог /var является аналогом каталога /usr, но в каталог /var можно делать запись, а каталог /usr в обычном режиме предназначен только для чтения. Журнальные файлы и все остальное, что должно было бы записываться в обычном режиме в каталог /usr, записывается в каталог /var. Например, журнальные файлы вы сможете найти в каталоге /var/log.

Для получения более подробной технической информации о иерархии файловой системы в Linux обратитесь к документации стандарта иерархии файловых систем Filesystem Hierarchy Standard, ver.2.3.

Примечание: На нашем сайте имеется перевод FHS версии 2.2, а также
перевод статьи, в которой
делается попытка объяснить причины, почему появился именно такой вариант структуры каталогов UNIX.

Если вам понравилась статья, поделитесь ею с друзьями:


/boot – файлы статической загрузки

В каталоге /boot находятся файлы, необходимые для загрузки системы — например, здесь хранятся файлы загрузчика GRUB и ваши ядра Linux. Здесь нет конфигурационных файлов, используемых загрузчиком — они находятся в каталоге /etc вместе с другими конфигурационными файлами.

/run – файлы состояния приложений

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

Директории ОС Linux

В отличие от ОС Windows, которая имеет несколько корней, файловая система Линукс допускает лишь один корень. Корневой каталог является местом, где находятся все остальные директории и файлы ОС (обозначается прямой косой чертой).

структура папок Linux представлена в едином каталоге, именуемым корневым (root directory).

Основные каталоги, входящие в root directory

Это home directory (домашняя директория). Разделы Linux — многопользовательская оболочка, поэтому отдельному пользователю назначается отдельный объект в системе, доступный исключительно ему и суперпользователю.

/bin и /sbin

bin — сокращенно от binary. Здесь ОС хранит основные программные коды. Бинарные файлы — исполняемые организованные структуры данных, содержащие откомпилированный исходный код.

sbin — сокращенно от system binary. Эта директория зарезервирована для ПО, необходимого для регенерации, загрузки и отката.

opt — «необязательный». Это место, где хранятся инсталлированные вручную приложения и программы.

usr — Unix System Resources. Директория принадлежит пользовательским приложениям в отличие от /bin или /sbin, которые принадлежат приложениям, включенным в систему.

/usr/bin — большинство двоичных программ.

/usr/include — заголовочные организованные структуры данных, необходимые для компиляции исходного кода.

/usr/sbin — подкаталоги, предназначенные для задач, выполняющихся многократно.

/usr/lib — libraries (библиотеки)

/usr/src — исходные тексты ядра, header files (файлы заголовков).

Изначально этот каталог предназначался для всего, что связано с пользователем, но со временем он потерял свое значение и теперь это место для ПО и данных, используемых пользователем.

/lib /lib32 /lib64

lib — библиотека (library). Это директории библиотечных файлов. Library files — программы, используемые совместно другими приложениями. 

Это статический загрузчик, который содержит исполняемый файл ядра (kernel) и прочие файлы (configuration files), необходимые для запуска ПК.

Здесь хранят temporary files (временные структуры данных), необходимые приложениям во время сеанса работы.

proc — это не что иное, как процесс. В этом каталоге содержатся псевдофайлы (pseudofiles), содержащие сведения о системных ресурсах.

В директорию монтируется виртуальная файловая система tmpfs для хранения файлов, связанных с выполняющимися процессами. Здесь хранятся сведения о времени выполнения оперативной памяти. Эти файлы хранятся в оперативной памяти и по завершению сеанса исчезают.

Это service catalog (служебная директория). Если вы используете web-сервер, то можно хранить в этой папке данные для конкретной веб-страницы.

Директория для изменяемых данных /var

Файлы заранее неизвестного размера, такие, как файлы журналов, файлы кэша и файлы очереди печати должны сохраняться в директории /var.

Директория /var/log выполняет функции центрального хранилища всех файлов журналов.

[paul@RHEL4b ~]$ ls /var/log
acpid           cron.2    maillog.2   quagga           secure.4
amanda          cron.3    maillog.3   radius           spooler
anaconda.log    cron.4    maillog.4   rpmpkgs          spooler.1
anaconda.syslog cups      mailman     rpmpkgs.1        spooler.2
anaconda.xlog   dmesg     messages    rpmpkgs.2        spooler.3
audit           exim      messages.1  rpmpkgs.3        spooler.4
boot.log        gdm       messages.2  rpmpkgs.4        squid
boot.log.1      httpd     messages.3  sa               uucp
boot.log.2      iiim      messages.4  samba            vbox
boot.log.3      iptraf    mysqld.log  scrollkeeper.log vmware-tools-guestd
boot.log.4      lastlog   news        secure           wtmp
canna           mail      pgsql       secure.1         wtmp.1
cron            maillog   ppp         secure.2         Xorg.0.log
cron.1          maillog.1 prelink.log secure.3         Xorg.0.log.old

Стандартным файлом, к которому следует обратиться в первую очередь при диагностике дистрибутива от компании Red Hat (и производных дистрибутивов), является файл /var/log/messages. По умолчанию данный файл должен содержать информацию о событиях, которые происходят в рамках системы. Файл, выполняющий аналогичные функции в дистрибутивах Debian и Ubuntu, носит имя /var/log/syslog.

[root@RHEL4b ~]# tail /var/log/messages
Jul 30 05:13:56 anacron: anacron startup succeeded
Jul 30 05:13:56 atd: atd startup succeeded
Jul 30 05:13:57 messagebus: messagebus startup succeeded
Jul 30 05:13:57 cups-config-daemon: cups-config-daemon startup succeeded
Jul 30 05:13:58 haldaemon: haldaemon startup succeeded
Jul 30 05:14:00 fstab-sync[3560]: removed all generated mount points
Jul 30 05:14:01 fstab-sync[3628]: added mount point /media/cdrom for...
Jul 30 05:14:01 fstab-sync[3646]: added mount point /media/floppy for...
Jul 30 05:16:46 sshd(pam_unix)[3662]: session opened for user paul by... 
Jul 30 06:06:37 su(pam_unix)[3904]: session opened for user root by paul

Директория /var/cache может содержать кэшированные данные некоторых приложений.

paul@ubu1010:~$ ls /var/cache/
apt      dictionaries-common    gdm       man        software-center
binfmts  flashplugin-installer  hald      pm-utils
cups     fontconfig             jockey    pppconfig
debconf  fonts                  ldconfig  samba

Директория /var/spool обычно содержит поддиректории для хранения файлов с сообщениями электронной почты и данными задач cron, причем она также может быть родительской директорией для других файлов очередей (например, файлов очередей печати).

Директория /var/lib содержит файлы с данными состояния приложений.

Дистрибутив Red Hat Enterprise Linux, к примеру, хранит файлы, относящиеся к менеджеру пакетов rpm, в поддиректории /var/lib/rpm/.

Директория /var также содержит файлы с идентификаторами процессов в поддиректории /var/run (которая в недалеком будущем будет заменена на директорию /run), временные файлы, которые не должны удаляться при перезагрузке, в поддиректории /var/tmp, а также файлы блокировок в поддиректории /var/lock. Далее в данной книге будут приведены дополнительные примеры использования директории /var для хранения данных.

Корневая директория /

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

[paul@RHELv4u3 ~]$ ls /
bin   dev  home  media  mnt  proc  sbin     srv  tftpboot  usr
boot  etc  lib   misc   opt  root  selinux  sys  tmp       var

/lost+found – восстановленные файлы

В каждой файловой системе Linux есть каталог lost+found. Если произошел сбой в работе файловой системы, то при следующей загрузке будет выполнена проверка файловой системы. Все найденные поврежденные файлы будут размещены в каталоге lost+found, так что вы можете попытаться восстановить данные настолько, насколько это можно будет сделать.

Директории для хранения файлов конфигурации

Директория /boot содержит все файлы, необходимые для загрузки компьютера. Эти файлы не изменяются очень часто. В системах Linux в данной директории обычно можно обнаружить поддиректорию /boot/grub. Директория /boot/grub содержит файл /boot/grub/grub.cfg (на более старых системах также может использоваться файл /boot/grub/grub.conf), в рамках которого описывается меню загрузки, отображаемое перед загрузкой ядра ОС.

Все специфичные для машины конфигурационные файлы должны быть расположены в директории /etc. Изначально имя директории /etc была образовано от слова etcetera (и так далее), но сегодня люди часто расшифровывают его как Editable Text Configuration (директория с редактируемыми текстовыми файлами конфигурации).

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

paul@laika:~$ ls /etc/*.conf
/etc/adduser.conf        /etc/ld.so.conf       /etc/scrollkeeper.conf
/etc/brltty.conf         /etc/lftp.conf        /etc/sysctl.conf
/etc/ccertificates.conf  /etc/libao.conf       /etc/syslog.conf
/etc/cvs-cron.conf       /etc/logrotate.conf   /etc/ucf.conf
/etc/ddclient.conf       /etc/ltrace.conf      /etc/uniconf.conf
/etc/debconf.conf        /etc/mke2fs.conf      /etc/updatedb.conf
/etc/deluser.conf        /etc/netscsid.conf    /etc/usplash.conf
/etc/fdmount.conf        /etc/nsswitch.conf    /etc/uswsusp.conf
/etc/hdparm.conf         /etc/pam.conf         /etc/vnc.conf
/etc/host.conf           /etc/pnm2ppa.conf     /etc/wodim.conf
/etc/inetd.conf          /etc/povray.conf      /etc/wvdial.conf
/etc/kernel-img.conf     /etc/resolv.conf
paul@laika:~$ 

В директории /etc также можно обнаружить большое количество других важных файлов.

Во многих дистрибутивах Unix/Linux имеется директория /etc/init.d, которая содержит сценарии для запуска и остановки демонов. Эта поддиректория может исчезнуть в процессе перехода дистрибутивов Linux на системы инициализации, которые заменят старую систему инициализации init, используемую для запуска всех демонов.

Управление системой вывода графики осуществляется средствами программного обеспечения от организации X.org Foundation (а именно, сервера оконной системы X Window System или просто X). Файл конфигурации для вашего сервера оконной системы носит имя /etc/X11/xorg.conf.

Содержимое директории каркаса /etc/skel копируется в домашнюю директорию при создании учетной записи пользователя. Она обычно содержит такие скрытые файлы, как сценарий .bashrc.

Данная директория, не упомянутая в спецификации FHS, содержит большое количество файлов конфигурации компонентов дистрибутива Red Hat Enterprise Linux. Впоследствии мы будем более подробно рассматривать некоторые из этих файлов. В примере ниже приведен список файлов директории /etc/sysconfig дистрибутива RHELv4u4 в случае установки всех связанных с данной директорией программных компонентов.

paul@RHELv4u4:~$ ls /etc/sysconfig/
apmd         firstboot     irda              network      saslauthd
apm-scripts  grub          irqbalance        networking   selinux
authconfig   hidd          keyboard          ntpd         spamassassin
autofs       httpd         kudzu             openib.conf  squid
bluetooth    hwconf        lm_sensors        pand         syslog
clock        i18n          mouse             pcmcia       sys-config-sec
console      init          mouse.B           pgsql        sys-config-users
crond        installinfo   named             prelink      sys-logviewer
desktop      ipmi          netdump           rawdevices   tux
diskdump     iptables      netdump_id_dsa    rhn          vncservers
dund         iptables-cfg  netdump_id_dsa.p  samba        xinetd
paul@RHELv4u4:~$

Файл /etc/sysconfig/firstboot сообщает агенту настройки дистрибутива Red Hat о том, что он не должен запускаться после загрузки системы. В том случае, если вы желаете использовать агент настройки дистрибутива Red Hat после следующей перезагрузки, вам следует просто удалить данный файл и выполнить команду chkconfig --level 5 firstboot on. Агент настройки дистрибутива Red Hat позволяет устанавливать последние обновления системы, создавать учетные записи пользователей, пользоваться функциями портала Red Hat Network, а также выполнять другие действия. После запуска он снова создаст файл /etc/sysconfig/firstboot.

Дополнительно:  How to root Samsung Galaxy Tab S SM T705 8.4 LTE

paul@RHELv4u4:~$ cat /etc/sysconfig/firstboot 
RUN_FIRSTBOOT=NO

Файл /etc/sysconfig/harddisks содержит дополнительные параметры настройки жестких дисков. Формат файла описан в самом файле.

Вы можете ознакомиться с описанием программного обеспечения, обнаруженного утилитой kudzu, которое сохраняется в файле /etc/sysconfig/hwconf. Kudzu является приложением от компании Red Hat, предназначенным для автоматического обнаружения и настройки аппаратного обеспечения.

Тип клавиатуры и таблица соответствия символов устанавливаются в файле /etc/sysconfig/keyboard. Для получения дополнительной информации о настройках клавиатуры в консоли следует обратиться к следующим страницам руководств keymaps(5), dumpkeys(1), loadkeys(1), а также к содержимому директории /lib/kbd/keymaps/.

root@RHELv4u4:/etc/sysconfig# cat keyboard 
KEYBOARDTYPE="pc"
KEYTABLE="us"

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

Монтирование дисков в Linux

В Linux есть такое понятие как «монтирование» диска. Чтобы получить доступ к файлам на этом диске, его нужно сначала смонтировать. Может возникнуть вопрос, зачем такие сложности? Я и сам так думал, т. к. во времена моего первого знакомства с Linux это мне казалось чем-то излишним и запутанным. Но монтирование это мощнейшая вещь, которая позволяет поразительно гибко настроить файловую систему!

Суть монтирования в том, что в файловой системе создаётся новая директория (обычная папка), допустим, это папка /mnt/disk_d. А затем командой mount указывается, что теперь, например, диск /dev/sda смонтирован в директорию /mnt/disk_d. После этого можно получить доступ к файлам диска /dev/sda открыв папку /mnt/disk_d в любом менеджере файлов:

Назначение каталога root

/opt – вспомогательные пакеты

В каталоге /opt находятся подкаталоги для дополнительных пакетов программного обеспечения. Этот каталог широко используется проприетарным программным обеспечением, которое не подчиняется стандартной иерархии файловых систем — например, проприетарная программа может при установке записывать дампы своих файлов в /opt/application.

Типы файлов Linux

типы файлов Linux

  • обычные (regular file);
  • именованный канал (named pipe);
  • файл для туннелей, устройств (device file);
  • soft link (символическая ссылка);

Каталог (directory) — файл, содержащий другие организованные структуры данных (директории), который обеспечивает указатели на них. Играет роль папки в картотеке (группирует связанные файлы). Но если папки содержат только файлы, то директории могут содержать дополнительные каталоги (subdirectories).

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

Отдельно создают жесткие ссылки. Жесткая (hard) ссылка указывает на фактические данные в файле аналогично, как и в regular file. Помимо имени, нет никакой разницы между оригинальным файлом и жесткой ссылкой, указывающей на те же данные. Оба файла представляют собой обычные файлы. Отличить жесткую ссылку от любого другого обычного файла можно только по количеству ссылок, которые есть у каждого из них. Количество ссылок отображается во втором поле листинга ls -l. Если это число >1, то значит, что существуют дополнительные жесткие ссылки на данные.

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

/root – домашний каталог пользователя root

Каталог /root является домашним каталогом пользователя root. Вместо того, чтобы находиться в /home/root, он помещается в /root. Этот каталог отличается от каталога /, который является корневым каталогом системы.

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

Поиск своего местоположения

После того как вы подключаетесь к своему серверу, вы обычно попадаете в домашний каталог вашей учетной записи пользователя (если не применены нестандартные настройки). Домашняя директория — это директория, которая используется для хранения пользовательских файлов, например документов, фото, видео-файлов. В этой директории вы имеете полные права для совершения любых действий, таких как создание, перемещение, удаление файлов и директорий. Чтобы узнать, где находится домашний каталог пользователя, используйте команду pwd (сокращение от print working directory). Эта команда выведет путь до каталога, в котором вы находитесь в данный момент:

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

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

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

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

Чтобы изменить текущий каталогlinuxcd (сокращение от change directory), за которой, в качестве аргумента, следует имя каталога, относительно текущего:

или абсолютный (полный) путь:

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

Чтобы вернуться в домашний каталог пользователя, нам не обязательно передавать полный путь к нему, вместо этого можно использовать короткую запись, передав в качестве аргумента символ «тильда»:

Чтобы перейти в корневой каталог:

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

Теперь, когда мы знаем, как перейти в нужный нам каталог и отобразить путь до него, пришло время разобраться, как просмотреть содержимое каталога. Чтобы это сделать, в linuxкоманда ls (сокращение от list):

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

addresses.txt    Documents    Downloads    grades.txt 

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

Чтобы вывести список всех файлов в подкаталогах, используйте флаг -R:

ls -R /home/demo/

Так же в linux-команде ls можно передать дополнительные флаги. Например, чтобы вывести подробную информацию о содержимом каталога, такую как права доступа, дату последнего изменения, можно использовать команду:

ls -l /home/demo/

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

ls -la /home/demo/

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

Для вывода содержимого файла в терминал, используется команда cat (сокращение от concatenate). В качестве аргумента ей необходимо передать имя файла в текущем каталоге или путь до него:

cat file1.txt
cat /home/demo/file2.txt

Иногда вам может понадобиться найти местоположение определенного файла. Поиск файла в linux легко можно сделать с помощью команд find или locate.

Команда find ищет файл в определенном месте и принимает два аргумента: путь до директории, в которой нужно произвести поиск, и имя файла, который нужно найти. Для того, чтобы поискать файл с именем file1.txt в домашней директории пользователя demo, команда будет выглядеть следующим образом:

find /home/demo -name file1.txt

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

/mnt – точки временного монтирования

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

/srv – данные сервисных служб

В каталоге /srv находятся «данные для сервисов, предоставляемых системой». Если вы пользуетесь сервером Apache HTTP для обслуживания веб-сайта, то, скорее всего, вы будете хранить файлы вашего сайта в каталоге, расположенном внутри каталога /srv.

Особенности организации файлов в Linux

В Linux файловая система организована иначе чем в Windows.

Первое, что бросается в глаза, нет дисков C, D, E и так далее.

Второе, про что часто говорят, но не совсем просто осознать — всё в Linux является файлами. То есть сами файлы, очевидно, являются файлами; директории также являются файлом особого вида; физические устройства (диски, клавиатура, мышь и т. д. — это всё тоже файлы) и даже сетевые соединения — это тоже файлы.

Третье — в Linux есть root. Имеется ввиду корень файловой системы, который обозначается как «/». Ещё в Linux есть главный пользователь, имя которого тоже root — не нужно путаться, это довольно разные вещи. Кстати, ведь ещё есть и директория с именем /root. Говоря про корень файловой системы, имеется ввиду «/», а не «/root».

Понятие файла

Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.

Каталоговая структура /

Каталог
— это второй по важности раздел файловой системы.
содержит разделяемые данные, предназначенные только для чтения. Это
означает, что
может быть доступен с различных FHS-совместимых хостов и права записи
в него не должно быть. Любая информация, которая является специфичной
для конкретного хоста или может изменяться со временем, должна
записываться в другое место.

Следующие
каталоги или символические ссылки на каталоги должны присутствовать в

Программные пакеты не должны создавать подкаталоги
непосредственно в каталоге .
Исключение сделано для системы X Window в силу сложившихся традиций и
широко распространенной практики.

Могут создаваться следующие символические ссылки
на каталоги.


/usr/spool -> /var/spool



/usr/tmp -> /var/tmp



/usr/spool/locks -> /var/lock

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

/usr/local : Каталог для локального ПО

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

Локально устанавливаемое программное обеспечение
должно располагаться не в ,
а в
если только его установка производится не в целях замены или
обновления ПО в .
(Программное обеспечение, расположенное в
или

может быть перезаписано при обновлениях системы (хотя мы рекомендуем,
чтобы дистрибутивы не перезаписывали данные в

в таких обстоятельствах). По этой причине локально устанавливаемое
программное обеспечение не должно размещаться за пределами каталога

без достаточных на то оснований.
)

Следующие каталоги или символические ссылки на
каталоги должны иметься в
:

  • — Локальные исполняемые файлы
  • — Локально установленные игровые приложения
  • — Локальные заголовочные файлы для C
  • — Локальные библиотеки
  • — Локальные онлайновые руководства
  • — Локальные системные исполняемые файлы
  • — Архитектурно-независимые структура каталогов для локального ПО
  • — Локально установленные исходные коды.

Никаких каталогов, кроме перечисленных выше, не
должно быть в
после первой установки FHS-совместимой системы.

/usr/share : Архитектурно-независимые данные

  • – Он-лайновые руководства
  • — Различные архитектурно-независимые данные
  • Словари
  • — Различная документация ()
  • — Файлы статических данных для ()
  • — Основная директория для системы GNU Info ()
  • — Локальная информация ()
  • — Каталоги сообщений для поддержки языков ()
  • — Данные для SGML и XML ()
  • — Каталог базы данных для terminfo ()
  • — Макросы для troff, не распространяемые с groff ()
  • — Конфигурационные файлы и информация о временной зоне ()

    Словари

    /usr/share/man : Страницы руководства man

    Страницы интерактивного руководства man разбиты на
    следующие секции:

    • :
      Пользовательские программы.
      В этой секции содержатся описания
      общедоступных команд. Здесь расположена большая часть необходимой
      пользователям документации к программам.
    • :
      Системные вызовы.
      Эта секция описывает все системные вызовы
      (запросы к ядру на выполнение каких-то операций).
    • :
      Библиотеки функций и подпрограмм.
      В секции 3 описываются
      библиотеки программных процедур, которые не являются прямыми
      вызовами сервисов ядра. Эта секция, как и секция 2, представляет
      интерес только для программистов.
    • :
      Специальные файлы.
      Секция 4 описывает специальные файлы
      устройств, функции соответствующих драйверов и средства сетевой
      поддержки, предоставляемые системой. Обычно в эту секцию включается
      описание файлов устройств, находящихся в каталоге
      и интерфейса ядра для средств поддержки сетевых протоколов.
    • :
      Форматы файлов.
      Форматы многих файлов данных документированы в
      секции 5. Речь идет о различных подключаемых файлах, файлах вывода
      программ, системных файлах и так далее.
    • :
      Игры.
      В эту секцию включена документация к играм, демо и другим
      тривиальным программам. Разные люди могут иметь разные мнения о том,
      насколько важно то, что размещено здесь.
    • :
      Разное.
      Страницы руководства, которые трудно отнести к какому-то
      иному разделу, размещаются в секции 7. Здесь вы найдете, к примеру,
      описание troff и других средств для обработки текста.
    • :
      Системное администрирование.
      В этой секции документированы
      программы, используемые системным администратором для выполнения
      системных операций и поддержки работоспособности системы. Некоторые
      из этих программ бывают полезны иногда и обычным пользователям.
    Дополнительно:  Ubiquiti root password

    Деление страниц руководства на секции и нумерация
    секций от «1» до «8» определено традициями. В
    общем случае имена файлов для страниц руководства, расположенных в
    определенной секции, оканчиваются расширением вида .<section>,
    совпадающим с номером секции
    . Для каждой секции
    создается отдельный каталог с именем
    где компонент
    задает секцию руководства, а разъяснения того, что имеется в виду под

    и
    даются ниже.

    Примечание: Если,
    например,

    не содержит файлов руководства в секции 4 (Устройства), то каталог

    может не создаваться.

    Поле
    должно браться из стандарта ISO 639 (коды для представления названий
    языков). Оно должно состоять из двух символов и записываться только в
    нижнем регистре.

    Поле
    должно состоять из двух символов, записываемых только в верхнем
    регистре (заглавными буквами), и представляет собой, если это
    возможно, двухбуквенный код из спецификации ISO 3166.

    Поле
    представляет собой стандартное описание кодировки. Если поле

    представлено только цифрами, эти цифры представляют номер
    международного стандарта, описывающего набор символов. Рекомендуется,
    если это возможно, чтобы это было числовое представление (в
    особенности стандартов ISO), не включающее дополнительных символов
    пунктуации, и чтобы любые символы были в нижнем регистре.

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

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

    В тексте стандарта приведены следующие примеры
    формирования имен каталогов для различных стран и кодировок:

    Кроме того, некоторые большие массивы страниц
    руководства, относящихся к определенным приложениям, могут иметь
    дополнительный суффикс, добавляемый к имени файла со страницей
    руководства. Например, для системы обработки почты MH файлы
    руководства должны иметь дополнительный суффикс
    в имени файла. Все страницы руководства для системы X Window System
    должны иметь дополнение
    к имени файла.

    /usr/share/misc : Различные
    архитектурно-независимые данные

    • — таблица набора символов ASCII (ASCII character set table),
    • — список магических чисел для команды file, используемый по
      умолчанию,
    • — база данных с параметрами терминалов,
    • — база данных с параметрами терминалов.

    Каталоговая структура /var

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

    Некоторые части каталоговой структуры
    не являются разделяемыми между разными системами. К ним относятся
    ,

    и .
    Другие части могут быть разделяемыми, например, ,
    ,

    и .

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

    Следующие каталоги или символические ссылки на
    каталоги должны обязательно присутствовать в .

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

    Наличие следующих подкаталогов в /var
    не является обязательным, но они (может быть как
    символические
    ссылки) должны иметься, если соответствующие системы установлены:

    протоколы работы процессов,ампы памяти при крахе системы,временные данные игровых приложений,файлы почтовых ящиков пользователей,файлы базы данных сетевой информационной службы (Network
    Information Service — NIS).

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

    /var/cache : Данные кэша приложений

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

    Файлы, расположенные в ,
    могут удаляться либо самим приложением, либо администратором.
    Приложение должно всегда иметь возможность продолжить работу, даже
    после удаления этих файлов вручную (например, при нехватке дискового
    пространства). Никаких других требований на формат данных в каталоге
    кэша не накладывается.

    Существование отдельной директории для кэшируемых
    данных позволяет системным администраторам устанавливать для этого
    каталога правила использования и резервного копирования, отличающиеся
    от правил, устанавливаемых для других каталогов в .

    Обычно в этом каталоге создаются подкаталоги

    — локально сгенерированные шрифты,

    — локально отформатированные страницы руководства,

    — кэш данных для WWW proxy,

    <>
    — кэшируемые данные пакета <package>.

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

    Примечание: Стандарт
    не предусматривает поглощение или
    замену the TeX Directory Structure (документ, который задает
    размещение файлов формата TeX и структуру соответствующих каталогов),
    так что этот документ полезно прочитать. Он размещается по адресу
    .

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

    /var/crash : Дампы памяти при крахе системы

    Этот каталог предназначен для записи в него
    содержимого оперативной памяти (дампа памяти) в случае краха системы.
    На момент выпуска данной версии настоящего стандарта дампы памяти не
    поддерживаются в системе Linux.

    /var/lock : Файлы блокирования

    Файлы блокирования устройств и других ресурсов,
    используемые многими приложениями, такие как файлы блокирования
    последовательных портов, должны храниться в каталоговой структуре
    .
    Названия этих файлов должны формироваться в соответствии с
    соглашением, согласно которому используется префикс «LCK..»,
    за которым следует базовое имя устройства. Например, для блокирования
    /dev/ttyS0 должен создаваться файл «LCK..ttyS0». Любое
    приложение, которое
    должно прочитать файл блокирования и действовать соответственно.
    Следовательно, все файлы блокирования в

    должны быть доступны по чтению всем.

    Внутренняя структура таких файлов блокирования
    должна соответствовать формату, определенному в HDB UUCP. Формат HDB
    предусматривает сохранение идентификатора процесса (PID) в виде
    десяти-байтового десятичного числа, за которым следует символ конца
    строки. Например, если процесс 1230 создает файл блокирования, в этом
    файле будет записано 11 символов: пробел, пробел, пробел, пробел,
    пробел, пробел, один, два, три, ноль и конец строки.

    /var/log : Каталоги и файлы протоколов

    Эта директория содержит разнообразные файлы
    протоколов. Большая часть протоколов должна записываться в этот
    каталог или соответствующий подкаталог.

    Следующие файлы или символические ссылки на файлы
    должны быть в ,
    если соответствующая подсистема установлена:

    • — запись о последнем входе в систему каждого пользователя,
    • — системные сообщения от ,
    • — записи о всех входах и выходах пользователей в систему.

    /var/mail : Почтовые ящики пользователей

    Файлы почтовых ящиков в этих каталогах должны
    хранится в формате стандартных почтовых ящиков UNIX (UNIX mailbox
    format).

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

    /var/opt : Переменные данные для /opt

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

    /var/run : Переменные данные времени выполнения

    Этот каталог содержит данные, описывающие
    состояние системы с того момента, как она была загружена Файлы в этом
    каталоге должны очищаться (удаляться или урезаться соответствующим
    образом) в начале процесса загрузки системы. Программы могут иметь
    подкаталоги в каталоге ;
    это приветствуется для программ, которые используют более одного
    файла времени выполнения.

    Примечание: Непривилегированные
    пользователи должны быть лишены права записи в каталог
    ;
    с точки зрения безопасности предоставление любому пользователю права
    записи в этот каталог представляет большую угрозу. Файлы с
    идентификаторами процессов (PID), которые раньше располагались в
    ,
    должны быть размещены в

    Соглашение об именах этих файлов следующее:
    .
    Например, PID-файл для демона

    называется
    .

    Файл, в котором хранятся идентификаторы процесса
    (PID), должен состоять из идентификатора процесса в коде ASCII,
    записанном в десятичной нотации, за которым следует символ конца
    строки. Например, если
    запущен как процесс с номером 25,
    будет содержать три символа: два, пять и символ новой строки.

    Программы, которые читают PID-файлы, должны быть
    достаточно гибкими в отношении того, что они воспринимают: то есть
    они должны игнорировать лишние пробелы, предшествующие ноли,
    отсутствие завершающего символа новой строки или дополнительные
    строки в PID-файле. Программы, которые создают PID-файлы, должны
    использовать простые спецификации, изложенные в предыдущем параграфе.

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

    /var/spool : Очереди данных для приложений

    Каталог
    содержит данные, которые ожидают какой-то последующей обработки
    (программой, пользователем или администратором); обычно после
    обработки эти данные удаляются.

    Обычно в
    создаются следующие подкаталоги:
    (каталог спулинга для принтера),
    (очередь исходящей почты),
    (каталог спулинга новостей),
    (файлы для программы Rwhod),
    (каталог спулинга для UUCP).

    /var/tmp : Временные файлы, сохраняемые
    между перезапусками системы

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

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

    Дополнительные требования стандарта для ОС
    Linux

    Отдельный раздел стандарта
    содержит требования и рекомендации, которые относятся только к
    операционной системе Linux. Вот их краткий перечень:

    • В Linux-системах, если ядро расположено в
      корневом каталоге («,
      рекомендуется использовать для него названия
      или ,
      которые используются в последних версиях исходных кодов ядра Linux.
    • Если в Linux-системе используется файл
      ,
      он должен размещаться в каталоге .
    • Все устройства и специальные файлы в
      должны соответствовать документу Linux Allocated Devices,
      который поставляется в составе исходных кодов ядра и поддерживается
      Питером Анвином (H. Peter Anvin). Символические ссылки в каталоге

      должны устанавливаться в Linux-системах не иначе как в соответствии
      с документом Linux Allocated Devices.

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

      для хранения и получения информации о процессах, а также информации
      о ядре и памяти.
    • В Linux-системах следующие дополнительные
      файлы размещаются в /sbin
      (в тексте стандарта имеются
      пояснения, почему возникло это требование)
      :
    • Команды для управления файловой системой
      ext2fs:
    • Программа установки загрузчика системы
    • Неизменяемые исполняемые файлы
    • Программы
    • Если в системе установлены компиляторы языков
      C или C++, и система не основана на glibc, должны быть созданы
      следующие символические ссылки:


      /usr/include/linux -> /usr/src/linux/include/linux

    • Для систем, основанных на версиях библиотеки
      libc, предшествующих glibc, применяются следующие правила:

    Единственными
    исходными кодами, которые должны быть размещены в определенном месте,
    являются исходные коды ядра Linux.
    Они размещаются в .

    Если установлен
    компилятор C или C++, а полная версия исходных кодов ядра не
    установлена, то подключаемые файлы из исходных кодов ядра должны
    размещаться в следующих каталогах:

    где
    — название архитектуры системы (например, i386).

    Замечание:

    может быть символической ссылкой на дерево каталогов с исходными
    кодами ядра.

    • Каталог
      содержит переменные данные для программ-демонов
      и .

    Иерархия файловых систем

    В предыдущей части статьи мы сознательно
    ограничивали рассмотрение только вопросами построения структуры
    каталогов и не касались (или почти не касались) вопроса о том, как
    разместить эти каталоги в различных файловых системах. Теперь давайте
    рассмотрим этот вопрос отдельно.

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

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

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

    • Здесь
      же должны быть расположены и те утилиты, которые необходимы для
      восстановления данных с резервных копий (с дискет, магнитных лент и
      т.п.).

    По нескольким причинам размер корневой файловой
    системы желательно сделать достаточно малым.

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

    В общем, из чтения текста стандарта можно сделать
    вывод о том, что в корневой файловой системе обязательно должны
    целиком (то есть со всем их содержимым) располагаться каталоги /,
    /, /, /,
    /
    и, возможно, /

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

    из корневого раздела в раздел с каталогом .
    (Иногда это делается с целью уменьшения размера корневого раздела или
    когда в корневом разделе остается слишком мало места). Однако,
    нельзя делать ссылкой на
    потому что это затрудняет разделение
    и
    и может привести к конфликту имен. Лучше уж сделать
    ссылкой на .

    Что касается каталога /,
    то его размещение в отдельном разделе диска в стандарте прямо не
    оговаривается, но как бы молча подразумевается. Впрочем, такое
    решение легко обосновать и без ссылок на стандарт. Причем оно не
    зависит от того, идет ли речь о персональном компьютере или о
    файловом, предположим, сервере. В обоснование этого вывода можно
    привести следующие доводы. Рано или поздно, но систему придется
    переустанавливать или обновлять. Если раздел с программным
    обеспечением при этом практически безболезненно можно отформатировать
    (поскольку дистрибутив содержит, как
    правило, обновленные версии практически всех пакетов ПО и все будет
    заново поставлено), то домашние каталоги пользователей из
    дистрибутива не обновишь. Представьте, что ваш домашний каталог
    администратор почистит без вашего ведома. Так что уж лучше каталог

    не трогать. Поэтому стоит разместить домашние каталоги пользователей
    в отдельной файловой системе и после переустановки ОС заново
    смонтировать ее в каталог .

    Что касается каталога ,
    то, если исходить из приведенной в стандарте рекомендации минимизации
    корневого раздела, его, вслед за ,
    надо выносить в отдельный раздел. Дело в том, что если исключить
    домашние каталоги пользователей, то именно этот каталог по объему
    составляет более 90% объема всех каталогов. Это и не удивительно –
    в нем установлено все программное обеспечение.

    В заключение хочется еще раз отметить, что речь в
    статье идет только о требованиях и рекомендациях стандарта ,
    причем стандарта, разработанного с ориентацией на операционные
    системы и .
    Даже конкретные дистрибутивы далеко
    не во всем следуют этому стандарту. Например, в
    версий
    7.3 и 8.0 каталог
    хотя и создан, но пуст, а конфигурационные каталоги пакетов
    размещаются непосредственно в .
    Аналогичная ситуация с каталогом
    — он тоже пуст, а все дополнительное ПО устанавливается,
    по-видимому, в
    (по крайней мере то ПО, которое разворачивается из -пакетов).
    Можно указать и другие отклонения от стандарта. Но все же в основном
    структура каталогов выдерживается в соответствии с ,
    и я надеюсь, что чем дальше, тем больше будет к нему приближаться.
    Так что знакомство с этим стандартом безусловно полезно всем
    пользователям , а тем более
    разработчикам программного обеспечения для этой операционной системы.

    Литература

    1. В.Костромин, “Самоучитель Linux для пользователя”, изд.
      БХВ-Петербург, 2002 г.
    2. В.Холманов, «Разбиение дисков и инсталляция Linux на LVM”,
      http://www.softerra.ru/freeos/20792/print.html
    3. А.Федорчук, «Установка Linux в современных условиях: дисковые разделы»,
      http://linuxshop.ru/unix4all/?cid=&id=12.

    Если вам понравилась статья, поделитесь ею с друзьями:



  • /media – подключаемые носители

    В каталоге находятся подкаталоги, в которых монтируются съемные носители, вставляемые в компьютер. Например, когда вы в системе Linux вставляете диск CD, в каталоге /media будет автоматически создан соответствующий подкаталог. В этом подкаталоге вы можете получить доступ к содержимому диска CD.

    Стандарт иерархии файловой системы

    Многие дистрибутивы Linux частично следуют Стандарту иерархии файловой системы (Filesystem Hierarchy Standard). Данный стандарт может оказаться полезным для будущего процесса стандартизации деревьев директорий файловых систем Unix/Linux. Стандарт FHS доступен в сети по адресу http://www.pathname.com/fhs/, причем на данном ресурсе мы можем прочитать: «Стандарт иерархии файловой системы был создан с целью его использования разработчиками дистрибутивов Unix, разработчиками пакетов для распространения программного обеспечения и разработчиками операционных систем. Однако, данный стандарт является в большей степени справочным материалом, нежели руководством по работе с файловой системой Unix или с иерархиями директорий.»

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

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

    Чтобы открыть файл с именем file1.txt, введите:

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

    Копирование и вставка

    Для того чтобы вырезать строку и поместить ее в буфер обмена, переместите курсор на нужную строку и нажмите

    Чтобы вставить строку из буфера, нажмите

    Чтобы скопировать текст произвольной длины, сначала требуется его выделить. Для этого поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6. Перемещайте курсор, текст будет выделяться.

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

    Чтобы вырезать выделенный текст, нажмите 

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

    Для поиска используйте комбинацию клавиш Ctrl+W, затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.

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

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

    Если вы хотите выйти из редактора нажмите комбинацию клавиш 

    /home – домашние каталоги

    В каталоге /home находятся домашние каталоги каждого пользователя. Например, если ваше имя как пользователя bob, то у вас есть домашний каталог, который находится в /home/bob. В этом каталоге находятся файлы с пользовательскими данными и конфигурационные файлы конкретного пользователя. Каждый пользователь имеет доступ на запись только в своем домашнем каталоге и для того, чтобы он мог изменять другие файлы в системе, он должен получить более высокие права доступа (стать пользователем root).

    Назначение каталога root

    Страница руководства man hier

    Существуют некоторые различия в иерархиях файловых систем различных дистрибутивов Linux. Для того, чтобы ознакомиться с информацией об иерархии файловой системы вашей машины, используйте команду man hier. На данной странице руководства будут приведены пояснения относительно структуры дерева директорий системы, установленной на вашем компьютере.

    /tmp – временные файлы

    Приложения хранят временные файлы в каталоге /tmp. Такие файлы обычно удаляются всякий раз, когда ваша система перезагружается, и их можно удалить в любой момент с помощью утилит, например, с помощью утилиты tmpwatch.

    Директории для хранения бинарных файлов

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

    Директория /bin содержит бинарные файлы, которые могут использоваться всеми пользователями. В соответствии со спецификацией FHS, директория /bin должна содержать исполняемые файлы /bin/cat и /bin/date (помимо других исполняемых файлов).

    paul@laika:~$ ls /bin
    archdetect       egrep             mt               setupcon
    autopartition    false             mt-gnu           sh
    bash             fgconsole         mv               sh.distrib
    bunzip2          fgrep             nano             sleep
    bzcat            fuser             nc               stralign
    bzcmp            fusermount        nc.traditional   stty
    bzdiff           get_mountoptions  netcat           su
    bzegrep          grep              netstat          sync
    bzexe            gunzip            ntfs-3g          sysfs
    bzfgrep          gzexe             ntfs-3g.probe    tailf
    bzgrep           gzip              parted_devices   tar
    bzip2            hostname          parted_server    tempfile
    bzip2recover     hw-detect         partman          touch
    bzless           ip                partman-commit   true
    bzmore           kbd_mode          perform_recipe   ulockmgr
    cat              kill              pidof            umount
    ...
    

    Другие директории /bin

    Вы можете обнаружить поддиректорию /bin во многих других директориях. Например, пользователь с именем serena может разместить свои собственные приложения в поддиректории /home/serena/bin.

    Файлы некоторых приложений, обычно в случае установки путем непосредственной сборки из исходного кода, устанавливаются в директорию /opt. К примеру, при установке сервера samba для хранения бинарных файлов может быть использована поддиректория /opt/samba/bin.

    Директория /sbin содержит бинарные файлы, предназначенные для настройки операционной системы. Многие из бинарных файлов для настройки системы требуют наличия привилегий пользователя root для выполнения определенных задач.

    paul@ubu1010:~$ ls -l /sbin/ifconfig /sbin/fdisk /sbin/mkfs.ext4
    -rwxr-xr-x 1 root root 97172 2011-02-02 09:56 /sbin/fdisk
    -rwxr-xr-x 1 root root 65708 2010-07-02 09:27 /sbin/ifconfig
    -rwxr-xr-x 5 root root 55140 2010-08-18 18:01 /sbin/mkfs.ext4
    

    Бинарные файлы из директорий /bin и /sbin обычно используют разделяемые библиотеки, расположенные в директории /lib. В примере ниже приведен список некоторых файлов из директории /lib.

    paul@laika:~$ ls /lib/libc*
    /lib/libc-2.5.so     /lib/libcfont.so.0.0.0  /lib/libcom_err.so.2.1    
    /lib/libcap.so.1     /lib/libcidn-2.5.so     /lib/libconsole.so.0      
    /lib/libcap.so.1.10  /lib/libcidn.so.1       /lib/libconsole.so.0.0.0  
    /lib/libcfont.so.0   /lib/libcom_err.so.2    /lib/libcrypt-2.5.so
    

    Обычно ядро Linux загружает модули из директории /lib/modules/$версия-ядра/. Содержимое этой директории будет подробно описано в главе, посвященной ядру Linux.

    Директории /lib32 и /lib64

    На данный момент осуществляется медленная миграция с 32-битных на 64-битные системы. По этой причине вы можете обнаружить в своей системе директории с именами /lib32 и /lib64, которые указывают на размеры регистров, использованные в процессе компиляции расположенных в этих директориях разделяемых библиотек. 64-битный компьютер может содержать некоторые 32-битные бинарные файлы и библиотеки, используемые для достижения совместимости с устаревшими приложениями. В примере ниже утилита file используется для демонстрации описанных различий между разделяемыми библиотеками.

    paul@laika:~$ file /lib32/libc-2.5.so 
    /lib32/libc-2.5.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, stripped
    paul@laika:~$ file /lib64/libcap.so.1.10 
    /lib64/libcap.so.1.10: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped
    

    Формат ELF (формат исполняемых и компонуемых файлов — Executable and Linkable Format) используется практически во всех Unix-подобных операционных системах с момента выпуска System V.

    Директория /opt предназначена для хранения вспомогательного программного обеспечения. В большинстве случаев данное программное обеспечение устанавливается не из репозитория дистрибутива. В многих системах директория /opt пуста.

    При установке пакета программного обеспечения большого объема файлы из него могут копироваться в поддиректории /bin, /lib, /etc директории /opt/$имя-пакета/. Например, в том случае, если пакет программного обеспечения носит имя wp, файлы из него будут устанавливаться в директорию /opt/wp, при этом бинарные файлы будут устанавливаться в поддиректорию /opt/wp/bin, а файлы страниц руководств — в поддиректорию /opt/wp/man.

    Оцените статью
    Master Hi-technology
    Добавить комментарий