Linux: как постоянно и глобально изменить переменные среды
Я хочу сделать следующее для каждого пользователя, который входит в мой ящик Linux:
export PATH=$PATH:~/.path
И я не знаю, как это сделать, кроме добавления этой строки вручную в каждый файл ~/.bashrc.
Кроме того, моя работа cron запускает программу, и я хочу (для этого cron job) PYTHONPATH установить что-то конкретное. Будут ли какие-либо файлы.bashrc влиять на среду cron job? Как я могу изменить среду cron job.
Кроме того, мне сейчас интересно узнать, как изменить переменную PATH при запуске. Другие программы, кажется, делают это, когда они установлены, так как бы я поступил так?
2 ответа
Среды для снарядов
По сути, все, что запускает процессы, будет иметь тенденцию читать файл конфигурации при запуске, и для того, чтобы повлиять на его среду, вам нужно попасть в его файл конфигурации.
Для пользовательских оболочек "очевидные" места .profile
, .bashrc
, .bash_profile
(Я думаю) и, может быть, пару других я не помню. Очевидно, больше и другие, если вы используете zsh
, csh
, tcsh
или что-то вроде оболочки.
Существуют файлы инициализации, считываемые вашей оконной средой, которые могут быть KDE или Gnome. Конкретный оконный менеджер, который вы запускаете, который также может прочитать файл конфигурации. Я признаю, что не знаю имен этих файлов даже для моей собственной установки.
Наконец, обычно есть "главные" файлы конфигурации для всех этих сред где-то в /etc
, Они предоставляют значения по умолчанию для вещей, которые пользователи не делают.
Я думаю, что программы, которые устанавливают себя добросовестно, проверяют различные возможности. Различные дистрибутивы Linux могут предлагать некоторые вспомогательные скрипты для этого.
хрон
Это намного проще. По соображениям безопасности cron
ВСЕГДА передает только пару переменных среды в подпроцессы. Я думаю USER
является одним из тех, и MAILTO
другой. Насколько я знаю, нет PATH
набор - это часто раздражает новичков. Среда работы cron полностью отличается от вашей оболочки! Все, что вы хотите в среде, вы передаете в командной строке в crontab
или вы запускаете сценарий и позволяете ему настроить среду, в которой он нуждается.
Чтобы применить изменения bashrc ко всем пользователям, вы можете изменить /etc/bash.bashrc
(Это для Ubuntu).
Также, как указано в ответе выше, убедитесь, что этот файл получен /etc/profile
,