Linux x64 в каких папках x86 приложения. Корневая файловая система Linux: каталоги и команды

25.05.2019

Очень сильно отличается от устройства в windows. Для начала, в линуксе нет дисков C или D. Один физический диск (или несколько) при установке системы разбивается на каталоги и подкаталоги. Основной, корневой каталог обозначается символом / (слэш) Вместо файла подкачки существует отдельный раздел /swap . Каждый каталог можно форматировать в нужную файловую систему, в зависимости от задач пользователя. Например Ext3, ReiserFS, JFS или другую.
В разных дистрибутивах линукс схема и назначение некоторых каталогов может несколько отличаться.
Можно создавать свои каталоги. У меня на отдельном жестком диске находится каталог с фильмами. В корневом разделе он выглядит как /films.

Описание основных каталогов и подкаталогов в linux:
/bin - В нем находятся
основные файлы команд.

/boot - В этом каталоге находится загрузчик системы (Grub или Lilo) и файлы, необходимые для загрузки системы.

/dev - В каталоге dev размещаются файлы описания устройств компьютера. В linux все устройства считаются файлами. Даже порты, диски, принтеры - все файл.

/etc - Каталог, в котором находятся конфигурационные файлы системы, программ, стартовые сценарии.
/etc/rc.d - файлы команд, запускающие приложения при загрузке системы.
/etc/passwd - в файле зашифрованы все данные о пользователях.
/etc/fstab - в файле содержится информация о файловых системах, автоматически монтируемых при запуске системы

/home - Пользовательский, домашний каталог. В linux может быть множество пользователей. Каждый пользователь имеет свой каталог.(например /home/user) В нем находятся любые файлы пользователей к которым он имеет непосредственный доступ
записи/удаления. Также в домашнем каталоге находятся пользовательские программы, настройки. Их имена начинаются на точку и выглядят, к примеру, вот так - .kde .fonts

/lib - Здесь находятся различные библиотеки системы, модули ядра
/lib/firmware - несвободные модули ядра с закрытой лицензией
/lib/modules - подгружаемые модули ядра. Например драйверы устройств, файловых систем.

/mnt - В этот каталог временно монтируются различные подключаемые устройства. Флешки, дискеты, диски

/opt - В каталог устанавливаются дополнительные пакеты программ.

/proc - Каталог с виртуальной файловой системой. В нем, в виде файлов содержится информация о происходящих в системе процессах.
/proc/modules - в этом файле находится информация о списке загруженных модулей ядра.
/proc/cpuinfo - подробная информация о процессоре.
/proc/meminfo -
информация об оперативной памяти.
/proc/devices - драйверы устройств встроенных в ядро системы.
/proc/uptime - информация про uptime системы. Т.е. Время работы без перезагрузки.
/proc/version - версия используемого системой ядра linux .
Все эти данные можно выводить в консоли с помощью команды cat .
Например cat /proc/cpuinfo

/root - Домашний каталог администратора(суперпользователя) системы. Используется администратором в случае если основной каталог home по каким-то причинам недоступен.

/sbin - Тут находятся основные программы выполняемые root.

/tmp - Каталог для временного хранения данных программами.

/usr - Основной каталог для установки программ. Кроме программ, в нем находятся файлы документации, исходные коды программ, ядра.
/usr/local - в этом каталоге находятся
отдельно устанавливаемые пакеты программ.
/usr/src - исходники установленных программ и ядра.
/usr/man - файлы руководств к установленным программам.
/usr/lib - неизменяемые конфигурационные файлы и данные программ.

/var - В каталоге var находятся данные которые часто меняются в процессе работы системы. Например логи, кэши программ.
/var/local - изменяемые данные программ, установленных администратором в /usr/local.
/var/log - логи различных системных программ.
/var/run - временные файлы. Информация в них хранится до очередной перезагрузки системы.
/var/tmp - каталог для временных файлов.

Оригинал: Linux Fundamentals
Автор: Paul Cobbaut
Дата публикации: 16 октября 2014 г.
Перевод: А.Панин
Дата перевода: 12 декабря 2014 г.

Глава 9. Дерево директорий Linux

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

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

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

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

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

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

Структуры директорий всех систем Linux начинаются с корневой директории. Корневая директория обозначается с помощью символа прямого слэша, а именно, /. Все файлы, которые существуют в вашей системе Linux, находится ниже данной корневой директории в дереве директорий. Давайте рассмотрим содержимое этой корневой директории. $ ls / bin dev home media mnt proc sbin srv tftpboot usr boot etc lib misc opt root selinux sys tmp var

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

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

Директория /bin

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

В примере ниже вы можете увидеть список исполняемых файлов, являющихся реализациями таких команд, как cat, cp, cpio, date, dd, echo, grep и.т.д. Многие из упомянутых команд будут рассмотрены в рамках данной книги. 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

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

В примере ниже приведен список бинарных файлов для настройки системы, предназначенных для изменения IP-адреса, работы с разделами жестких дисков и создания файловой системы ext4. 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

Директория /lib

Бинарные файлы из директорий /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

Поддиректория /lib/modules

Обычно ядро 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 предназначена для хранения вспомогательного программного обеспечения. В большинстве случаев данное программное обеспечение устанавливается не из репозитория дистрибутива. В многих системах директория /opt пуста.

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

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

Директория /boot

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

Директория /etc

Все специфичные для машины конфигурационные файлы должны быть расположены в директории /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 также можно обнаружить большое количество других важных файлов.

Поддиректория /etc/init.d/

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

Поддиректория /etc/X11/

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

Поддиректория /etc/skel/

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

Поддиректория /etc/sysconfig/

Данная директория, не упомянутая в спецификации 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. 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"

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

Директории для хранения данных

Директория /home

Пользователи могут хранить персональные данные и данные проектов в директории /home . Обычно (но не всегда в соответствии со спецификацией FHS) имя домашней директории пользователя устанавливается в соответствии с полным именем пользователя в формате /home/$имя_пользователя. Например: paul@ubu606:~$ ls /home geert annik sandra paul tom

Помимо выделения каждому пользователю (или каждому проекту или группе) места для хранения персональных данных в рамках домашней директории, в рамках этой же директории выделяется место для хранения данных профиля пользователя. Типичный профиль пользователя Unix содержит множество скрытых файлов (файлов, имена которых начинаются с точки). Скрытые файлы пользовательского профиля Unix содержат параметры, установленные для данного пользователя. paul@ubu606:~$ ls -d /home/paul/.* /home/paul/. /home/paul/.bash_profile /home/paul/.ssh /home/paul/.. /home/paul/.bashrc /home/paul/.viminfo /home/paul/.bash_history /home/paul/.lesshst

Директория /root

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

Директория /srv

Вы можете использовать директорию /srv для хранения данных, которые обрабатываются вашей системой. Спецификация FHS позволяет хранить в этой директории данные cvs, rsync, ftp и www. Кроме того, спецификация FHS подтверждает возможность использования таких административных имен для поддиректорий, как /srv/project55/ftp и /srv/sales/www.

