| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| linux:administration:configuration_files [2022/08/04 09:54] – [3. Пользовательская конфигурация] so_v_a | linux:administration:configuration_files [2026/08/13 17:37] (текущий) – so_v_a |
|---|
| | <!DOCTYPE markdown> |
| | |
| # Конфигурационные файлы Linux | # Конфигурационные файлы Linux |
| |
| https://habr.com/ru/company/first/blog/648793/ | Конфигурация системы ОС Linux осуществляется по сути лишь путём редактирования текстовых файлов в различных системных папках. |
| | |
| | Ниже представлено где файлы конфигурации расположены и каковы их функции. Благодаря стандарту иерархии файловой системы (Filesystem Hierarchy Standard) данные папки и файлы сохраняют своё расположение даже в разных дистрибутивах. |
| ## 2. Глобальные файлы конфигурации | ## 2. Глобальные файлы конфигурации |
| |
| Как правило, они располагаются в корневом разделе диска (/), а доступ к ним требует прав суперпользователя. | Как правило, они располагаются в корневом разделе диска (/), а доступ к ним требует прав суперпользователя. |
| |
| Справедливости ради, стоит заметить, что согласно стандарту FHS конфигурационные файлы не хранятся в корневой директории, она пустая и содержит в себе только папки. | > Стоит заметить, что согласно стандарту FHS конфигурационные файлы не хранятся в корневой директории, она пустая и содержит в себе только папки. |
| |
| ### 2.1. /etc/ | ### 2.1. /etc/ |
| Исторически конфигурационные файлы в папке /etc/default/ содержали настройки сервисов/программ-демонов для их использования с системами инициализации, например upstart. Однако с появлением systemd эта папка стала использоваться в основном для настроек приложений пользовательского пространства. | Исторически конфигурационные файлы в папке /etc/default/ содержали настройки сервисов/программ-демонов для их использования с системами инициализации, например upstart. Однако с появлением systemd эта папка стала использоваться в основном для настроек приложений пользовательского пространства. |
| |
| **Система не перезаписывает файлы в папке /etc/default/**. А значит, как только мы настроили там поведение приложений, оно не изменится при обновлении системы. | > **Система не перезаписывает файлы в папке /etc/default/**. А значит, как только мы настроили там поведение приложений, оно не изменится при обновлении системы. |
| |
| |
| Эти файлы, как правило, расположены в домашней папке пользователя и не требуют прав суперпользователя для редактирования. | Эти файлы, как правило, расположены в домашней папке пользователя и не требуют прав суперпользователя для редактирования. |
| |
| Следует иметь в виду, что пользовательские настройки всегда имеют более высокий приоритет, чем глобальные. Иными словами, **приложение всегда будет придерживаться пользовательских настроек, если таковые есть**. | > Следует иметь в виду, что пользовательские настройки всегда имеют более высокий приоритет, чем глобальные. Иными словами, **приложение всегда будет придерживаться пользовательских настроек, если таковые есть**. |
| |
| В части пользовательских настроек приложения соответствуют одному из двух стандартов. | В части пользовательских настроек приложения соответствуют одному из двух стандартов. |
| ### 3.1. Традиционные файлы конфигурации | ### 3.1. Традиционные файлы конфигурации |
| |
| Как правило, если у приложения всего один файл конфигурации, его можно найти так: /home/(username)/.(app_name{rc}). Но если конфигурационных файлов больше, то они хранятся в папке /home/(username)/.(app_name). | Как правило, если у приложения всего один файл конфигурации, его можно найти так: |
| | ``` |
| | /home/(username)/.(app_name{rc}) |
| | ``` |
| | Но если конфигурационных файлов больше, то они хранятся в папке |
| | ``` |
| | /home/(username)/.(app_name) |
| | ``` |
| |
| Наглядный пример такого приложения — редактор vim. | |
| |
| ### 3.2. Конфигурационные файлы, соответствующие стандарту XDG | ### 3.2. Конфигурационные файлы, соответствующие стандарту XDG |
| Разработчики freedesktop.org решили, что старая система недостаточно упорядочена, и выработали базовую спецификацию каталогов XDG. | Разработчики freedesktop.org решили, что старая система недостаточно упорядочена, и выработали базовую спецификацию каталогов XDG. |
| |
| По стандарту XDG все файлы пользовательской конфигурации хранятся в папке $XDG_CONFIG_HOME (обычно в /home/(username)/.config). | По стандарту XDG **все файлы пользовательской конфигурации хранятся в папке** |
| | ``` |
| | $XDG_CONFIG_HOME |
| | ``` |
| | (обычно в `/home/(username)/.config/`). |
| |
| Внутри $XDG_CONFIG_HOME каждое приложение создаёт свои подпапки для конфигурационных файлов. | Внутри `$XDG_CONFIG_HOME` каждое приложение создаёт свои подпапки для конфигурационных файлов. |
| |
| Базовой спецификации каталогов XDG теперь придерживаются редактор NeoVim и многие активно развивающиеся приложения. Для пользователей стандарт тоже удобен: одной резервной копии папки $XDG_CONFIG_HOME достаточно, чтобы сохранить все настройки. | Базовой спецификации каталогов XDG теперь придерживаются многие активно развивающиеся приложения. Для пользователей стандарт тоже удобен: одной резервной копии папки `$XDG_CONFIG_HOME` достаточно, чтобы сохранить все настройки. |
| |
| ### 3.3. Важные файлы пользовательской конфигурации | ### 3.3. Важные файлы пользовательской конфигурации |
| Среди наиболее часто используемых файлов пользовательской конфигурации следует перечислить: | Среди наиболее часто используемых файлов пользовательской конфигурации следует перечислить: |
| |
| $HOME/.xinitrc — в нём содержатся указания о запуске менеджера окон при работе с командой startx; | * $HOME/.xinitrc — в нём содержатся указания о запуске менеджера окон при работе с командой **startx**; |
| $HOME/.vimrc — конфигурация vim; | * $HOME/.vimrc — конфигурация vim; |
| $HOME/.bashrc — скрипт, который выполняет командная оболочка bash, когда пользователь запускает командную оболочку без регистрации; | * $HOME/.bashrc — скрипт, который выполняет командная оболочка bash, когда пользователь запускает командную оболочку без регистрации; |
| $XDG_CONFIG_HOME/nvim/init.vim — конфигурация редактора neovim; | * `$XDG_CONFIG_HOME/nvim/init.vim` — конфигурация редактора neovim; |
| $HOME/.editor — задаёт редактор по умолчанию для данного пользователя; | * $HOME/.editor — задаёт редактор по умолчанию для данного пользователя; |
| $HOME/.gitconfig — в файле указывается имя по умолчанию и адрес электронной почты для указания в коммитах Git; | * $HOME/.gitconfig — в файле указывается имя по умолчанию и адрес электронной почты для указания в коммитах Git; |
| $HOME/.profile — командная оболочка с регистрацией выполняет команды из скрипта .profile при запуске; | * $HOME/.profile — командная оболочка с регистрацией выполняет команды из скрипта .profile при запуске; |
| $HOME/.ssh/config — конфигурация ssh для конкретного пользователя. | * $HOME/.ssh/config — конфигурация **ssh** для конкретного пользователя. |