FHS (англ. Filesystem Hierarchy Standard, «стандарт иерархии файловой системы») — стандарт, унифицирующий местонахождение файлов и каталогов с общим назначением в файловой системе UNIX. На данный момент большинство UNIX-подобных систем в той или иной степени следует этим правилам. Например, обычная база данных о пользователях всегда хранится в файле /etc/passwd
.
Стандартное расположение директорий:
/bin
– Основные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp)./boot
– файлы загрузчика/dev
– устройства/etc
– файлы конфигурации/home
– домашние директории/lib
– библиотеки и модули ядра/proc
– виртуальная файловая система, позволяет получить доступ к информации из ядра о системных процессах/media
– Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM /mnt
– Содержит временно монтируемые файловые системы./opt
– пакеты дополнительного программного обеспечения/root
– домашняя директория суперпользователя/run
– используется для хранения данных, которые были запущены приложениями, требующимися в процессе работы/sbin
– Основные системные программы для администрирования и настройки системы, например, init, iptables, ifconfig./srv
– Данные для сервисов, предоставляемых системой (например, www или ftp)./sys
– Содержит информацию об устройствах, драйверах, а также некоторых свойствах ядра/tmp
– временные файлы/usr
– Вторичная иерархия для данных пользователя. Содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме/var
– переменные
Утилиты:
Синтаксис: find найти где, опции, что ищем.
Пример, ищем все, что имеет имя mail
find / -name mail /usr/lib/python3/dist-packages/twisted/mail /usr/lib/byobu/mail /snap/core18/1885/var/mail /snap/core18/1885/var/spool/mail /snap/core18/1880/var/mail /snap/core18/1880/var/spool/mail /var/spool/mail /var/mail
locate очень быстро ищет файлы и каталоги по их именам. Может быть не установлен, для инсталляции в системах с apt:
apt install mlocate
Если find ищет конкретно по имени, то locate находит любое содержимое где встречается искомый запрос
locate mail ... /usr/share/doc/libmailtools-perl/README /usr/share/doc/libmailtools-perl/changelog.Debian.gz /usr/share/doc/libmailtools-perl/copyright /usr/share/doc/libmailtools-perl/examples ...
Так же ключевым отличием locate от find заключается в том, что locate не ищет во временных директориях. Еще, что и где locate не ищет, можно посмотреть в его конфигурационном файле /etc/updatedb.conf
cat /etc/updatedb.conf PRUNE_BIND_MOUNTS="yes" # PRUNENAMES=".git .bzr .hg .svn" PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot" PRUNEFS="NFS afs autofs binfmt_misc ceph cgroup cgroup2 cifs coda configfs curlftpfs debugfs devfs devpts devtmpfs ecryptfs ftpfs fuse.ceph fuse.cryfs fuse.encfs fuse.glusterfs fuse.gvfsd-fuse fuse.mfs fuse.rozofs fuse.sshfs fusectl fusesmb hugetlbfs iso9660 lustre lustre_lite mfs mqueue ncpfs nfs nfs4 ocfs ocfs2 proc pstore rpc_pipefs securityfs shfs smbfs sysfs tmpfs tracefs udev udf usbfs"
Высокая скорость работы locate, определяется тем, что утилита не ищет в файловой системе искомую сущность, а раз в день проводит индексацию, и на ее основе производит поиск. Для принудительного запуска индексации используется команда
updatedb
Посмотрим, где располагается команда ls
which ls /usr/bin/ls
Посмотрим на туже команду ls
type ls ls is aliased to `ls --color=auto'
Видим, что по умолчанию команда ls запускается с ключом --color=auto
Выводит более подробную информацию о команде
whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
Данный вывод показал не только где находится команда ls, но и к какому пакету она относится