В системах Sun Solaris (или Oracle Solaris) для этой цели используется директория /export .

Директория /media

Директория /media служит точкой монтирования для таких устройств для работы со съемными носителями, как приводы CD-ROM, цифровые камеры, а также различные устройства, подключаемые по шине USB. Так как директория /media является достаточно новой в мире систем Unix, вы с высокой вероятностью можете встретить системы, не использующие данную директорию. К примеру, несмотря на то, что система Solaris 9 не имеет рассматриваемой директории, эта директория присутствует в системе Solaris 10. Большинство дистрибутивов Linux на сегодняшний день монтирует все съемные носители в директорию /media . paul@debian5:~$ ls /media/ cdrom cdrom0 usbdisk

Директория /mnt

Директория /mnt должна быть пустой и использоваться исключительно для создания временных точек монтирования файловых систем (в соответствии со спецификацией FHS).

Администраторы систем Unix и Linux обычно создают в данной директории множество поддиректорий, таких, как /mnt/something/. Вы, скорее всего, столкнетесь с системами с более чем одной директорией, созданной и/или смонтированной в рамках директории /mnt для работы с различными локальными и удаленными файловыми системами.

Директория /tmp

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

Директории в оперативной памяти

Директория /dev

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

Стандартные физические устройства

Стандартные устройства, такие, как жесткие диски, представлены файлами устройств в директории /dev . В примере ниже приведен список файлов устройств SATA ноутбука, а также устройств IDE настольного компьютера. (Подробное описание назначения этих файлов устройств будет приведено ниже.) # # Устройства SATA или SCSI или USB # paul@laika:~$ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1 /dev/sdb2 # # Устройства IDE или ATAPI # paul@barry:~$ ls /dev/hd* /dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1 /dev/hdb2 /dev/hdc

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

Файлы устройств /dev/tty и /dev/pts

К примеру, файл устройства /dev/tty1 представляет терминал или консоль, соединенную с системой. (Не стоит ломать голову над точными значениями терминов "терминал" или "консоль", так как в данном случае имеется в виду интерфейс командной строки системы.) При вводе команд в эмуляторе терминала, поставляемом в составе такого графического окружения рабочего стола, как Gnome или KDE, ваш терминал будет представлен файлом устройства /dev/pts/1 (вместо числа 1 может использоваться другое число).

Файл устройства /dev/null

В Linux вы можете обнаружить и другие файлы специальных устройств, такие, как файл устройства /dev/null , которое может рассматриваться как черная дыра; хотя соответствующее устройство и имеет неограниченную емкость, после записи из него не могут быть прочитаны никакие данные. Говоря техническим языком, любые записанные на представленное файлом /dev/null устройство данные будут просто отброшены. Представленное файлом /dev/null устройство может быть использовано для отбрасывания ненужного вывода различных команд. Помните о том, что представленное файлом /dev/null устройство не является удачным местом для хранения ваших резервных копий данных;-) .

Директория /proc и взаимодействие с ядром ОС

Директория /proc является другой специальной директорией, которая содержит файлы, кажущиеся на первый взгляд обычными файлами, но не занимающие места на диске. На самом деле содержимое данной директории является представлением ядра ОС, а точнее, используемых ядром ОС структур данных и предназначено для непосредственного взаимодействия с ядром ОС. В директорию /proc монтируется специальная файловая система procfs. paul@RHELv4u4:~$ mount -t proc none on /proc type proc (rw)

При выводе содержимого директории /proc можно обнаружить множество директорий с именами, представленными числовыми значениями (в любой системе Unix), а также некоторые интересные файлы (в Linux). mul@laika:~$ ls /proc 1 2339 4724 5418 6587 7201 cmdline mounts 10175 2523 4729 5421 6596 7204 cpuinfo mtrr 10211 2783 4741 5658 6599 7206 crypto net 10239 2975 4873 5661 6638 7214 devices pagetypeinfo 141 29775 4874 5665 6652 7216 diskstats partitions 15045 29792 4878 5927 6719 7218 dma sched_debug 1519 2997 4879 6 6736 7223 driver scsi 1548 3 4881 6032 6737 7224 execdomains self 1551 30228 4882 6033 6755 7227 fb slabinfo 1554 3069 5 6145 6762 7260 filesystems stat 1557 31422 5073 6298 6774 7267 fs swaps 1606 3149 5147 6414 6816 7275 ide sys 180 31507 5203 6418 6991 7282 interrupts sysrq-trigger 181 3189 5206 6419 6993 7298 iomem sysvipc 182 3193 5228 6420 6996 7319 ioports timer_list 18898 3246 5272 6421 7157 7330 irq timer_stats 19799 3248 5291 6422 7163 7345 kallsyms tty 19803 3253 5294 6423 7164 7513 kcore uptime 19804 3372 5356 6424 7171 7525 key-users version 1987 4 5370 6425 7175 7529 kmsg version_signature 1989 42 5379 6426 7188 9964 loadavg vmcore 2 45 5380 6430 7189 acpi locks vmnet 20845 4542 5412 6450 7191 asound meminfo vmstat 221 46 5414 6551 7192 buddyinfo misc zoneinfo 2338 4704 5416 6568 7199 bus modules

Давайте обратим внимание на свойства файлов из директории /proc . При рассмотрении даты и времени изменения данных файлов можно отметить, что эти параметры соответствуют текущим значениями даты и времени, из чего можно сделать вывод, что содержимое данных файлов постоянно обновляется (для предоставления доступа к актуальному содержимому используемых ядром ОС структур данных). paul@RHELv4u4:~$ date Пн янв 29 18:06:32 EST 2007 paul@RHELv4u4:~$ ls -al /proc/cpuinfo -r--r--r-- 1 root root 0 ноя 29 18:06 /proc/cpuinfo paul@RHELv4u4:~$ paul@RHELv4u4:~$ ...через некоторое время... paul@RHELv4u4:~$ paul@RHELv4u4:~$ date Пн янв 29 18:10:00 EST 2007 paul@RHELv4u4:~$ ls -al /proc/cpuinfo -r--r--r-- 1 root root 0 ноя 29 18:10 /proc/cpuinfo

Размер большинства файлов из директории /proc равен 0 байт, но при этом файлы из данной директории содержат данные, а иногда большие объемы данных. Вы можете ознакомиться с этими данными, использовав команду cat по отношению к таким файлам, как файл /proc/cpuinfo , который содержит информацию о центральном процессоре. paul@RHELv4u4:~$ file /proc/cpuinfo /proc/cpuinfo: empty paul@RHELv4u4:~$ cat /proc/cpuinfo processor: 0 vendor_id: AuthenticAMD cpu family: 15 model: 43 model name: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ stepping: 1 cpu MHz: 2398.628 cache size: 512 KB fdiv_bug: no hlt_bug: no f00f_bug: no coma_bug: no fpu: yes fpu_exception: yes cpuid level: 1 wp: yes flags: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge... bogomips: 4803.54

