Что такое каталог /usr в файловой системе Linux
usr не означает «пользователь»
Если вы хоть раз использовали Linux, то наверняка столкнулись с каталогом /usr.
Когда я впервые начал работать с Linux, я думал:
«А,
/usrзначит user, значит здесь что‑то, связанное с пользователями. Наверное, сюда кладут данные о пользователях».
Многие начинающие пользователи Linux делают такую же ошибку. Но давайте сразу к выводу:
/usrне предназначен для хранения данных отдельных пользователей. Домашние каталоги находятся в/home, а/usrвыполняет совсем другую роль.
В этой статье разберёмся, какая реальная сущность и назначение каталога /usr, а также как он отличается от таких каталогов, как /home, /opt и /var.
1. Суть: /usr — это не «пользовательские» данные
В современном Linux можно обобщить роль /usr так:
/usr= область, где находятся «общие» и (в большинстве случаев) только‑читаемые программы, библиотеки и данные, используемые системой и приложениями.
То есть в /usr находятся:
- исполняемые файлы ОС и приложений;
- библиотеки, которые используют эти файлы;
- общие данные: руководства, иконки, языковые файлы и т.д.
В противоположность этому, «пользовательские» файлы, такие как документы, настройки и загрузки, находятся в:
/home/имя_пользователя.
Поэтому считать /usr «папкой пользователя» — ошибка.
2. Что означает usr?
История и споры вокруг названия:
- В ранних версиях Unix в
/usrдействительно хранились домашние каталоги пользователей. - Поэтому многие видят в
usrсокращение от user. - Позднее появилось толкование Unix System Resources.
Но для современного пользователя важнее текущая роль, а не исторический смысл.
Файловая система Linux (FHS) определяет /usr как:
- область, где находятся общие данные, доступные всему миру системы;
- программы, библиотеки, руководства и прочие общие ресурсы.
Таким образом, в современном Linux важно понимать, что /usr — это «общий склад» для системных и приложенческих ресурсов.
3. Что находится в /usr?
Если открыть терминал и выполнить ls /usr, вы увидите типичные каталоги:
$ ls /usr
bin lib lib64 local sbin share include ...
Краткое описание:
/usr/bin– исполняемые файлы для обычных пользователей (например,/usr/bin/python,/usr/bin/grep)./usr/sbin– системные утилиты, обычно запускаемые root (например,/usr/sbin/sshd)./usr/lib,/usr/lib64– общие библиотеки (.so)./usr/share– архитектурно‑независимые данные: руководства (/usr/share/man), иконки, локализации./usr/include– заголовочные файлы C/C++./usr/local– место для программ, установленных вручную, а не через менеджер пакетов.
Итого, /usr – это «большой склад» системных и приложенческих ресурсов.
4. Сравнение /usr, /home, /opt и /var
Различия между этими каталогами часто путают. Давайте разберём их по ролям.
4.1 /home – настоящий «дом» пользователя
- Примеры путей:
/home/alice,/home/bob. - Содержит документы, фотографии, загрузки, проекты и пользовательские настройки (
~/.config,~/.ssh). - При переустановке ОС обычно сохраняется только
/home.
Личные данные и настройки находятся почти полностью в
/home.
4.2 /usr – «общие» ресурсы системы и приложений
- Исполняемые файлы:
/usr/bin,/usr/sbin. - Библиотеки:
/usr/lib*. - Общие данные:
/usr/share.
Это область, где находятся общие программы, библиотеки и данные, используемые всей системой.
4.3 /opt – «пакет» отдельного приложения
- Здесь размещаются сторонние коммерческие или сторонние приложения, которые не входят в репозиторий дистрибутива.
- Пример:
/opt/google/chrome,/opt/mycompany/app.
Каждый каталог в
/optобычно содержит целое приложение.
4.4 /var – «изменяемые» данные
- Журналы:
/var/log. - Кеш:
/var/cache. - Очереди, спулы:
/var/spool. - Базы данных, файлы состояния.
Это область, где находятся данные, которые часто меняются во время работы системы.
5. Почему /bin теперь часто является ссылкой на /usr/bin?
В старых документах объясняют различие между /bin и /usr/bin. Современные дистрибутивы упрощают структуру:
/bin→ символическая ссылка на/usr/bin;/sbin→ символическая ссылка на/usr/sbin.
Таким образом, в реальной системе большинство исполняемых файлов находятся в /usr/bin и /usr/sbin. Каталоги /bin и /sbin остаются лишь для совместимости с устаревшими скриптами.
6. Как не запутаться новичку
Типичные вопросы:
- «
/usrзначит user, значит я должен ставить туда свои программы?» - «А что отличает
/homeот/usr?»
Ниже несколько простых правил:
6.1 Личные скрипты и утилиты
- Храните их в
~/binили~/scripts. - Добавьте в
PATH.
mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
6.2 Приложения, которые должны быть доступны всем
- Скомпилируйте и установите в
/opt/имя_приложения. - Создайте символическую ссылку в
/usr/local/bin.
Это стандартный способ установки сторонних приложений.
/usr/local предназначен для программ, которые не устанавливаются через менеджер пакетов.
7. Итог: /usr – это «склад» системы, а не «дом» пользователя
/usrне каталог пользовательских данных.- В нём находятся общие исполняемые файлы, библиотеки, руководства и прочие ресурсы.
- Личные данные находятся в
/home/имя_пользователя. - Приложения, установленные вручную, обычно размещаются в
/optили/usr/local.
Понимание структуры файловой системы Linux позволяет быстро определить, куда поместить конкретный файл или приложение, и какие каталоги сохранять при переустановке ОС.
Комментариев нет.