Это меня раздражает. Я видел несколько предложений (все с использованием разных файлов и синтаксиса), и ни одно из них не сработало.
Как установить переменную среды для конкретного пользователя? Я нахожусь на сжатии Debian. Какой точный синтаксис я должен указать в файле, чтобы ABC = "123"?
.bashrc
это главное место для этого..bash_profile
содержит что-то вроде[[ -f ~/.bashrc ]] && . ~/.bashrc
.Ответы:
Вы должны поместить объявление в файлы инициализации вашей оболочки:
Если вы используете bash, ash, ksh или другую оболочку в стиле Bourne, вы можете добавить
в вашем
.profile
файле (${HOME}/.profile
). Это ситуация по умолчанию в большинстве установок Unix, в частности в Debian.Если ваша оболочка входа в систему bash, вы можете использовать
.bash_profile
(${HOME}/.bash_profile
) или.bash_login
вместо.Примечание. Если какой-либо из этих файлов существует, и ваша оболочка входа - bash,
.profile
она не читается при входе в систему через ssh или в текстовой консоли, но она все равно может быть прочитана вместо.bash_profile
входа в систему из графического интерфейса. Также, если нет.bash_profile
, то используйте.bashrc
.Если вы установили zsh в качестве оболочки для входа, используйте
~/.zprofile
вместо~/.profile
.Если вы используете tcsh, добавьте
в
.login
файле (${HOME}/.login
)Если вы используете другую оболочку, посмотрите в руководстве по оболочке, как определить переменные среды и какие файлы будут выполняться при запуске оболочки.
источник
su user
заключается в изменении владельца текущей оболочки на имя пользователя arg, сохраняя при этом домашний каталог и среду вызывающего пользователя. Чтобы войти в оболочку таким образом, чтобы стать новым пользователем и получить все настройки среды ($ PATH, $ HOME, $ ABC и т. Д.), Вам необходимо передать - в качестве первого аргумента su.su - username
выполнит то, что вы просите.man su
)su
в первую очередь? Разве вы не создали корневую систему,.profile
которая не может быть использована пользователем?.profile
он читается всеми Bourne-совместимыми оболочками, вы не должны писать синтаксис Bash в этом файле. В частности,export VARIABLE=value
нуждается в рефакторингеVARIABLE=value; export VARIABLE
.Используйте
/etc/environment
файл для установки переменных среды. Затем добавьте следующую строку в/etc/environment
файл.Теперь переменная ABC будет доступна из всех пользовательских сессий. Чтобы проверить вывод переменной, сначала обновите переменную среды, используя команду
и беги
echo $ABC
.источник
/etc/environment
как не поддерживает полный синтаксис bash, что я решил непросто. Например, поставитьPATH="/usr/bin:/usr/sbin"
и затем выполнитьPATH="$PATH:/foo/bar"
следующую строку не получится/etc/environment
, даже если я перезапустил терминал Bash или набралsource /etc/environment
. Поэтому, если у вас возникают проблемы, когда переменная окружения не сохраняется, попробуйте перезагрузить компьютер.Это общая процедура, которую вы можете использовать практически для любой оболочки. В любом случае, вы должны знать, в какую оболочку пользователь обычно входит:
Затем вы должны выяснить, какие точечные файлы обычно читает эта оболочка:
Сокращение, которое могло бы работать, должно перечислить те точечные файлы, которые содержат имя оболочки:
Если вы хотите проверить, действительно ли один из файлов читается во время входа в систему, вы можете просто напечатать имя файла в каждом из них, например:
При входе в систему вы должны увидеть, какие файлы читаются, и вы можете решить, какие из них изменить. Помните, что вы не должны пытаться использовать
echo "$0"
или подобное, потому что значение$0
зависит от того, как оболочка обрабатывает точечные файлы, и может вводить в заблуждение.Когда дело доходит до объявления переменной «постоянно», обратите внимание, что это распространяется только на сеанс. Нет доступа к значению переменной без сеанса, поэтому он не имеет смысла вне одного. Если вы имеете в виду «только для чтения», это зависит от оболочки, и в Bash вы можете использовать:
если оно уже имеет значение, или
назначить его одновременно. Не все оболочки имеют эту функцию.
Чтобы объявить переменную в большинстве оболочек, вы должны использовать имя переменной (
[A-Za-z_][A-Za-z0-9_]*
), за которым следует знак равенства ( без пробелов вокруг знака равенства), а затем значение (желательно заключенное в кавычки, если значение не является простым[A-Za-z0-9_]+
). Например:источник
Используйте экспорт.
Чтобы проверить, установлен ли он, используйте
и / или
Чтобы добавить его навсегда, добавьте его в свой
~/.bashrc
файл.источник
permenate
а неpermenently
: Dbashrc
permenate
? ты имеешь ввидуpermanent
?Точная команда:
источник
~/.profile
и (б) оставляет место до и после=
?Лучший способ, который мне помог, - это изменение файла .bashrc в оболочке BASH.
используйте это, например:
добавьте эту строку:
например:
export HOME = "/home/user/"
Не забудьте использовать,
""
поскольку использование' '
не будет работать, и ваш файл bashrc сообщит об ошибке во время поиска.источник в текущей сессии.
Я также попытался изменить файл / etc / environment, но он не позволил мне создать новую переменную среды, и когда я получил ее, он вызвал ошибку, что определенная переменная не найдена.
источник