Назад | Перейти на главную страницу

linux: как постоянно и глобально изменять переменные среды

Я хочу сделать следующее для каждого пользователя, который входит в мой Linux-ящик:

export PATH=$PATH:~/.path

И я не знаю, как это сделать, кроме добавления вручную этой строки в каждый файл ~ / .bashrc.

Кроме того, мое задание cron запускает программу, и я хочу (для этого задания cron) установить PYTHONPATH на что-то конкретное. повлияют ли какие-либо файлы .bashrc на среду cronjob? Как изменить среду задания cron.

Кроме того, мне теперь любопытно, как изменить переменную PATH при запуске. Другие программы, кажется, делают это, когда они установлены, так как мне это сделать?

Чтобы применить изменение bashrc к все пользователей, вы можете изменить /etc/bash.bashrc (Это для Ubuntu).

Кроме того, как указано в ответе выше, убедитесь, что источник этого файла /etc/profile.

Среды для оболочек

По сути, все, что запускает процессы, будет иметь тенденцию читать файл конфигурации при запуске, и для того, чтобы повлиять на окружающую среду, вам нужно нажать его файл конфигурации.

Для пользовательских оболочек "очевидными" местами являются .profile, .bashrc, .bash_profile (Я думаю) и, может быть, пара других, которых я не помню. Очевидно, что еще и другие, если вы используете zsh, csh, tcsh или что угодно как оболочка.

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

Наконец, обычно есть «основные» файлы конфигурации для всех этих сред где-то в /etc. Они предоставляют значения по умолчанию для вещей, которых нет у пользователей.

Я думаю, что программы, которые устанавливаются, сознательно проверяют различные возможности. Различные дистрибутивы Linux могут предлагать для этого несколько вспомогательных сценариев.

cron

Это намного проще. По соображениям безопасности cron ВСЕГДА передает только пару переменных среды подпроцессам. думаю USER один из тех, и MAILTO другой. Насколько я знаю, нет PATH установить - это часто раздражает новичков. Среда задания cron полностью отличается от среды вашей оболочки! Все, что вы хотите в среде, вы либо передаете в командной строке в crontab, или вы запускаете сценарий и позволяете ему настраивать любую среду, в которой он нуждается.