Инструменты пользователя

Инструменты сайта


поиск_и_расположение_системных_файлов

Поиск и расположение системных файлов

FHS

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 – переменные

Поиск в файловой системе

Утилиты:

  • grep – поиск по содержимому
  • find – утилита поиска файлов по свойствам
  • locate – быстрый поиск файлов
  • which – поиск команды
  • type – вывод точной команды
  • whereis – поиск команды, исходников и мануалов

find

Синтаксис: 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

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

which

Посмотрим, где располагается команда ls

which ls
/usr/bin/ls

type

Посмотрим на туже команду ls

type ls
ls is aliased to `ls --color=auto'

Видим, что по умолчанию команда ls запускается с ключом --color=auto

whereis

Выводит более подробную информацию о команде

whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

Данный вывод показал не только где находится команда ls, но и к какому пакету она относится

поиск_и_расположение_системных_файлов.txt · Последнее изменение: 2020/12/09 12:08 — 82.204.251.18