Къде да зададете променливи на средата на Mac
В командния ред променливите на средата се дефинират за текущата обвивка и се наследяват от всяка работеща команда или процес. Те могат да определят всичко от обвивката по подразбиране, PATH, домашната директория на потребителите, до типа емулация на терминала, текущата работна директория, където се намира файлът с хронологията, настройките за език и локализация и отивайки по-нататък, за да включат променливи на обвивката, които включват всичко от персонализиране до подканата за bash, оцветен ls изход и промени във външния вид на терминала, на псевдоними и много повече.
Нека разгледаме как да изброяваме променливите на обкръжението и обвивката, а след това как да задаваме и добавяме нови променливи на обкръжението в командния ред на Mac OS X. Ще разгледаме това както за обвивките на bash, така и за zsh.
Показване на текущата среда и променливите на Shell в bash на Mac OS X
За бързо получаване на списък с променливи на средата, можете да използвате следната команда с bash:
printenv
За да изброите променливите на средата в zsh, използвайте следната команда: env
Или по избор:
echo $ENV_VAR
Ако искате да видите пълен списък с променливи на обвивката, може да се издаде и командата 'set':
комплект
Изходът от тези команди може да бъде дълъг, така че може да искате да прехвърлите изхода през по-малко или повече команди.
Задаване на променливи на средата в командния ред на macOS с zsh
Обвивката zsh задава променливи на околната среда чрез файла zshenv, намиращ се в домашната директория на потребителите на адрес:
~/.zshenv
По този начин можете да добавите zsh променливи на околната среда, като модифицирате този файл с nano, vim и т.н. или като използвате ехо по следния начин:
echo 'export ENV_VAR=example' >> ~/.zshenv
Например:
echo 'JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshenv
Задаване на променливи на средата в командния ред на Mac OS X с bash
Тъй като Mac по подразбиране използва bash shell, можете да зададете променливи на околната среда в потребителските директории .bash_profile, за активен потребителски акаунт пътят до този файл се намира на:
~/.bash_profile
Ако сте променили вашата обвивка или не сте сигурни каква обвивка използвате, винаги можете да проверите, като издадете командата echo $SHELL, която ще покаже коя обвивка се използва. Ще приемем, че все още използвате bash shell по подразбиране на OS X, затова ще добавим нови променливи на средата, като модифицираме .bash_profile с nano – можете да използвате vi, emacs или друг текстов редактор, ако желаете, но ние ще покрием нано заради неговата простота.
Започнете, като отворите .bash_profile в нано текстовия редактор:
nano .bash_profile
Можете да добавяте променливи на околната среда и променливи на обвивката към нови редове, ако вече има данни във файла .bash_profile, просто не забравяйте да добавите нови променливи към нов празен ред, като използвате клавишите със стрелки и ключ за връщане, ако е необходимо.
Да вземем пример и да кажем, че ще зададем променливите на околната среда JAVA_HOME и JRE_HOME в .bash_profile, като добавим следното към новите редове на файла:
export JAVA_HOME=$(/usr/libexec/java_home) export JRE_HOME=$(/usr/libexec/java_home)
Ако приемем, че вече сме готови, запазете промените, направени в .bash_profile, като натиснете Control+o (това е o като в otter), след което излезте от nano, като натиснете Control+X
Промените и допълненията, направени в променливите на околната среда, ще изискват рестартиране на обвивката или създаване на нова обвивка.
Задаване на временни променливи на средата в OS X
Струва си да споменем, че можете също да зададете временни променливи на околната среда в bash, като използвате самата команда ‘export’, въпреки че те ще продължат да съществуват само докато текущият bash shell остане активен. Например, ако искате да добавите временен път към ~/bin/, можете да използвате следната команда:
export PATH=$PATH:~/bin
Отново, командата 'export', която се изпълнява сама и не се съдържа в .bash_profile, ще бъде само временна настройка и променливата на околната среда няма да се запази, освен ако не я добавите към .bash_profile.
Ако наистина искате да добавите нов PATH за използване, почти със сигурност трябва да го добавите към .bash_profile, като поставите подходящата команда за експортиране във файла.
Отивайки отвъд bash shell, ако сте променили обвивката по подразбиране на вашето терминално приложение от bash на tcsh, zsh, sh, ksh, fish или някоя от другите алтернативни обвивки там, просто ще ви трябва за да промените подходящия профил или rc файл за тази конкретна обвивка (.tschrc, .cshrc, .profile и т.н.).