Для сравнения ниже приведено содержимое файла /proc/cpuinfo системы Sun Sunblade 1000... paul@pasha:~$ cat /proc/cpuinfo cpu: TI UltraSparc III (Cheetah) fpu: UltraSparc III integrated FPU promlib: Version 3 Revision 2 prom: 4.2.2 type: sun4u ncpus probed: 2 ncpus active: 2 Cpu0Bogo: 498.68 Cpu0ClkTck: 000000002cb41780 Cpu1Bogo: 498.68 Cpu1ClkTck: 000000002cb41780 MMU Type: Cheetah State: CPU0: online CPU1: online

Большая часть файлов из директории /proc предназначена исключительно для чтения, причем для чтения некоторых из них требуются привилегии пользователя root; в некоторые файлы могут записываться данные, причем в директории /proc/sys таких файлов большинство. Давайте поговорим о некоторых файлах из директории /proc.

Файл /proc/interrupts

В системе архитектуры x86 в файле /proc/interrupts содержится информация о запросах прерываний. paul@RHELv4u4:~$ cat /proc/interrupts CPU0 0: 13876877 IO-APIC-edge timer 1: 15 IO-APIC-edge i8042 8: 1 IO-APIC-edge rtc 9: 0 IO-APIC-level acpi 12: 67 IO-APIC-edge i8042 14: 128 IO-APIC-edge ide0 15: 124320 IO-APIC-edge ide1 169: 111993 IO-APIC-level ioc0 177: 2428 IO-APIC-level eth0 NMI: 0 LOC: 13878037 ERR: 0 MIS: 0

При использовании машины с двумя центральными процессорами данный файл выглядит следующим образом. paul@laika:~$ cat /proc/interrupts CPU0 CPU1 0: 860013 0 IO-APIC-edge timer 1: 4533 0 IO-APIC-edge i8042 7: 0 0 IO-APIC-edge parport0 8: 6588227 0 IO-APIC-edge rtc 10: 2314 0 IO-APIC-fasteoi acpi 12: 133 0 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge libata 15: 72269 0 IO-APIC-edge libata 18: 1 0 IO-APIC-fasteoi yenta 19: 115036 0 IO-APIC-fasteoi eth0 20: 126871 0 IO-APIC-fasteoi libata, ohci1394 21: 30204 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2 22: 1334 0 IO-APIC-fasteoi saa7133, saa7133 24: 234739 0 IO-APIC-fasteoi nvidia NMI: 72 42 LOC: 860000 859994 ERR: 0

Файл /proc/kcore

Физическая память представлена файлом /proc/kcore . Не пытайтесь использовать команду cat по отношению к этому файлу; вместо этого при необходимости исследования содержимого оперативной памяти используйте отладчик. Размер файла /proc/kcore совпадает с объемом вашей оперативной памяти плюс четыре байта. paul@laika:~$ ls -lh /proc/kcore -r-------- 1 root root 2.0G 2007-01-30 08:57 /proc/kcore paul@laika:~$

Директория /sys для работы с системой горячего подключения устройств ядра Linux 2.6

