Kde nastavit proměnné prostředí na Macu
Na příkazovém řádku jsou proměnné prostředí definovány pro aktuální shell a zdědí je jakýkoli spuštěný příkaz nebo proces. Mohou určit cokoli od výchozího shellu, PATH, domovského adresáře uživatelů, až po typ emulace terminálu, aktuální pracovní adresář, kde je umístěn soubor historie, nastavení jazyka a lokalizace, a jít dále a zahrnout proměnné shellu, které zahrnují vše. od přizpůsobení po výzvu bash, barevný výstup ls a změny vzhledu terminálu, aliasy a mnoho dalšího.
Pojďme si projít, jak vypsat seznam proměnných prostředí a shellu a jak nastavit a přidat nové proměnné prostředí na příkazovém řádku Mac OS X. Probereme to pro shelly bash i zsh.
Zobrazení aktuálních proměnných prostředí a prostředí v bash na Mac OS X
Chcete-li rychle získat seznam proměnných prostředí, můžete použít následující příkaz s bash:
printenv
Pro seznam proměnných prostředí v zsh použijte následující příkaz: env
Nebo volitelně:
echo $ENV_VAR
Pokud chcete vidět úplný seznam proměnných shellu, lze také zadat příkaz 'set':
soubor
Výstup těchto příkazů může být zdlouhavý, takže možná budete chtít propojit výstup pomocí méně nebo více příkazů.
Nastavení proměnných prostředí v příkazovém řádku macOS pomocí zsh
Shell zsh nastavuje proměnné prostředí prostřednictvím souboru zshenv, který se nachází v domovském adresáři uživatelů na adrese:
~/.zshenv
Můžete tedy přidat proměnné prostředí zsh úpravou tohoto souboru pomocí nano, vim atd., nebo pomocí echo takto:
echo 'export ENV_VAR=example' >> ~/.zshenv
Například:
echo 'JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshenv
Nastavení proměnných prostředí v příkazovém řádku Mac OS X pomocí bash
Protože Mac ve výchozím nastavení používá bash shell, můžete nastavit proměnné prostředí v uživatelských adresářích .bash_profile, pro aktivní uživatelský účet je cesta k tomuto souboru umístěna na:
~/.bash_profile
Pokud jste změnili svůj shell nebo si nejste jisti, jaký shell používáte, můžete to vždy zkontrolovat zadáním příkazu echo $SHELL, který zobrazí, který shell se používá. Budeme předpokládat, že stále používáte výchozí bash shell OS X, takže přidáme nové proměnné prostředí úpravou .bash_profile pomocí nano – můžete použít vi, emacs nebo jiný textový editor, pokud chcete, ale my se budeme zabývat nano pro jeho jednoduchost.
Začněte otevřením .bash_profile v textovém editoru nano:
nano .bash_profile
Můžete přidat proměnné prostředí a proměnné prostředí na nové řádky, pokud již v souboru .bash_profile jsou data, nezapomeňte přidat nové proměnné na nový prázdný řádek pomocí kláves se šipkami a návratový klíč podle potřeby.
Vezměme si příklad a řekněme, že nastavíme proměnné prostředí JAVA_HOME a JRE_HOME v rámci .bash_profile přidáním následujícího na nové řádky souboru:
export JAVA_HOME=$(/usr/libexec/java_home) export JRE_HOME=$(/usr/libexec/java_home)
Za předpokladu, že jsme nyní hotovi, uložte změny provedené v .bash_profile stisknutím Control+o (to je o jako ve vydra), poté ukončete nano stisknutím Control+X
Změny a doplňky provedené v proměnných prostředí budou vyžadovat restartování shellu nebo vytvoření nového shellu.
Nastavení dočasných proměnných prostředí v OS X
Za zmínku stojí, že v bash můžete také nastavit dočasné proměnné prostředí pomocí samotného příkazu ‚export‘, i když ty zůstanou zachovány pouze tak dlouho, dokud zůstane aktuální bash shell aktivní. Pokud jste například chtěli přidat dočasnou cestu do ~/bin/, můžete použít následující příkaz:
export PATH=$PATH:~/bin
Příkaz 'export' spuštěný sám o sobě a není obsažen v .bash_profile bude pouze dočasné nastavení a proměnná prostředí nezůstane, dokud ji nepřidáte do .bash_profile.
Pokud skutečně hledáte přidat novou PATH pro použití, měli byste ji téměř jistě přidat do .bash_profile umístěním příslušného exportního příkazu do souboru.
Pokud překročíte rámec bash shell, pokud jste změnili výchozí prostředí aplikace Terminal z bash na tcsh, zsh, sh, ksh, fish nebo jakýkoli jiný alternativní shell, budete jednoduše potřebovat upravit příslušný profil nebo soubor rc pro tento konkrétní shell (.tschrc, .cshrc, .profile atd.).