Что такое домашний каталог
Домашний каталог
Домашний каталог — это личный каталог пользователя в операционной системе, где находятся его данные, настройки и т.д.
Название и расположение домашнего каталога зависит от типа операционной системы, например, в Microsoft Windows он находится в каталоге Users (в Windows XP — Documents and Settings), а в Linux — в каталоге /home, и имеет название, соответствующее имени пользователя системы. Например, C:\Users\Маша для Windows или /home/masha для UNIX-систем.
См. также
Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
Операционная система | Дорожка | Переменная окружения |
---|---|---|
AT&T Unix (оригинальная версия) | / usr / | $ HOME |
Unix-производный | / var / users / / u01 / / usr / / user / / users / | |
На основе Unix | / home / | |
BSD / Linux ( FHS ) | / home / | |
SunOS / Solaris | / export / home / | |
macOS | / Пользователи / | |
Android | / data / media / | |
Microsoft Windows NT | \ WINNT \ Profiles \ | % USERPROFILE% % HOMEDRIVE% % HOMEPATH% |
Microsoft Windows 2000, XP и 2003 | \ Documents and Settings \ | |
Microsoft Windows Vista, 7, 8, 10 и 11 | \ Пользователи \ |
Подкаталоги
Файл /etc/xdg/user-dirs.defaults во многих системах Linux определяет подкаталоги, созданные для пользователей по умолчанию.
Другие функции для каждой операционной системы
( Тильда команда сокращенная характера) относится к домашней директории этого конкретного пользователя.
В операционной системе OpenVMS домашний каталог пользователя называется «корневым каталогом», а эквивалент корневого каталога Unix / DOS / Windows / AmigaOS называется «основным каталогом файлов».
В отличие от однопользовательских операционных систем
Однопользовательские операционные системы просто имеют один каталог или раздел для всех пользовательских файлов, нет индивидуальной настройки каталога для каждого пользователя (хотя пользователи по-прежнему могут настраивать и поддерживать каталоги внутри этого основного рабочего каталога вручную).
Как и зачем хранить домашние каталоги пользователей в Git-репозиториях
В этой статье расскажу, как с помощью Git я управляю файлами в своём домашнем каталоге и синхронизирую их на других устройствах.
У меня несколько устройств: лэптоп на работе, стационарный комп дома, Raspberry Pi, портативный компьютер Pocket CHIP, а также Chromebook с несколькими версиями Linux на борту. Давно хотел, чтобы на таких разных устройствах я мог выполнять примерно одинаковые действия для настройки окружений. Поначалу я просто не знал, как этого добиться. Например, команды Bash alias я чаще использовал на работе, а многие вспомогательные скрипты хорошо работали в моём домашнем окружении.
С годами грань между моими рабочими и домашними устройствами начала стираться. Задач стало больше, увеличился и объём разнородных неупорядоченных данных в домашних каталогах, с которыми надо было как-то разбираться. Я начал испытывать большие трудности — например, при работе над одним и тем же проектом на разных устройствах. Как ни странно, мою проблему решил Git.
Да, тот самый Git, который относится к классу распределённых систем управления версиями. Его широко используют крупные и мелкие open source проекты, а также компании, выпускающие проприетарный софт. Сначала я скептически смотрел на эту идею, потому что Git вроде бы создан для управления кодовой базой, а не домашним каталогом с кучей музыки, видео, фото, игр и прочего хлама. Я слышал, что кто-то из знакомых знакомых использует Git для управления файлами в домашнем каталоге. Но, всё же, я долго не решался попробовать. Думал, что таким образом гики просто развлекаются, а для задач обычных пользователей это не годится. Я ошибался.
Мне удалось добиться цели не сразу: пришлось учиться и искать решения по ходу дела. Но теперь я могу поделиться своим опытом, предложив готовые рецепты по управлению домашним каталогом с помощью Git.
1. Продумайте структуру и содержимое каталогов
Изображение: Seth Kenlon, CC BY-SA 4.0
С точки зрения Git ваш домашний каталог становится чем-то вроде слепой зоны для всего, кроме конфигурационных и других выбранных вами файлов. То есть, открыв вашу домашнюю директорию, вы не должны увидеть в корне ничего, кроме заранее сформированного списка каталогов. Там не должно быть никаких фото или документов. И никаких файлов, которые «просто полежат тут минутку».
Многие Linux-дистрибутивы по умолчанию предлагают примерно такой список подкаталогов внутри /home/ :
Другими словами, моя структура каталогов более разнообразна, чем набор большинства дистрибутивов Linux по умолчанию. Я думаю, так же нужно сделать и вам. Без структуры каталогов, которая подходит именно вам, вы в какой-то момент просто начнёте скидывать файлы в корень домашнего каталога из-за отсутствия для них лучшего места. Поэтому постарайтесь заранее продумать это.
Когда вы наведёте порядок в домашнем каталоге, перейдите в него и создайте репозиторий:
Пока ваш репозиторий пуст, содержимое домашнего каталога не отслеживается. Поэтому сейчас вам нужно выбрать те файлы, которые так и останутся неотслеживаемыми. Посмотрите список файлов в вашем каталоге:
Далее решите, какие из оставшихся файлов будут неотслеживаемыми. Перебирая их, я обнаружил несколько устаревших конфигурационных файлов и каталогов, которые просто засоряли диск. Отдельного внимания заслуживают конфигурационные файлы, сгенерированные автоматически. Например, я оставляю неотслеживаемыми конфиги, которые генерирует KDE. Они хранят данные о недавно открытых документах и прочую информацию, которую имеет смысл хранить локально, только на одной машине.
3. Проанализируйте содержимое вашего диска
Для этой цели я использую сканер с открытым исходным кодом Filelight. Он рисует диаграмму, которая позволяет увидеть размер каждого каталога. Вы можете перемещаться по любому каталогу, чтобы понять, почему он столько весит. Если вы делаете такое исследование впервые, это изменит ваше представление о том, как и какие данные хранятся на вашем диске. И, опять же, вы увидите много мусора и сможете удалить его.
Изображение: Seth Kenlon, CC BY-SA 4.0
Если заметите, что некоторые приложения что-то кэшируют на вашем диске, вы сможете исключить эти данные из репозитория. Например, в KDE индексатор файлов Baloo хранит на диске достаточно много данных, которые востребованы лишь локально и совершенно не нужны в репозитории.
5. Не бойтесь коммитить бинарники
Я тестировал свой велосипед неделями и всё это время был уверен, что коммитить бинарники — плохая идея. Боялся, что из-за этого раздуется размер репозитория. У меня даже был скрипт, который вынимал XML из файлов LibreOffice и только после этого делал коммит. Другой скрипт восстанавливал файл LibreOffice из сохранённого XML. Вот так я изворачивался, чтобы экономить дисковое пространство.
В результате я понял, что можно не заморачиваться, если ты коммитишь небольшое количество бинарных файлов. Безусловно, если в репозиторий лить бинарники целыми гигабайтами, то он чрезмерно разрастётся. В моём случае бояться нечего: рост будет некритичным.
6. Используйте приватный репозиторий
Не размещайте свой домашний каталог в публичном Git-репозитории. У меня, например, есть SSH-ключи и цепочки ключей GPG, которые обеспечивают мне защищённый доступ.
На Raspberry Pi я развернул локальный Git-сервер, поэтому у меня полный контроль над моей системой. Особенно, когда я дома. Правда, работаю я удалённо, поэтому это удобно. На случай отъезда я сделал себе доступ через мой собственный VPN.
7. Не забывайте делать push
Особенность Git в том, что он отправляет изменения на ваш сервер только тогда, когда вы ему об этом скажете. Если вы давно пользуетесь Git, это для вас, вероятно, вполне естественно. Новым пользователям, которые, возможно, привыкли к автоматической синхронизации в Nextcloud или Syncthing, может понадобиться некоторое время, чтобы привыкнуть.
Git — друг человека
Управление моими файлами с помощью Git не только помогло наладить регулярную синхронизацию между устройствами. Сейчас, имея полную историю всех моих конфигураций и служебных скриптов, я могу смело пробовать новые идеи, потому что всегда легко откатить изменения, если что-то пойдёт не так.
Маклауд предоставляет недорогие серверы, которые подойдут в том числе для хранения данных. Используем быстрое и надёжное дисковое хранилище на основе дисков NVMe.
Зарегистрируйтесь по вышеуказанной ссылке или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Структура каталогов в Linux
Обновл. 20 Фев 2021 |
На этом уроке мы рассмотрим иерархию файловой системы Linux, а также познакомимся с назначением различных каталогов.
Если вы ранее пользовались только Windows, то структура файловой системы Linux может показаться вам особенно чуждой: нет привычного обозначения C:\ и букв дисков, их заменили каталог / и другие папки, большинство из которых имеют странные имена, состоящие из трех букв.
Причина всего этого в том, что в Linux используется свой FHS (сокр. от «Filesystem Hierarchy Standard» = «Стандарт иерархии файловой системы»). FHS определяет структуру и содержание/назначение каталогов в дистрибутивах Linux. Благодаря данному стандарту структура каталогов во всех дистрибутивах Linux является (почти) одной и той же.
Структура каталогов в Linux
Напомню, что Linux основан на системе Unix и, следовательно, заимствует из нее свою иерархию файловой системы. Аналогичную структуру каталогов вы найдете в Unix-подобных операционных системах, таких как BSD и macOS. Однако в дальнейшем я буду использовать именно термин Linux вместо Unix.
/ — корневая директория
/bin — binaries (двоичные файлы)
Примечание: Монтирование файловой системы — это системный процесс, подготавливающий раздел диска к использованию операционной системой.
/boot — boot files (загрузочные файлы)
Каталог /boot содержит файлы, необходимые для загрузки системы. Например, здесь хранятся файлы загрузчика GRUB и ваши ядра Linux. Однако конфигурационные файлы загрузчика находятся не здесь — они лежат в /etc вместе с другими конфигурационными файлами.
/cdrom — исторически сложившаяся папка для CD-ROM
/dev — device files (файлы устройств)
/dev/null — это специальное устройство («пустое устройство»), которое не производит вывода и автоматически отбрасывает все поступающие входные данные. Когда вы передаете вывод информации от какой-нибудь команды на устройство /dev/null , то вся эта информация попросту будет отброшена;
/dev/random — генератор случайных чисел;
/dev/zero — источник бесконечной последовательности нулевых байтов.
/etc — configuration files (конфигурационные файлы)
Каталог /etc содержит основные конфигурационные файлы системы, используемые администратором системы и её службами, такие как файл паролей и файлы настроек сетей. Обычно их можно редактировать вручную в текстовом редакторе. Если вам нужно внести изменения в конфигурацию системы (например, изменить имя хоста), то именно здесь вам стоит искать необходимые файлы. Обратите внимание, что каталог /etc содержит общесистемные конфигурационные файлы; пользовательские конфигурационные файлы находятся в домашнем каталоге каждого пользователя.
/home — личные каталоги пользователей
Каталог /home является хранилищем домашних папок пользователей системы, в которых те хранят свои личные файлы, заметки, утилиты и пр. Домашний каталог содержит пользовательские данные и пользовательские файлы конфигурации.
При создании нового пользователя в системе Linux, обычно для него создается соответствующий домашний каталог (и группа, но об этом позже). Предположим, что в вашей системе уже есть два пользователя: alice и bob. Тогда их домашние каталоги будут иметь пути /home/alice и /home/bob соответственно. Обратите внимание, что каждый (обычный) пользователь имеет доступ на запись только в свою домашнюю папку. Например, у пользователя bob не будет доступа к каталогу /home/alice и наоборот.
/usr — user binaries and program data (пользовательские двоичные файлы и программные данные)
Каталог /usr содержит исполняемые файлы, файлы библиотек и заголовочные файлы большинства пользовательских программ. По этой причине практически все они доступны только для чтения (для обычного пользователя).
/usr/bin — основные пользовательские утилиты;
/usr/sbin — дополнительные утилиты для администрирования и настройки системы;
/usr/lib — библиотеки утилит из /usr/bin и /usr/sbin ;
/usr/share — содержит документацию или общие для всех библиотек данные.
/lib — каталог совместно используемых библиотек
/sbin — системные утилиты
/tmp — временные файлы
Как следует из названия, в каталоге /tmp хранятся временные файлы используемых приложений (вы тоже можете задействовать данный каталог для размещения своих временных файлов).
Но обратите внимание, что при перезагрузке вашей системы содержимое каталогов в /tmp удаляется. Некоторые Linux-системы могут в любое время автоматически удалить старые файлы, поэтому не храните здесь ничего важного.
/var — файлы изменяемых данных
/proc — файлы процессов
/opt — optional software (дополнительное ПО)
/root — the home directory of the root (домашняя папка root-пользователя)
/media — mount point for removable media (точка монтирования съемных носителей)
При подключении съемного носителя, такого как USB-диск, SD-карта или DVD-диск, для них автоматически создается соответствующая папка в каталоге /media. При помощи такой папки вы можете получить доступ к содержимому съемного носителя.
/mnt — mount directory (точка монтирования файловых систем)
/srv — service data (служебные данные)
/run — application state files (файлы текущего состояния приложений)
Каталог /run предоставляет приложениям стандартное место для хранения временных файлов и данных, которые требуются для работы различных процессов с момента запуска системы (сокеты, идентификаторы процессов и пр.). Данные файлы не сохраняются в /tmp по той причине, что из /tmp они могут быть удалены.
/lost+found — recovered files (восстановленные файлы)
Поделиться в социальных сетях:
Домашний каталог
Поскольку каждый пользователь располагает собственным каталогом и по умолчанию работает в нем, решается задача разделения файлов разных пользователей. Обычно доступ других пользователей к чужому домашнему каталогу ограничен: наиболее типична ситуация, когда пользователи могут читать содержимое файлов друг друга, но не имеют права их изменять или удалять.
1.5. Информация о содержимом каталога – утилита ls
Кроме параметра, утилита ls может использовать множество ключей, которые нужны для того, чтобы выводить дополнительную информацию о файлах в каталоге или выводить список файлов выборочно. Чтобы узнать обо всех возможностях ls, нужно прочесть руководство по этой утилите с помощью команды man ls.
Ключ –F используется, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ «/», чтобы показать, что в нем может содержаться что-то еще.
1.6. Перемещение по дереву каталогов – команда cd
Для перемещения в родительский каталог («/home») удобно воспользоваться ссылкой «..». Необходимость вернуться в домашний каталог из произвольной точки файловой системы возникает довольно часто, поэтому командная оболочка поддерживает обозначение домашнего каталога при помощи символа «
«. Поэтому чтобы перейти в домашний каталог из любого другого, достаточно выполнить команду «cd
«. При исполнении команды символ «
» будет заменен командной оболочкой на полный путь к домашнему каталогу пользователя.
При помощи символа «
» можно ссылаться и на домашние каталоги других пользователей: «
имя пользователя». Команда cd, поданная без параметров, эквивалентна команде «cd
» и делает текущим каталогом домашний каталог пользователя.
1.7. Создание каталогов – утилита mkdir
Чтобы организовать такое поддерево, потребуется создать каталоги внутри домашнего. Для этого используется утилита mkdir. Она применяется с одним обязательным параметром: именем создаваемого каталога. По умолчанию каталог будет создан в текущем каталоге.
1.7.1. Создание нового пустого файла – команда touch
Для создания пустого файла с текущим временем создания служит команда touch имя_нового_файла. Для указания даты создания в формате ГГГГММДДhhmm используется ключ –t. Например
touch –t 0904080000 tst файл создан 8 апреля 2009 г.
- Что такое группа здоровья
- Что такое святая ложь