Директория /sys была создана в процессе разработки версии 2.6 ядра Linux. С момента выпуска версии 2.6 ядро Linux использует файловую систему sysfs для реализации механизма горячего подключения устройств, использующих шины usb и IEEE 1394 (FireWire). Обратитесь к страницам руководств udev(8) (данная подсистема пришла на смену подсистеме devfs) и hotplug(8) для получения дополнительной информации (или посетите ресурс http://linux-hotplug.sourceforge.net/).

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

Директория системных ресурсов Unix /usr

Несмотря на то, что имя директории /usr напоминает слово user (пользователь), не следует забывать о том, что на самом деле оно расшифровывается как Unix System Resources (директория системных ресурсов Unix). Иерархия поддиректорий директории /usr должна содержать разделяемые данные приложений, доступные только для чтения. Некоторые системные администраторы осуществляют монтирование файловой системы /usr в режиме только для чтения. В этом случае данная директория должна быть расположена на отдельном разделе жесткого диска или на разделяемом ресурсе NFS.

Директория /usr/bin

Директория /usr/bin содержит множество реализаций команд. paul@deb508:~$ ls /usr/bin | wc -l 1395

(В системе Solaris директория /bin является символьной ссылкой на директорию /usr/bin .)

Директория /usr/include

Директория /usr/include содержит общедоступные заголовочные файлы для языка программирования C. paul@ubu1010:~$ ls /usr/include/ aalib.h expat_config.h math.h search.h af_vfs.h expat_external.h mcheck.h semaphore.h aio.h expat.h memory.h setjmp.h AL fcntl.h menu.h sgtty.h aliases.h features.h mntent.h shadow.h ...

Директория /usr/lib

Директория /usr/lib содержит разделяемые библиотеки, которые не используются непосредственно пользователями или сценариями. paul@deb508:~$ ls /usr/lib | head -7 4Suite ao apt arj aspell avahi bonobo

Директория /usr/local

Директория /usr/local может использоваться системным администратором для локальной установки программного обеспечения. paul@deb508:~$ ls /usr/local/ bin etc games include lib man sbin share src paul@deb508:~$ du -sh /usr/local/ 128K /usr/local/

Директория /usr/share

Директория /usr/share содержит независимые от архитектуры данные. Как вы можете заметить, данная директория имеет значительный размер. paul@deb508:~$ ls /usr/share/ | wc -l 263 paul@deb508:~$ du -sh /usr/share/ 1.3G /usr/share/

Обычно данная директория содержит поддиректорию /usr/share/man , предназначенную для хранения файлов страниц руководств. paul@deb508:~$ ls /usr/share/man cs fr hu it.UTF-8 man2 man6 pl.ISO8859-2 sv de fr.ISO8859-1 id ja man3 man7 pl.UTF-8 tr es fr.UTF-8 it ko man4 man8 pt_BR zh_CN fi gl it.ISO8859-1 man1 man5 pl ru zh_TW

Также данная директория содержит поддиректорию /usr/share/games , предназначенную для хранения всех статических данных игр (таким образом, в данной директории не могут находиться файлы со списками рекордов или журналами игрового процесса). paul@ubu1010:~$ ls /usr/share/games/ openttd wesnoth

Директория /usr/src

Директория /usr/src является рекомендуемой директорией для хранения файлов исходного кода ядра ОС. paul@deb508:~$ ls -l /usr/src/ итого 12 drwxr-xr-x 4 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-686 drwxr-xr-x 18 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-common drwxr-xr-x 3 root root 4096 2009-10-28 16:01 linux-kbuild-2.6.26

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

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

Директория /var/log

Директория /var/log выполняет функции центрального хранилища всех файлов журналов. $ 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

Файл /var/log/messages

Стандартным файлом, к которому следует обратиться в первую очередь при диагностике дистрибутива от компании Red Hat (и производных дистрибутивов), является файл /var/log/messages . По умолчанию данный файл должен содержать информацию о событиях, которые происходят в рамках системы. Файл, выполняющий аналогичные функции в дистрибутивах Debian и Ubuntu, носит имя /var/log/syslog . # 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: removed all generated mount points Jul 30 05:14:01 fstab-sync: added mount point /media/cdrom for... Jul 30 05:14:01 fstab-sync: added mount point /media/floppy for... Jul 30 05:16:46 sshd(pam_unix): session opened for user paul by... Jul 30 06:06:37 su(pam_unix): session opened for user root by paul

Директория /var/cache

Директория /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

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

Директория /var/lib

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

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

Другие директории /var/...

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

Практическое задание: дерево директорий Linux

Корректная процедура выполнения практического задания: дерево директорий Linux

1. Существует ли файл /bin/cat ? Как насчет файлов /bin/dd и /bin/echo . Какого типа данные файлы?

Ls /bin/cat ; file /bin/cat ls /bin/dd ; file /bin/dd ls /bin/echo ; file /bin/echo

2. Каков общий объем файлов ядра Linux (vmlinu*) в директории /boot?

Ls -lh /boot/vm*

3. Создайте директорию ~/test. После этого выполните следующие команды: cd ~/test dd if=/dev/zero of=zeroes.txt count=1 bs=100 od zeroes.txt

Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/zero в файл ~/test/zeroes.txt. Какие пояснения вы можете дать относительно возможностей специального файла /dev/zero ?

Файл /dev/zero является специальным файлом устройства Linux. Он может рассматриваться как источник нулевых байт. Вы не можете записать какие-либо данные в файл /dev/zero , но вы можете читать нулевые байты из него.

4. А теперь выполните следующую команду: dd if=/dev/random of=random.txt count=1 bs=100 ; od random.txt

Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/random в файл ~/test/random.txt. Какие пояснения вы можете дать относительно возможностей специального файла /dev/random ?

Файл /dev/random выступает в качестве генератора случайных чисел вашей машины, работающей под управлением Linux.

5. Выполните две следующие команды и обратите внимание на первый символ вывода каждой из команд. ls -l /dev/sd* /dev/hd* ls -l /dev/tty* /dev/input/mou*

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

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

6. Используйте команду cat для вывода содержимого файлов /etc/hosts и /etc/resolv.conf . Что вы думаете по поводу предназначения данных файлов?

Файл /etc/hosts содержит имена узлов с соответствующими им IP-адресами Файл /etc/resolv.conf должен содержать IP-адреса серверов имен DNS.

7. Хранятся ли какие-нибудь файлы в директории /etc/skel/ ? Не забудьте проверить наличие скрытых файлов.

Выполните команду "ls -al /etc/skel/". Да, в данной директории должны храниться скрытые файлы.

8. Выведите содержимое файла /proc/cpuinfo . Машину какой архитектуры вы используете для работы с Linux?

Данный файл должен содержать как минимум одну строку с названием модели центрального процессора производства компании Intel или какой-либо другой компании.

9. Выведите содержимое файла /proc/interrupts . Каков размер этого файла? Где хранится данный файл?

Размер файла равен нулю байт, но при этом файл содержит данные. Он не хранится где-либо на диске, так как в директорию /proc монтируется виртуальная файловая система, которая позволяет взаимодействовать с ядром ОС. (Ответ "файл хранится в оперативной памяти" также является верным...)

10. Можете ли вы перейти в директорию /root ? Есть ли в этой директории файлы (в том числе скрытые)?

Попытайтесь выполнить команду "cd /root". Директория /root не доступна для чтения обычными пользователями в большинстве современных дистрибутивов Linux.

11. Существуют ли бинарные файлы ifconfig, fdisk, parted, shutdown и grup-install в директории /sbin ? По какой причине эти бинарные файлы размещены в директории /sbin , а не в директории /bin ?

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

12. Является ли /var/bin файлом или директорией? Как насчет /var/spool ?

По обоим путям расположены директории.

13. Откройте два эмулятора терминала (с помощью сочетания клавиш Ctrl+Shift+T в gnome-terminal) или терминала (с помощью сочетания клавиш Ctrl+Alt+F1, Ctrl+Alt+F2, ...) и выполните команду who am i в обоих. После этого попытайтесь передать слово из одного терминала в другой.

Терминал: tty-terminal: echo Hello > /dev/tty1 Эмулятор терминала: pts-terminal: echo Hello > /dev/pts/1

14. Прочитайте страницу руководства random и попытайтесь на основе полученной информации объяснить разницу между специальными файлами /dev/random и /dev/urandom .

Файловая система Linux представляет собой четкую структуру каталогов и файлов. В этой статье рассмотрим краткое назначение каждого из каталогов.

Файловые системы Linux содержат множество каталогов, большинство из которых определяются стандартом FHS(Filesystem Hierarchy Standard).

Назваие статьи состоит из терминов "каталог", "директория" и "папка". Рассмотрим их.

Каталог или директория (англ. directory - директория) - объект в файловой системе, упрощающий организацию файлов.

Папка (англ. folder) - этот термин используется для представления каталогов в графическом пользовательском интерфейсе.

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

Общая структура файловой системы ОС Linux

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

/ - корневой каталог

Главный каталог, в нем хранится все, что есть на вашей ОС Linux. Все разделы Linux хранятся в виде другого подкаталога в корневом каталоге /.

/bin - основные бинарные файлы (программы)

Содержит основные двоичные (бинарные) системные программы (модули), утилиты (ls, cp и т.п.) и командные оболочки (bash и т.п.), которые должны обеспечить минимальный уровень работоспособности системы в однопользовательском режиме. Размещение этих файлов в каталоге /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.

/boot - файлы для загрузки ОС

Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).

/cdrom – точка монтирования для CD-дисков

Данный каталог не является частью стандарта FHS, содержится в Ubuntu и вышедших из него дистрибутивах. Используется как место для монтируования CD-ROM дисков.

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

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

/etc - конфигурационные файлы

Содержит основные конфигурационные файлы операционной системы и различных программ.

/home - домашние каталоги пользователей

Содержит домашние каталоги пользователей. По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя mara, то у вас есть домашний каталог, который находится в /home/mara и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в своем домашнем каталоге.

/lib - основные библиотеки

Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.

/lib64 - 64-битные основные библиотеки

Этот каталог присуствует в основном на 64-битных системах, содержит набор библиотек и компонентов компилятора языка С для 64-битных программ.

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

Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в каталоге lost+found, их можно попытаться восстановить.

/media - точка для автоматического монтирования

Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.

/mnt - точка для ручного монтирования

Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.

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

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

/proc – файлы ядра и процессов

В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.

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

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

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

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

/sbin - бинарные файлы (программы) для администрирования системы

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

/selinux – виртуальная файловая система SELinux

В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается каталог с файлами /selinux.

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

Этот каталог присуствует не во всех дистрибутивах, содержит "данные для сервисов, предоставляемых системой" (например сервер Apache может хранить файлы вашего сайта в этом каталоге). В большинстве случаев директория пуста.

/sys - виртуальная файловая система sysfs

Этот каталог появился с выходом ядра версии 2.6 и в него примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.

Описание вложеных каталогов:

