Экспорт путей и конфигов в Ubuntu
Я пытаюсь добавить некоторые экспорты, используя следующий метод:
# SETUP CONFIGS
sudo bash -c "cat >> /etc/bash.bashrc" <<'EOF'
export AWS_CONFIG_FILE=/etc/test/aws.txt
export PATH="$PATH:/usr/local/bin/"
EOF
У меня есть два вопроса:
По какой-то причине он просто не работает, AWS не читает конфигурацию, как будто она никогда не была связана. Правильно ли я это сделал?
Во-вторых, это переживает перезагрузку? Например, мне нужно будет сделать это только один раз, и когда я перезагружу сервер, он все еще будет там, или вместо этого мне придется добавить эти команды в мой rc.local, чтобы они восстанавливались при каждой перезагрузке сервера.
Спасибо за любую помощь, которую вы можете оказать.
2 ответа
Из вашего вопроса неясно, где и когда вы запускаете скриптлет, который вы представили.
После запуска скриптлета cat /etc/bash.bashrc
чтобы увидеть, есть ли две экспортные строки.
Скриплет добавляет две строки /etc/bash.bashrc
каждый раз, когда он работает. Если вы запустите его дважды, у вас будут повторяющиеся строки. Файл /etc/bash.bashrc
это обычный файл конфигурации, который не обновляется при каждой загрузке, поэтому любые сделанные вами изменения являются постоянными. Таким образом, вы, вероятно, захотите запускать этот скрипт только один раз на каждой платформе, на которой вы его устанавливаете
В любом случае, /etc/bash.bashrc
это, вероятно, не очень хорошее место для глобальных дополнений PATH
, Вы кладете их в /etc/profile
, Но прежде чем сделать это, сделайте echo $PATH
чтобы проверить это /usr/local/bin
еще не там В большинстве дистрибутивов он включен в PATH "из коробки".
Изменения, которые вы вносите в /etc/bash.bashrc
будет эффективным для новых bash
такие процессы, как запуск окон терминала bash
что вы начинаете после внесения изменений. Изменение не влияет на запущенные в данный момент окна.
PATH
переменная окружения, которую вы установили в /etc/profile
из в .bashrc
Файл влияет только на оболочки Bash. Если вы запускаете программу из crontab
, at
или из /etc/rc.d
файл, то вам нужно установить PATH
конкретно в этих сценариях, или используйте etc/environment
файл для установки переменных среды для всех процессов. Смотрите эту ссылку, которая объясняет различия.
Общесистемные переменные среды могут быть помещены в /etc/environment
,
Как только вы добавили строки, которые вы упомянули /etc/bash.bashrc
каждый процесс bash должен "знать" их. Вы можете проверить это с помощью:
echo $PATH
а также
source /etc/bash.bashrc
echo $PATH
Также ознакомьтесь с вики-сообществом Ubuntu по переменным среды.