Каково различие между ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc,/etc/bash_bashrc,/etc/screenrc …?

Это не ответ на общий вопрос, но должно, вероятно, быть упомянуто.

Unix и подобные Unix системы часто используются в пользовательских средах, так как они - многопользовательские операционные системы. Из-за этого администраторы таких систем часто не решаются устанавливать неизвестные сервисы или программное обеспечение, потому что оно может привести к нестабильности или ненадежности для всех пользователей системы. Таким образом я думаю, что первые шаги

  1. Определите, почему администратор не хочет установленный сервис.
  2. Думайте о том, можно ли выполнить задачу в некотором роде, которая обратилась бы к проблемам администратора.
  3. В противном случае определите, является ли озабоченность администратора обоснованной. А именно, спросите себя, "Это могло вызвать нестабильность или других пользователей?", "Это могло влиять на производительность для других пользователей?", и "Это могло оставить других пользователей открытыми для уязвимостей системы обеспечения безопасности?"
  4. Если ответ всем тем не, спросите себя, могло ли, делая это без разрешения администраторов получить Вас в проблему.
  5. Если это не будет или если Вы готовы принять риск, попробуйте один из упомянутых выше методов.
70
23.05.2017, 14:33
3 ответа

Организация конфигурационных файлов является намного меньшим количеством универсальной формы, чем Ваши вопросы, кажется, подразумевают. Нет никакого "класса", нет никакой "иерархии", и нет никакого глобального "царя конфигурации", ни комитета, который устанавливает декретом общий синтаксис или другие хорошие чистые обобщения как те, Вы ищете. Существует только множество отдельных приложений как R, bash, screen и Рабочая среда GNOME, у всех из которых есть их собственные способы сделать вещи, таким образом, необходимо посмотреть на документацию для каждой отдельной программы для ответа на любые конкретные вопросы о конкретном файле. Если это кажется специальным, поэтому это: большая часть программного обеспечения Unix / Linux там была разработана в различных целях различными людьми, которые все пошли о конфигурации немного по-другому.

Отвечать на Ваши другие вопросы точечно:

  • *rc и *profile не имейте в виду очень много, таким образом, на этот вопрос нельзя действительно ответить. "дистанционное управление" является просто наиболее часто используемым сокращением или суффиксом для конфигурационных файлов. Его этимология возвращается к древним временам (в компьютерных годах) и вероятно означает команды выполнения (от runcom). Просто, потому что использование приложений, то же слово не означает, что они договариваются о конвенциях. "профиль" является намного менее общим суффиксом.

  • Определите "объем". Большинство приложений не совместно использует конфигурационные файлы с другими несвязанными приложениями. Одно возможное исключение /etc/profile и .profile, который может использоваться несколькими различными оболочками (включая, по крайней мере, sh и bash). Существует что-то позвонившее среда, связанная с каждым рабочим процессом, который может содержать переменные, которые могут влиять на поведение упомянутого процесса. Обычно переменные среды установлены соответствующими конфигурационными файлами оболочки или возможно конфигурационными файлами любой графической настольной среды, которую Вы используете. Существуют также конфигурационные файлы для "библиотек", как .inputrc для readline и .gtkrc* для GTK, который будет влиять на каждое приложение, которое пользуется библиотекой.

  • Нет, нет никакой глобальной иерархии для конфигурационных файлов. Снова, обратитесь к документации для определенной рассматриваемой программы, например, bash руководство для bash. Общая конвенция, на которую можно обычно полагаться, является тем пользователем настройки в $HOME переопределите конфигурацию в масштабе всей системы в /etc. Это обычно выполняется путем чтения пользовательского файла после системы один, так, чтобы более поздние настройки перезаписали более ранние. Однако это не гарантия, и для категорических ответов необходимо обратиться к документации для определенной программы, которую Вы используете.

  • Нет никакого "класса", по крайней мере ни одно достаточно общее для затрагивания всех файлов, которые Вы перечислили в своем вопросе, таким образом, вопрос ссылки для такого "класса" спорен. Снова, обратитесь к документации определенной программы, которую Вы используете.

48
27.01.2020, 19:31

Я думаю, что этот вопрос слишком широк на таком количестве уровней, например, Вы задаете вопросы о по крайней мере четырех различных программах в одном вопросе. Я только посмотрю на различие между конфигурационными файлами в /etc и $HOME.

Unix является многопользовательской операционной системой, это означает, что многие различные люди могут использовать систему, любого при помощи ssh, telnet, или Xorg. Для обеспечения стандартизированной конфигурации для пользователей, можно предоставить конфигурацию в масштабе всей системы в /etc/, это обычно также используется Вашим Распределением для обеспечения глобальной конфигурации для, например. bash или screen.

С другой стороны, некоторые пользователи хотят настроить настройки для своих программ самостоятельно как привязки клавиш, цвета или взгляд. Это сделано через конфигурационный файл в их $HOME. Так короче говоря /etc/ предоставляет конфигурацию в масштабе всей системы, в то время как файлы конфигурации в $HOME позволяют пользователям изменяться/переопределять конфигурацию в масштабе всей системы.

5
27.01.2020, 19:31

Часть ответа взята из этот пост:

.bashrc — это сценарий оболочки, который Bash запускает всякий раз, когда он запускается в интерактивном режиме.

В отличие от .bash_profile и .profile, которые запускаются только при запуске новой оболочки входа в систему. (bash -l)

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

3
27.01.2020, 19:31

Теги

Похожие вопросы