Это кажется, что Ваш друг серьезно неправильно использовал интерфейсы.
я также видел веб-приложения с интерфейсами повсеместно. У некоторых людей, кажется, есть идея, что интерфейс так или иначе лучше, чем просто регулярная сигнатура метода. Простые параметры уже предоставляют нам контракт - в большинстве случаев я полагаю, что это достаточно и делает для более простого кода.
мне кажется, что интерфейсы самыми полезными в случаях как IDisposable или ICollection - где они указывают на определенный набор функциональности для ожидания из объекта. В этих случаях они, кажется, правильный инструмент для задания.
Помимо / etc / profile
, о котором упоминали другие, некоторые системы Linux теперь используют каталог /etc/profile.d/
; любые файлы .sh
в нем будут исходить из / etc / profile
. Немного удобнее хранить в этих файлах элементы пользовательской среды, чем просто редактировать / etc / profile
.
Если все службы входа используют PAM , и все службы входа имеют сеанс, требуемый pam_env.so
в соответствующих файлах конфигурации /etc/pam.d / *
, тогда для всех сеансов входа в систему будут установлены некоторые переменные среды, как указано в файле конфигурации pam_env
.
] В большинстве современных дистрибутивов Linux все это есть по умолчанию - просто добавьте нужные глобальные переменные среды в /etc/security/pam_env.conf
.
Это работает независимо от оболочки пользователя и работает и для графического входа в систему (если xdm / kdm / gdm / entry /… настроен таким образом).
Удивительно, но в Unix и Linux на самом деле нет места для установки глобальных переменных среды. Лучшее, что вы можете сделать, это организовать для любой конкретной оболочки инициализацию для конкретного сайта.
Если вы поместите ее в / etc / profile
, это позаботится обо всем для большинства posix-совместимых команд. пользователей. Вероятно, этого «достаточно» для некритических целей.
Но любой, у кого есть оболочка csh
или tcsh
, не увидит его, и я не верю ] csh
имеет глобальный файл инициализации.
Некоторые интересные выдержки из справочной страницы bash:
Когда bash запускается как интерактивный оболочка входа или как неинтерактивный оболочка с опцией
- логин
, она сначала читает и выполняет команды из файл/ etc / profile
, если этот файл существует. После прочтения этого файла он ищет~ / .bash_profile
,~ / .bash_login
и~ / .profile
, в этом порядок, а также читает и выполняет команды от первого, который существует и удобочитаемый. Параметр- noprofile
может использоваться, когда оболочка запускается запретить такое поведение.
...
Когда интерактивная оболочка, которая не является логином оболочка запускается, bash читает и выполняет команды из/etc/bash.bashrc
и~ / .bashrc
, если эти файлы существуют. Это может быть запрещается с помощью параметра- norc
. Параметр файла- rcfile
принудительно bash для чтения и выполнения команд из файл вместо/etc/bash.bashrc
и~ / .bashrc
.
Так что взгляните на / etc / profile
или /etc/bash.bashrc
, эти файлы - подходящие места для Глобальные настройки. Поместите в них что-то вроде этого, чтобы настроить переменную окружения:
export MY_VAR=xxx
Каждый процесс, работающий под ядром Linux, получает свою собственную уникальную среду, которую он наследует от своего родителя. В этом случае родителем будет либо сама оболочка (порождающая вспомогательную оболочку), либо программа «входа в систему» (в типичной системе).
Поскольку среда каждого процесса защищена, нет возможности «внедрить» 'переменная окружения для каждого запущенного процесса, поэтому даже если вы измените оболочку по умолчанию .rc / profile, она не вступит в силу, пока каждый процесс не выйдет и не перезагрузит свои настройки запуска.
Загляните в / etc /, чтобы изменить переменные запуска по умолчанию для любой конкретной оболочки. Просто поймите, что пользователи могут (и часто делают) изменять их в своих индивидуальных настройках.
Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.
NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Поэтому вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
.
Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.
NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
.
Unix спроектирован так, чтобы подчиняться пользователю в определенных пределах.
NB : Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
.
избегая башизмов
. Bash - это не только оболочка в вашей системе. Обратите особое внимание на то, на что фактически указывает символическая ссылка / bin / sh. Во многих системах это может быть тире , что (по умолчанию, без специального вызова) POSIXLY правильно. Следовательно, вам следует позаботиться об изменении и значений по умолчанию, иначе сценарии, начинающиеся с / bin / sh, не унаследуют ваши глобальные значения по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
. или сценарии, начинающиеся с / bin / sh, не наследуют ваши глобальные настройки по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
. или сценарии, начинающиеся с / bin / sh, не наследуют ваши глобальные настройки по умолчанию. Точно так же старайтесь избегать синтаксиса, который понимает только bash при редактировании обоих, иначе избегая башизмов
.