/sys/block - содержит директории всех блочных устройств, присутствующих на данный момент в системе.

/sys/bus - содержит список шин, определенных в ядре Linux (eisa, pci и т.д.).

/sys/class - содержит список сгруппированных устройств по классам (printer, scsi-devices и т.д.).

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

Временные файлы, обычно удаляются при перезагрузке системы. Является аналогом C:/Windows/Temp в ОС Windows. Все пользователи имеют права чтения и записи в этом каталоге.

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

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

Описание вложеных каталогов:

/usr/bin - исполняемые файлы для всех учетных записей.

/usr/games - каталог для компьютерных игр в системе.

/usr/include - файлы заголовков, предназначенные для компиляции С-программ.

/usr/lib - системные библиотеки и вспомогательные файлы, расположенные в директории /usr.

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

/usr/local/bin - локальные исполняемые файлы.

/usr/local/etc - локальные системные команды и файлы конфигурации.

/usr/local/lib - локальные вспомогательные файлы.

/usr/local/sbin - локальные служебные системные команды.

/usr/local/src - исходные коды программ каталогов /usr/local/*

/usr/man - страницы интерактивной документации.

/usr/sbin - менее важные команды системного администрирования.

/usr/share - общие данные установленных программ (доступен только для чтения).

/usr/share/man - страницы интерактивной документации.

/usr/share/icons - иконки системы.

/usr/share/doc - справочная документация.

/usr/src - исходные коды нелокальных программных пакетов (например, здесь располагаются исходные кода ядра).

/var - каталог для часто меняющихся данных

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

/var/adm - журнальные файлы, записи об инсталляции системы, административные компоненты.

/var/cache - все кэши для различных программ.

/var/games - файлы с игровыми достижениями.

/var/log - cистемные журнальные файлы (log-файлы).

/var/lock - лежат lock-файлы, указывающие на занятость некоторого ресурса.

/var/lib - изменяемые программами в процессе работы (например, базы данных, метаданные и др.).

/var/spool - буферные каталоги (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т.д.).

/var/tmp - каталог для временного хранения файлов.

/var/www - размещаются Web-страницы для сервера Apache.

Посмотреть структуру файловой системы можно используя команду ls -la. Ниже приведен пример вывода команды для дистрибутива OpenSUSE.

# ls -la total 260 drwxr-xr-x 24 root root 4096 Aug 30 2013 . drwxr-xr-x 24 root root 4096 Aug 30 2013 .. drwxr-xr-x 2 root root 4096 Aug 8 2012 .config -rw-r--r-- 1 root root 149519 Aug 30 2013 .readahead drwxr-xr-x 2 root root 4096 Aug 8 2012 bin drwxr-xr-x 3 root root 4096 Aug 8 2012 boot drwxr-xr-x 18 root root 3340 May 16 16:29 dev drwxr-xr-x 122 root root 12288 Jun 27 2013 etc drwxr-xr-x 4 root root 4096 Sep 21 2012 home drwxr-xr-x 16 root root 4096 Aug 23 2012 lib drwxr-xr-x 10 root root 12288 Aug 23 2012 lib64 drwx------ 2 root root 16384 Aug 8 2012 lost+found drwxr-xr-x 2 root root 40 Dec 11 2013 media drwxr-xr-x 2 root root 4096 Oct 25 2011 mnt drwxr-xr-x 3 root root 4096 Aug 23 2012 opt dr-xr-xr-x 194 root root 0 Dec 11 2013 proc drwx------ 31 root root 4096 Jun 10 14:38 root drwxr-xr-x 23 root root 780 Jul 9 17:39 run drwxr-xr-x 3 root root 12288 Aug 8 2012 sbin drwxr-xr-x 2 root root 4096 Oct 25 2011 selinux drwxr-xr-x 6 1004 users 4096 Sep 21 2012 srv drwxr-xr-x 12 root root 0 Dec 11 2013 sys drwxrwxrwt 95 root root 4096 Jul 9 17:39 tmp drwxr-xr-x 13 root root 4096 Nov 10 2011 usr drwxr-xr-x 16 root root 4096 Aug 9 2012 var

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

Каждый новый пользователь Linux после установки сталкивается с подобными вопросами: «А что это за папки со странными названиями вроде dev, etc, sys, mnt, opt, bin, var и т.д.? Зачем они мне? Может, их удалить?», «Где тут Мой Компьютер?», «А Мои Документы куда делись?», «Куда установилась моя программа?». Итак, давайте разберемся в каждом вопросе по-порядку. Для начала нужно уяснить, что Linux имеет четкую структуру расположения директорий и файлов, и удалять их, даже если они пустые, совершенно не стоит. Рассмотрим назначение каждой из директорий.

/ - корневой раздел.
/bin - директория для хранения основного набора команд ОС (Операционной Системы).
/boot - директория для хранения данных, необходимых для загрузки ОС, здесь располагаются, например, файлы ядра, загрузчик GRUB или Lilo.
/dev - директория содержит файлы устройств, подключенных к ОС.
/etc - в этой директории располагается основная часть конфигурационных файлов ОС и программ.
/home - директория для хранения личной информации пользователей.
/home/user - домашняя папка пользователя user.
/lost+found - сюда сбрасываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Например, при удалении файла из директории произошел сбой (аварийное отключение питания), тогда в системе останется потерянный inod, который хоть и указывает на корректный файл, но этот файл не содержится ни в одной из директорий. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов приходится на fsck. Он находит inod, на которые нет ссылок, и создает на них ссылки в lost+found . После этого пользователь сможет просмотреть файлы и при необходимости переместить их куда ему надо, вернув нужные имена.
/lib - директория для хранения системных библиотек, необходимых для работы программ из директорий /bin и /sbin , а также самой ОС вцелом.
/media - директория, используемая для автоматического или ручного монтирования различных устройств: USB-накопителей, CD-ROM, разделов HDD и т.д. При этом на рабочем столе появляются соответствующие иконки данных устройств.
/mnt - обычно эта директория используется для ручного подключения устройств. В эту директориюкомандой mount монтируются различные устройства: USB-накопители, CD-ROM и т.д. Но в этом случае на рабочий стол соответствующих автоматически иконок не выводится.
/opt - директория для размещения программ, имеющих большой размер или использующих вспомогательные пакеты.
/proc - директория, к которой примонтирована виртуальная файловая система procfs, позволяющая получить доступ к информации о системных процессах из ядра, она необходима для выполнения таких команд как ps, w, top.
/root - домашняя папка Суперпользователя.
/sbin - директория, включающая в себя основные системные программы для администрирования и настройки системы (например, ifconfig).
/srv - директория для хранения специфичных параметров окружения системы. Обычно данная директория пуста.
/sys - директория, к которой примонтирована виртуальная файловая система sysfs, добавляющая в пространство пользователя информацию о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/tmp - директория временного хранения файлов. Аналог C:/Windows/Temp в ОС Windows.
/usr - директория для хранения всех установленных пакетов программ, документации, исходного кода ядра и системы X Window. Все пользователи, кроме суперпользователя root, имеют доступ только для чтения. Может быть смонтирована по сети и быть общей для нескольких машин.
/usr/bin - директория расположения дополнительных программ для всех учетных записей.
/usr/include - здесь располагаются заголовочные файлы C++.
/usr/games - директория для размещения доступных игр в системе.
/usr/lib - здесь хранятся системные библиотеки для программ, расположенных в директории /usr .
/usr/local - по стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине. Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (например, Ubuntu хранит в /usr «родные» установленные пакеты, а в /usr/local находятся пакеты, собранные из исходников).
/usr/sbin - содержит дополнительные системные программы.
/usr/share - содержит общие данные установленных программ.
/usr/share/icons - содержит все иконки системы.
/usr/share/docs - содержит файлы справки для программ.
/usr/src - расположение исходных кодов (например, ядра).
/var - хранение часто изменяющихся данных. Например, журналов ОС, системных log-файлов, cache-файлов и т.д.
/var/cache - директория для хранения кэшей различных программ.
/var/games - хранение файлов игровых достижений (рекордов).
/var/lib - хранение постоянных данных, изменяемых программами в процессе работы.
/var/lock - здесь располагаются lock-файлы, указывающие на занятость того или иного ресурса.
/var/log - хранение всех log-файлов.
/var/spool - расположение задач, ожидающих обработки (например, очередь печати, непрочитанные письма, задачи cron и т.д.).
/var/www - используется для размещения веб-страниц и администрирования сайтов.

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

Введение в файловую систему

Операционная система (далее - ОС) Linux поддерживает множество файловых систем , в настоящее время наиболее широко используются: ext2, ext3,ext4, reiserfs . Так же, современные ОС Linux совместимы с файловыми системами (ФС далее), используемыми ОС Windows, такими как NTFS и FAT32 , но использование данных ФС в Linux крайне не желательно по причине того, что данные ФС разрабатывались под ОС Windows и поддержка Windows-разделов ядром Linux реализована с помощью сторонних утилит/драйверов/модулей, что накладывает некоторые ограничения (например, согласно проекту Linux-NTFS на момент написания статьи на разделах с NTFS поддерживается практически только чтение (запись - лишь в существующие файлы без изменения их размера), так же ОС Linux не имеет возможности разграничивать права доступа к файлам на разделах NTFS. Данная ситуация со временем может поменяться.

Базовые понятия

Начну с общей структуры файловой системы . ФС Linux/UNIX физически представляет собой пространство раздела диска разбитое на блоки фиксированного размера, кратные размеру сектора - 1024, 2048, 4096 или 8120 байт. Размер блока указывается при создании файловой системы.

Управлением обмена данными между ядром/приложениями и собственно байтами на диске занимается 2 базовых технологии, называемые виртуальная файловая система (VFS) и драйверы файловых систем . Виртуальная файловая система - это часть ядра linux, которая является неким абстрактным слоем (интерфейсам взаимодействия, если хотите) между ядром и конкретной реализацией файловой системы (ext2, fat32...). Данная технология позволяет ядру и приложениям взаимодействовать с файловой системой не учитывая подробностей работы конкретной файловой системы и управлять файловыми операциями с помощью типовых команд - прозрачно. Часто, VFS называют виртуальный коммутатор файловых систем. Виртуальная файловая система так же осуществляет стыковку блочных устройств с имеющимися файловыми системами.

Список поддерживаемых Вашим ядром Linux файловых систем можно увидеть в файле /proc/filesystems .

Структура каталогов и другие базовые понятия

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

Данная схема отображает то, что у одного объекта файловой системы (файла) может быть несколько путей. Грубо говоря, несколько файлов в структуре каталогов Linux могут быть физически одним файлом на диске. Или же другими словами, 1 физический файл на диске может иметь несколько имен (путей). Это достигается тем, что в файловой системе каждый файл идентифицируется уникальным номером , называемым Inode (инод = Индексный дескриптор ).

Отсюда можно сделать вывод, что структура файловой системы отчасти иерархична. Или лучше сказать - "перекрестно-иерархическая", потому что дерево иерархии за счет того, что один объект может иметь несколько путей, может пересекаться.

В файловой структуре Linux имеется один корневой раздел - / (он же root , корень ). Все разделы жесткого диска (если их несколько) представляют собой структуру подкаталогов, "примонтированых" к определенным каталогам, схематично это можно представить следующим образом:

/- |-/etc-|-/etc/X11-|-/etc/X11/xinit.d | | |-... | |-files | |-... |-/opt |-/home <- |-/user1-|-/user1/Desktop # примонтированный раздел ext3, | | |-/user1/Documents # содержащий свое дерево каталогов | | |-... # (/home - точка монтирования) | |-/user2 | |-.... |-/usr |-/var

Операция монтирования служит для того, чтобы сделать доступной файловую систему, расположенную на каком-либо блочном устройстве. Суть операции монтирования заключается в том, что ядро ассоциирует некоторый каталог (называемый точкой монтирования) с устройством, содержащем файловую систему и драйвером файловой системы. Для этого оно передает ссылку на блочное устройство - драйверу файловой системы, и в случае, если драйвер успешно проидентифицировал эту файловую систему, ядро заносит в специальную таблицу монтирования информацию о том, что все файлы и каталоги, чей полный путь начинается с указанной точки монтирования, обслуживаются соответствующим драйвером файловой системы и расположены на указанном блочном устройстве. Посмотреть таблицу примонтированных файловых систем можно через файл /proc/mounts .

Примечание. Вообще говоря, привязываться к блочному устройству в данном случае не обязательно. Устройство, которое монтируется может быть не только блочным. Может быть, например, сетевым (если монтируется NFS или SMB\CIFS).

Посмотреть сколько файл имеет ссылок и инод файла можно командой:

$ ls -li 193 drwxr-xr-x 1 mc-sim root 368 Mar 30 2008 bin 1 drwxr-xr-x 1 mc-sim root 0 Jan 1 1970 dev 197 lrwxrwxrwx 1 mc-sim root 7 Mar 30 2008 etc -> tmp/etc ....

в приведенном примере первый столбец (значения 193,1,197) есть инод , а третий столбец (значения 1) есть количество ссылок на файл (читаем: путей файла ).

Инод , как уже говорилось, уникален в пределах определенной файловой системы и содержит следующую информацию :

  • о владельце объекта ФС
  • последнем времени доступа
  • размере объекта ФС
  • указании файл это или каталог
  • права доступа
Структура и описание каталогов Linux
. ссылка на текущий каталог. Данный элемент есть в каждом каталоге файловой структуры.
.. ссылка на родительский каталог. Данный элемент есть в каждом каталоге файловой структуры. (в корне - / данный элемент указывает на саму корневую систему)
/ корневой каталог ФС, сюда "завязаны" все остальные подкаталоги первого уровня
/bin/ Бинарные программы, основные программы для работы в системе: командные оболочки, файловые утилиты и.т.д.
/boot/ статичные файлы загрузчика (образ ядра, файлы GRUB, LILO)
|-- /grub/
|-- /lilo/ Каталог конфигурационных файлов
| config-kern_ver файл текущей конфигурации ядра
| initrd.img-kern_ver загрузочный образ инициализации initrd
| vmlinuz-kern_ver образ ядра Linux
/dev/ каталог, содержащий файлы устройств.
В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX-подобных операционных систем
|-- /pts/ фиктивная файловая система, представляющая собой файловую структуру, которая отражает псевдотерминалы пользователей вошедших в систему
| |-- 0 устройство псевдотерминала pts/0
| |-- 1 устройство псевдотерминала pts/1
| --- n устройство псевдотерминала pts/n
|-- null т.н. "черная дыра" или "урна для битов". Вся информация, отправляемая на данное устройства - пропадает/уничтожается.
--- zero "генератор нулей"
/etc/ Системные конфигурационные файлы, стартовые сценарии, конфигурационные файлы графической системы и различных приложений. Из данного каталога хотелось бы выделить следующие файлы:
|-- /default/ содержит системные Файлы конфигураций в дистрибутивах Debian (аналог /etc/sysconfig/ в RedHat)
|-- /logrotate.d/ директория конфигурационных файлов демона автоматической обработки логов;
| |-- apache
| |-- squid конфигурация логирования apache
| |-- syslog конфигурация логирования системных логов
| --- ...
|-- /pam.d/ каталог содержит файлы конфигурации PAM (указывают методы аутентификации в приложениях, использующих PAM)
|-- /ppp/ директория содержит конфигурации PPP-соединений:
| |-- options содержит общую для всех PPP-соединений конфигурацию;
| |-- options.* конфигурация конкретно взятого соединения (например модемное options.ttyS1)
| |-- ip-up скрипт выполняемый при/для соединения (демоном pppd);
| --- ip-down скрипт выполняемый при/для разъединении (демоном pppd).
|-- /rc.d/ директория системы (содержит сценарии инициализации)
| |-- /init.d/ содержит скрипты, для управления системными демонами (сервисами);
| --- /rcX.d/ директории уровней запуска X, содержат ссылки на скрипты в init.d;
|-- /samba/ содержит файлы конфигурации samba:
| |-- smb.conf главный конфигурационный файл SAMBA;
| |-- smbusers описывает соответствие SAMBA пользователей к системным пользователям;
| --- smbpasswd содержит хеши пользователей SAMBA, пароли устанавливаются утилитой smbpasswd.
|-- /ssh/ Каталог конфигурации демона sshd
| |-- ssh_config Конфигурационный файл ssh клиента
| --- sshd_config Конфигурационный файл ssh - сервера
|-- /sysconfig/ содержит системные Файлы конфигураций в дистрибутивах RedHat (аналог /etc/default/ в Debian)
| |-- keyboard описание текущей раскладки клавиатуры;
| |-- desktop установки графической среды (KDE,GNOME..);
| |-- network файл конфигурации сетевой подсистемы
| --- i18n конфигурация общесистемной локали (локаль отдельных пользователей может содержаться в {home}/i18n);
|-- /security/ содержит Файлы описывающие безопасность системы:
| |-- console.perms правила изменения прав доступа к устройствам, при аутентификации;
| |-- limits.conf конфигурация лимитов пользователей.
| --- network конфигурация сети;
|-- /skel/ шаблон директории пользователя (в момент создания пользователя содержимое директории пользователя копируется отсюда), своеобразный аналог каталога C:\Documents and settings\Default User\ в Windows.
|-- /xinetd.d/ директория содержит файлы конфигураций отдельных сервисов для суперсервера xinetd;
|-- /X11/ /fs/config содержит перечень каталогов со шрифтами для X;
| |-- XF86Config Файл конфигурации X (XFree86);
| --- xorg.conf Файл конфигурации X (XOrg);
|-- at.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение утилиты at
|-- at.deny
|-- cron.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение
|-- cron.deny
|-- anacrontab конфигурация задач выполняемых anacron;
|-- crontab конфигурация задач выполняемых cron;
|-- ethers Файл соответствия аппаратных MAC адресов сетевым IP адресам в сети, в случае несоответствия доступ для хоста будет закрыт;
|-- export конфигурация NFS-ресурсов доступных извне;
|-- filesystems список ФС, поддерживаемых ядром (отсюда берется ФС, если она не указана в /etc/fstab)
|-- fstab список ФС, монтирующихся автоматически при загрузке
|-- group база данных
|-- gshadow файл паролей групп пользователей
|-- hostname текущее имя машины;
|-- hosts перечень хостов и соответствующих им IP-адресов;
|-- host.allow список хостов которым вход разрешен;
|-- host.deny список хостов которым вход запрещен (для libc ver 5);
|-- host.conf указывает где и в каком порядке искать имена хостов (для libc ver 6);
|-- inittab ;
|-- inputrc конфигурация ресурсов ввода с клавиатуры;
|-- issue сообщение, выводимое при локальном подключении к системе
|-- issue.net сообщение, выводимое при удаленном подключении к системе
|-- ld.so.conf файл конфигурации, содержащий список каталогов, в которых , кроме указанных путей, компоновщик ищет в каталогах /lib и /usr/lib
|-- ld.so.cache кэш библиотечных файлов, для более быстрого поиска библиотек (своеобразный индекс)
|-- login.defs описывает поведение login и su;
|-- logrotate.conf конфигурация демона
|-- lilo.conf конфигурация boot-загрузчика LILO;
|-- man.conf конфигурация системы страниц помощи, команда man;
|-- motd сообщение, выводимое всем пользователям после ввода пароля и перед запуском интерпретатора, т.н. "сообщение дня"
|-- mtab Список текущих примонтированных ФС. Обычно, этот файл должен создаваться, как только монтируется новая файловая система.
|-- netgroup файл определяет сетевые группы, используемые для проверки прав доступа при выполнении удаленного входа.
|-- nologin наличие этого файла запрещает пользователям входить в систему с выдачей сообщения в файле;
|-- nsswitch.conf конфигурация последовательности поиска имен по различным источникам;
|-- passwd
|-- printcap Файл конфигурации принтеров;
|-- profile сценарий-профиль для интерпретатора BASH (выполняется после регистрации в системе и используется для всех пользователей системы);
|-- protocols файл описывает номера протоколов, названия и описания.
|-- resolv.conf конфигурация резолвера имён, содержит список DNS-серверов;
|-- rpc файл описывает службы RPC (соответствие имя сервера RPC, номер программы RPC и псевдонимы)
|-- services содержит сопоставления номеров портов/сокетов именам служб
|-- shadow
|-- sysctl.conf содержит команды для автоматической инициализации sysctl-параметров ядра;
|-- syslog.conf конфигурация демона системного логера (syslogd);
|-- sudoers указание на то какие пользователи и какие программы могут быть запущены с привилегиями root используя sudo.
--- xinetd.conf конфигурация суперсервера Internet (централизованное управление сокетами/портами);
/home/ {имя_юзера} каталог, содержащий подкаталоги пользователей (настройки интерфейса, личные файлы)
|-- .bashrc профиль конкретного пользователя для BASH (запускается при запуске bash или запуске копии bash);
|-- .cshrc профиль конкретного пользователя для TCSH;
|-- .bash_profile профиль конкретного пользователя для BASH (запускается при каждом входе в систему).
|-- .inputrc конфигурация ресурсы ввода с клавиатуры конкретного пользователя.
|-- .Xauthority файл авторизации для запуска X-приложений удаленно, файлы на удаленных машинах должны соответствовать;
|-- .xinitrc сценарий загрузки X сервера конкретного пользователя;
--- .plan
.project
.forward
данные файлы используются утилитой finger для вывода информации о пользователе
/lib/ Системные библиотеки, необходимые для программ и модули ядра. (В Windows библиотеки представляют собой dll модули)
/lost+found В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные.
/media/ Каталог для монтирования съемных носителей (CD, Flash)
|-- /cdrom/
/mnt/ В каталоге содержаться временные точки монтирования для устройств
/opt/ Дополнительные пакеты программ. Если программа установленная сюда больше не нужна, то достаточно удалить ее каталог без процедуры денсталляции. Сюда могут устанавливается программы не являющиеся частью дистрибутива. (например /opt/openoffice.org).
/proc/ Виртуальная ФС, хранящаяся в памяти компьютера при загруженной ОС. В данном каталоге расположены самые свежие сведения обо всех процессах, запущенных на компьютере. Содержимое каждого файла определяется в реальном времени. среди данного каталога, хотелось бы особо выделить следующие файлы и каталоги:
|-- /net/
| -- arp текущая arp-таблица
|-- /sys/kernel/
| |-- cap-bound управление дополнительными пра, как сделано в последней строке для дискеты.tr сценарий-профиль для интерпретатора BASH (выполняетсtd/tdtda name="proc"я после регистрации в системе и используется для всех пользователей системы);вами (root) (0 – root права аннулируются);
| |-- hostname текущее имя Компьютера
| |-- domainname Имя домена компьютера
| |-- osrelease версия ядра системы;
| |-- ostype тип ОС (Linux, *BSD, ...);
| --- version дата сборки ядра.
|-- cpuinfo Текущая информация о процессоре
|-- cmdline список параметров, переданных ядру при загрузке
|-- devices системные устройства
|-- dma Задействованные в данный момент DMA каналы
|-- interrupts Счетчики количества прерываний IRQ в архитектуре i386.
|-- ioports порты ввода/вывода
|-- filesystems поддерживаемые ФС
|-- loadvg информация о загруженности системы
|-- kcore содержимое физической памяти в текущий момент
|-- kmsg сообщения, выдаваемые ядром (копия syslog)
|-- mdstat отображение статистики программных RAID массивов
|-- meminfo информация о памяти
|-- modules загруженные модули ядра
|-- mounts смонтированные ФС
|-- partitions информация о разделах дисков
|-- pci Полный список всех PCI-устройств, найденных во время инициализации ядра, а также их конфигурация.
|-- swaps информация о всех своп-разделах, подключенных к системе
|-- uptime время работоспособности
|-- version версия ядра
|-- /цифровые/ каталоги, содержащие в названии наборы цифр, соответствуют GID -номеру процесса и содержат в себе информацию о работающем процессе, GIDу которого соответствует.
| |-- /fd/* содержит указатели на все, открытые процессом файлы
| |-- cmdline полную командную строку запуска процесса до тех пор, пока процесс не будет "выгружен" или не станет "зомби"
| |-- cwd символьная ссылка на текущий рабочий каталог процесса
| |-- environ содержит окружение процесса
| |-- exe содержит мягкую ссылку на бинарник процесса
| |-- limits содержит информацию о лимитах процесса (например, лимит открытых файлов, приоритет процесса и т.п.)
| |-- root мягкая ссылка на каталог пользователя root для процесса
| --- status Информация о процессе, представленная в довольно удобном для просмотра виде. Она содержит, в частности, следующие строки:
  • Имя исполняемого файла процесса в скобках;
  • Статус процесса;
  • Идентификатор процесса
  • Идентификатор родительского процесса
  • Идентификатор группы процессов процесса
  • и др.
/root/ домашний каталог пользователя root, данный каталог должен быть в корневой ФС, чтобы администратор мог войти в нее.
/sbin/ В данном каталоге содержаться основные системные бинарники, команды для системного администрирования, а также программы, выполняемые в ходе загрузки ОС. Здесь находятся элементы, запускаемые в фоновом режиме, в каком то смысле данный каталог является аналогом папки c:\Windows\system\ и c:\Windows\system32\.
--- shutdown утилита остановки системы
/srv/ данные предоставляемых сервисов от ОС
/sys/ это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. (В версии ядра ниже 2.6 не использовалась)
|-- /block/ каталог содержит подкаталоги всех блочных устройств, присутствующих в данный момент в системе.
|-- /bus/ В этом каталоге находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
--- /class/ Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
/tmp/ Временные файлы. Данный каталог аналогичен c:\Windows\temp. Обычно Linux очищает этот каталог во время загрузки.
/usr/ В данном каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
|-- /bin/ Директория дополнительных программ для всех учетных записей.
|-- /include/ Заголовочные файлы С++.
|-- /lib/ Системные библиотеки для программ, расположенных в каталоге/usr
| /local/ По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr - бюджет семьи, а /usr/local - личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся "родные" установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
| |-- /bin/
| |-- /lib/
| |-- ...
|-- /sbin/ Дополнительные системные программы.
|-- /share/ Общие данные установленных программ.
| |-- /icons/ В каталоге находятся все иконки системы.
| --- /doc/ Директория, в которой обычно находится справочная документация по установленным программам.
|-- /src/ Каталог содержит исходные коды (например, здесь располагаются исходные коды ядра).
|-- /X11R6/bin/ Х ссылка на текущий X сервер;
|-- magic.mime файлы, хранящие "магическое число". Данное число описывает тип файла для утилиты file .
--- magic
/var Здесь находятся часто меняющиеся данные (журналы операционной системы, системные log-файлы, cache-файлы и т. д.)
|-- /cache В этом месте хранятся все кэшированные данные различных программ.
|-- /lib Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
| --- /rpm/ база данных пакетного менеджера RPM
|-- /lock Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
|-- /log/ в данном каталоге лежат все лог файлы системы
| |-- wtmp (бинарный формат) содержит удачные попытки входа и выхода в систему
| |-- utmp (бинарный формат) содержит текущих вошедших пользователей в систему
| |-- lastlog (бинарный формат) содержит, когда каждый пользователь последний раз входил
| -- btmp (бинарный формат) содержит НЕ удачные попытки входа/выхода в систему
|-- /spool Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
--- /www В этом месте размещаются Web-страницы для сервера Apache.

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

На сегодня все. В следующей статье будет сделана шпаргалка по основным командам Linux.

Похожие статьи