🐧 Различия между /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin |

🐧 Различия между /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

Мануал

Обзор

Все разновидности Linux следуют определенному стандарту FHS (Filesystem Hierarchy Standard).

Linux Foundation поддерживает FHS.

В целом, все в операционной системе Linux является файлом.

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

В этом руководстве мы сначала разберемся со структурой каталогов в системах Linux.

Затем мы узнаем о назначении различных путей, таких как /bin, /sbin, /usr/bin и других.

Также отметим, что мы можем использовать такие слова, как mount и directory, подразумевая одно и то же значение, потому что точки монтирования – это каталоги, которые служат точками доступа для файлов или каталогов.

Расположение каталогов

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

Структура каталогов Linux (структура файловой системы), поясненная примерами

Существует множество каталогов и подкаталогов.

Чтобы прояснить ситуацию, давайте вкратце рассмотрим некоторые из них верхнего уровня:

  • /root – родительский каталог, доступный для root
  • /bin – здесь хранятся все типы бинарных файлов
  • /boot – важные файлы, необходимые при загрузке, такие как файлы ядра, файлы загрузчика
  • /etc – файлы конфигурации программ, обычно.conf
  • /dev – файлы доступа к устройствам, таким как терминалы
  • /opt – пакеты дополнительного программного обеспечения, устанавливаемые отдельными пользователями
  • /lib – библиотеки, необходимые для работы бинарных файлов в системе
  • /mnt – смонтированные файловые системы
  • /var – постоянно изменяющиеся данные, например, файлы логов

Файлы хранятся либо в этих каталогах, либо в их подкаталогах.

Однако в этой статье мы сосредоточимся на каталоге/bin, где хранятся бинарные файлы.

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

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

Бинарные каталоги

В целом, двоичный файл – это последовательность битов, то есть нулей и единиц, которые кодируют информацию.

Одним из наиболее распространенных типов бинарных файлов является исполняемый объект.

Мы также можем назвать его компьютерной программой.

Другие типы бинарных файлов – это архивы, изображения, аудио- и видеофайлы и т.д.

Некоторые исполняемые файлы могут быть важны для ОС, но некоторые являются дополнениями и дополнительными функциями.

В зависимости от их использования ОС хранит их в разных каталогах.

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

 /bin

Каталог /bin содержит бинарные файлы, необходимые для работы операционной системы.

Например, такие программы, как ls, cat и другие, являются необходимыми программами.

После загрузки ОС эти программы нужны нам для выполнения основных операций Linux в однопользовательском режиме.

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

Давайте посмотрим, как выглядит список директории /bin:


ls /bin
chmod           dash            df              expr            ksh             ln              mv              pwd             rmdir           stty            test            zsh
bash            cp              date            echo            hostname        launchctl       ls              pax             realpath        sh              sync            unlink
cat             csh             dd              ed              kill            link            mkdir           ps              rm              sleep           tcsh            wait4path
...

Вот некоторые типичные файлы, существующие в каталоге /bin.

/sbin

Название /sbin означает system binary.

Он отличается от /bin очень незначительно.

По большей части в каталоге /sbin хранятся бинарники, необходимые операционке для управления системой.

К двоичным файлам, хранящимся в /sbin, относятся ifconfig, fdisk, init, shutdown, systemd и другие.

Для их выполнения требуются привилегии root.

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

Давайте посмотрим фрагмент списка каталога /sbin:

ls /sbin/
dmesg  fdisk  fstyp_udf  ifconfig  init
mknod mount_ftp ping route  reboot
shutdown systemd
...

/usr/bin

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

Когда обычные пользователи устанавливают программное обеспечение в систему, бинарные файлы обычно помещаются в /usr/bin, а библиотеки – в /usr/lib.

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

По сути, обычные пользователи используют эти исполняемые программы и файлы.

Такие программы, как diff, du и scp, являются распространенными примерами бинарных файлов, помещаемых в /usr/bin.

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

which sshd
/usr/sbin/sshd
which chown
/usr/sbin/chown
which iostat
/usr/sbin/iostat

Мы видим несколько важных файлов по пути /usr/sbin.

/usr/local/bin

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

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

Некоторые дистрибутивы Linux обновляют пакеты автоматически.

Но в этом случае такие локальные двоичные файлы не будут обновляться.

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

🖧 В чем разница между curl и Wget?

Такие программы, как wget, python3 и git, являются распространенными примерами пакетов для локальных пользователей:

which wget
/usr/local/bin/wget
which python3
/usr/local/bin/python3
which git
/usr/local/bin/git

Как и ожидалось, это все пользовательские инструменты.

/usr/local/sbin

Локально установленные для системных администраторов двоичные файлы находятся по пути /usr/local/sbin.

Только права пользователя отличают его от /usr/local/bin.

В частности, пользователи, кроме системного администратора, не должны устанавливать и хранить какие-либо программы в каталоге /usr/local/bin.

Такие утилиты, как Wireshark и Nmap, являются обычными обитателями этого пути.

Давайте посмотрим пример списка директории /sbin:

ls /usr/local/sbin/
nmap            wireshark

Таким образом, каждый каталог или подкаталог /bin играет уникальную роль в схеме каталогов системы Linux.

Определения системы

При обсуждении файловых систем важно видеть иерархию файловых систем.

В системе Linux мы можем проверить подробное расположение файловых систем с помощью команды hier.

Она описывает все основные каталоги и подкаталоги по умолчанию, такие как /bin, /dev, /etc, /usr, /var и другие.

Кроме того, man-страница для hier по умолчанию поставляется со всеми дистрибутивами Linux, поскольку она определена стандартом Filesystem Hierarchy Standard:

man hier | grep -E 'bin$|sbin$|^.{7}(/bin)|^.{7}(/sbin)' -A2
/bin   This directory contains executable programs which are needed in single user
mode and to bring the system up or repair it.
/sbin  Like  /bin,  this  directory  holds commands needed to boot the system, but
which are usually not executed by normal users.
/usr/X11R6/bin
Binaries  which  belong  to the X-Window system; often, there is a symbolic
link from the more traditional /usr/bin/X11 to here.
/usr/bin
This  is the primary directory for executable programs.  Most programs exe‐
cuted by normal users which are not needed for booting or for repairing the
/usr/local/bin
Binaries for programs local to the site.
/usr/local/sbin
Locally installed programs for system administration.
/usr/sbin
This directory contains program binaries for  system  administration  which
are  not  essential  for the boot process, for mounting /usr, or for system

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

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

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

Заключение

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

В этой статье мы сначала рассмотрели расположение каталогов.

Затем мы узнали, как хранятся файлы.

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

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий