Материал из РУВИКИ — свободной энциклопедии
Домашний каталог — это личный каталог пользователя в операционной системе, где находятся его данные, настройки и т. д.
Название и расположение домашнего каталога зависит от типа операционной системы, например, в Microsoft Windows он находится в каталоге Users (в Windows XP — Documents and Settings), а в Linux — в каталоге /home, и имеет название, соответствующее имени пользователя системы.
Например,
C:\Users\Маша
для Windows
или
/home/masha
для UNIX-систем.
Система | Путь | Переменная |
---|---|---|
Microsoft Windows NT | <root>\WINNT\Profiles\<username> | %UserProfile% |
Microsoft Windows 2000, XP and 2003 | <root>\Documents and Settings\<username> | |
Microsoft Windows Vista and 7 | <root>\Users\<username> | |
Unix-Based[1] | <root>/home/<username> | $HOME и ~/ |
Unix-Derived | /var/users/<username> /u01/<username> /usr/<username> /user/<username> /users/<username> |
|
SunOS / Solaris | /export/home/<username> | |
Linux (FHS) | /home/<username> | |
AT&T Unix (оригинальная версия) | <root>/usr/<username> | $HOME |
Mac OS X | /Users/<username> | $HOME и ~/, и путь к домашнему каталогу (в AppleScript) |
OpenVMS | <device>:[<username>] | SYS$LOGIN |
Подробнее см. FHS
В Unix-подобных операционных системах по умолчанию домашние каталоги пользователей расположены в каталоге /home (от англ. home — дом, домашний). В домашних каталогах хранятся документы и настройки пользователя. Разделение на системные (например, /etc, /bin) и пользовательские каталоги необходимо в основном для упрощения резервного копирования и безопасности.
Домашние каталоги пользователей определяются в файле /etc/passwd. Пример:
nataly:x:1001:1001::/home/nataly:/bin/bash
В этом примере пользователю nataly назначен домашний каталог /home/nataly.
Структура внутри каталога /home может быть различной. Например, если на сервере хранится много домашних каталогов, то имеет смысл размещать их в подкаталогах первой буквы имени пользователя (/home/n/nataly).
Каталог /home удобно располагать на отдельном разделе жёсткого диска, когда на компьютере установлено несколько Unix-подобных ОС; в этом случае каждая ОС монтирует этот раздел в /home.
Ubuntu и некоторые другие дистрибутивы Linux предлагают возможности по шифрованию домашних каталогов (используя Ecryptfs), в том числе в процессе установки системы[2].
Пример[править | править код]
ml@lantern /home $ ls -l total 8 drwxr-xr-x 26 nataly nataly 872 2008-08-06 21:22 nataly drwxr-xr-x 148 ml ml 7224 2008-08-29 12:13 ml
Как видно из примера, этот /home содержит в себе две домашние каталоги двух разных пользователей — ml и nataly. Причём у каждого из этих каталогов соответствующие идентификатор пользователя (UID) и идентификатор группы (GID). Это означает, что ml не может попасть в домашний каталог nataly и наоборот. Если только на каталоге не установить режим (chmod), который позволит чтение всем, а не только владельцу и группе.
/root[править | править код]
Домашний каталог суперпользователя (root) находится в /root
, а не в /home/root
. Это сделано для повышения надёжности системы: в подавляющем большинстве случаев каталог /home
находится на отдельном диске, если же его файловая система будет повреждена, вход в систему и восстановление будут сильно затруднены. Учётная запись root используется для администрирования системы, поэтому /root
обычно располагается на том же разделе, где и система (домашний каталог пользователя root обычно не содержит представляющих ценность личных файлов).
- ↑ «Home Directory Definition». Дата обращения: 25 марта 2013. Архивировано 16 июля 2017 года.
- ↑ Jang, M. Security Strategies in Linux Platforms and Applications. — Jones & Bartlett Learning, 2010. — P. 127—128. — ISBN 9780763791896.
- Каталог
Файловая структура
—
Основы командной строки
- Директории
- Скрытые файлы
Файловая структура *nix-систем серьезно отличается от структуры в Windows и заслуживает отдельного внимания. В этом уроке мы подробнее познакомимся с этой темой.
Начнем с базовых понятий:
- Файловая структура представляет собой дерево
- В узлах этого дерева находятся директории — файлы специального типа
- В листьях дерева расположены файлы
Схематично такое дерево можно показать так:
Директории
Понятие «папка» в *nix-системах не используется. Папки здесь называются директориями или каталогами, хотя по существу эти термины означают одно и то же.
В Windows файловая структура представлена не одним, а несколькими деревьями, так как каждая структура находится на своем диске. В *nix-системах немного по-другому: есть единственное дерево с корнем в /
. Все устройства, физические и логические диски находятся внутри этого дерева в виде директорий и файлов.
Информация о любом файле или директории доступна по команде stat
(сокращение от file system status):
# Не обращайте внимание на непонятные для вас данные
# Об их значении поговорим позже
stat ~/.profile
File: .profile
Size: 807 Blocks: 8 IO Block: 4096 regular file
Device: 10303h/66307d Inode: 5116704 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ malcom) Gid: ( 1000/ malcom)
Access: 2025-02-14 08:19:50.425164254 +0300
Modify: 2023-10-16 15:04:00.501040440 +0300
Change: 2023-10-16 15:04:00.501040440 +0300
Birth: 2023-10-16 15:04:00.501040440 +0300
В Windows и macOS мы привыкли, что имя файла может быть набрано в разных регистрах, и это всегда один и тот же файл. Другими словами, здесь имена регистронезависимые.
Но в *nix-системах ситуация другая — здесь регистр имеет значение. Файлы index.html
, Index.html
, INDEX.HTML
и index.HTML
— это разные файлы. Всегда обращайте внимание на регистр, потому что ошибиться довольно легко.
Говорят, что в *nix «все является файлом». На нижнем уровне так и есть. Директория — это специальный файл, который содержит список файлов. Любое подключаемое устройство становится файлом или директорией, если это накопитель.
Такая концепция довольно удобна для разработчиков, потому что печать на принтер и вывод на экран между собой ничем не отличаются — с точки зрения кода, это просто запись в файл. На пользовательском уровне директория все же отличается от файла и имеет собственные команды для создания, удаления и модификации.
В *nix-системах есть FHS — базовый стандартизированный набор каталогов. За каждым закреплена какая-то особая роль, например:
- Каталог
/etc
содержит конфигурацию программ в обычных текстовых файлах. В *nix-системах нет реестра, вся конфигурация лежит в обычных файлах - Каталог
/home
содержит домашние директории пользователей системы, за исключением суперпользователяroot
, домашний каталог которого обычно находится по адресу/root
Обязательно пробегитесь по странице FHS в Википедии и посмотрите, за что отвечают разные каталоги.
Скрытые файлы
Не во все директории можно заходить, не все файлы можно читать или менять, и не все программы можно запускать. Так происходит, потому что в *nix-системах развитая система прав, завязанная на пользователей и группы. О ней мы поговорим отдельно позже. Сейчас достаточно знать, что такие ограничения есть. Их можно увидеть в выводе команды ls -l
.
В отличие от Windows, в *nix-системах отсутствует понятие «расширение файла». Здесь точка считается полноправной частью имени файла. При этом файлы почти всегда именуются так же, как и в Windows — например, hello.mp3
. Важно понимать, что именем файла считается вся эта строчка. Нередко встречаются и такие имена: index.html.haml
.
Есть еще одна существенная разница между Windows и *nix-системами. В обоих случаях скрытые файлы есть, но работают они по-разному:
- В Windows видимость файла — это его свойство, которое можно включить или выключить в настройках (при выключении файл станет скрытым)
- В *nix-системах файл считается скрытым, если его имя начинается с точки. Чтобы скрыть файл, ничего не нужно делать в настройках — достаточно просто добавить точку в начале
Вывести все файлы, включая скрытые, можно командой ls -a
:
ls -a
. .. .bash_logout .bashrc .config .gitconfig .profile
Обратите внимание на две особые директории:
- Обозначенные точкой (
.
) — это текущая директория - Обозначенные двумя точками (
..
) — это директория верхнего уровня
Именно благодаря этой схеме работает команда cd ..
, которая перемещает нас на уровень выше.
Кроме обычных файлов, в *nix-системах существует ряд других:
- Hard Link — дополнительное имя для уже существующего файла
- Symbolic link — символическая ссылка. Такой файл похож на ярлык в Windows. Если удалить основной файл, то символическая ссылка будет вести в никуда
- Socket — специальный файл, через который происходит взаимодействие между разными процессами операционной системы. Программисты постоянно сталкиваются с сокетами в реальной жизни
Это наиболее важные на начальном этапе знакомства с файловой системой типы файлов. Есть еще и другие типы, но не будем сейчас заострять на них внимание.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
-
130 курсов, 2000+ часов теории -
1000 практических заданий в браузере -
360 000 студентов
Наши выпускники работают в компаниях:
Материал из энциклопедии Руниверсалис
Домашний каталог — это личный каталог пользователя в операционной системе, где находятся его данные, настройки и т. д.
Название и расположение домашнего каталога зависит от типа операционной системы, например, в Microsoft Windows он находится в каталоге Users (в Windows XP — Documents and Settings), а в Linux — в каталоге /home, и имеет название, соответствующее имени пользователя системы.
Например,
C:\Users\Маша
для Windows
или
/home/masha
для UNIX-систем.
В различных операционных системах
Система | Путь | Переменная |
---|---|---|
Microsoft Windows NT | <root>\WINNT\Profiles\<username> | %UserProfile% |
Microsoft Windows 2000, XP and 2003 | <root>\Documents and Settings\<username> | |
Microsoft Windows Vista and 7 | <root>\Users\<username> | |
Unix-Based[1] | <root>/home/<username> | $HOME и ~/ |
Unix-Derived | /var/users/<username> /u01/<username> /usr/<username> /user/<username> /users/<username> |
|
SunOS / Solaris | /export/home/<username> | |
Linux (FHS) | /home/<username> | |
AT&T Unix (оригинальная версия) | <root>/usr/<username> | $HOME |
Mac OS X | /Users/<username> | $HOME и ~/, и путь к домашнему каталогу (в AppleScript) |
OpenVMS | <device>:[<username>] | SYS$LOGIN |
В Unix-подобных операционных системах
Подробнее см. FHS
В Unix-подобных операционных системах по умолчанию домашние каталоги пользователей расположены в каталоге /home (от англ. home — дом, домашний). В домашних каталогах хранятся документы и настройки пользователя. Разделение на системные (например, /etc, /bin) и пользовательские каталоги необходимо в основном для упрощения резервного копирования и безопасности.
Домашние каталоги пользователей определяются в файле /etc/passwd. Пример:
nataly:x:1001:1001::/home/nataly:/bin/bash
В этом примере пользователю nataly назначен домашний каталог /home/nataly.
Структура внутри каталога /home может быть различной. Например, если на сервере хранится много домашних каталогов, то имеет смысл размещать их в подкаталогах первой буквы имени пользователя (/home/n/nataly).
Каталог /home удобно располагать на отдельном разделе жёсткого диска, когда на компьютере установлено несколько Unix-подобных ОС; в этом случае каждая ОС монтирует этот раздел в /home.
Ubuntu и некоторые другие дистрибутивы Linux предлагают возможности по шифрованию домашних каталогов (используя Ecryptfs), в том числе в процессе установки системы[2].
Пример
ml@lantern /home $ ls -l total 8 drwxr-xr-x 26 nataly nataly 872 2008-08-06 21:22 nataly drwxr-xr-x 148 ml ml 7224 2008-08-29 12:13 ml
Как видно из примера, этот /home содержит в себе две домашние каталоги двух разных пользователей — ml и nataly. Причём у каждого из этих каталогов соответствующие идентификатор пользователя (UID) и идентификатор группы (GID). Это означает, что ml не может попасть в домашний каталог nataly и наоборот. Если только на каталоге не установить режим (chmod), который позволит чтение всем, а не только владельцу и группе.
/root
Домашний каталог суперпользователя (root) находится в /root
, а не в /home/root
. Это сделано для повышения надёжности системы: в подавляющем большинстве случаев каталог /home
находится на отдельном диске, если же его файловая система будет повреждена, вход в систему и восстановление будут сильно затруднены. Учётная запись root используется для администрирования системы, поэтому /root
обычно располагается на том же разделе, где и система (домашний каталог пользователя root обычно не содержит представляющих ценность личных файлов).
Примечания
- ↑ «Home Directory Definition». Дата обращения: 25 марта 2013. Архивировано 16 июля 2017 года.
- ↑ Jang, M. Security Strategies in Linux Platforms and Applications. — Jones & Bartlett Learning, 2010. — P. 127—128. — ISBN 9780763791896.
См. также
- Каталог
Understanding how to access the home directory, often known as the user profile directory, is fundamental for efficient navigation and management of the individual files, settings, and configurations on a Windows system. The home directory serves as a centralized hub where the personalized data resides, encompassing documents, downloads, desktop items, app settings, and much more. This tutorial provides 2 methods how to get home directory on Windows.
Method 1 — CMD
To obtain the home directory using Command Prompt (CMD), we can utilize the echo
command along with the %USERPROFILE%
environment variable, which holds the path to the user’s home directory.
echo %USERPROFILE%
Output example:
C:\Users\John
Method 2 — PowerShell
To retrieve the home directory using PowerShell, we can utilize the $HOME
automatic variable, which holds the path to the current user’s home directory.
$HOME