У мене є двічі сервери Linux, які слід налаштувати однаково, однак команди ssh до одного з них не відповідають командам, яким потрібен шлях, вказаний у ~ / .bashrc. Наприклад, я можу використовувати таку команду, як pwd
інтерактивно та через ssh, але якщо я спробую запустити програму, яка знаходиться у папці бін програми, вона працює лише в інтерактивній оболонці для одного з серверів.
Файл / etc / profile та / etc / environment на обох серверах однаковий, проте $ BASH_ENV встановлений на ~ / .bashrc на сервері, який працює належним чином. Я хочу встановити $ BASH_ENV на сервері, який не працює, але я вважаю за краще встановити його в тому самому місці, яке встановлено на робочому сервері. Які місця працюватиме Linux під час неінтерактивного входу, наприклад, ssh з іншого комп’ютера?
редагувати: рядок в / etc / passwd для користувача вказує / bin / bash на обох серверах. Файл ~ / .bash_profile для обох серверів ідентичний і містить if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. Єдина відмінність між системами полягає в тому, що $ BASH_ENV - це нульовий рядок на сервері, який не працює, і я не можу знайти, де це встановлено на сервері, який працює.
редагувати 2: Файл ~ / .ssh / середовища на обох серверах має BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi