Hvor skal du angi miljøvariabler på Mac
På kommandolinjen defineres miljøvariabler for det gjeldende skallet og blir arvet av enhver kjørende kommando eller prosess. De kan bestemme alt fra standard skall, PATH, brukerens hjemmekatalog, til terminalemuleringstypen, gjeldende arbeidskatalog, hvor en historiefil er plassert, språk- og lokaliseringsinnstillinger, og gå videre til å inkludere skallvariabler, som inkluderer alt fra tilpasninger til bash-ledeteksten, fargelagt ls-utgang og endringer til terminalutseende, til aliaser og mye mer.
La oss gå gjennom hvordan du viser miljø- og skallvariabler, og deretter hvordan du setter og legger til nye miljøvariabler på kommandolinjen i Mac OS X. Vi dekker dette for både bash- og zsh-skall.
Viser gjeldende miljø- og skallvariabler i bash på Mac OS X
For raskt å få en liste over miljøvariabler, kan du bruke følgende kommando med bash:
printenv
For å liste opp miljøvariabler i zsh, bruk følgende kommando: env
Eller valgfritt:
echo $ENV_VAR
Hvis du vil se en komplett liste over skallvariabler, kan 'set'-kommandoen også gis:
sett
Utgangen til disse kommandoene kan være lang, så det kan være lurt å sende utdataene gjennom færre eller flere kommandoer.
Angi miljøvariabler i macOS kommandolinje med zsh
Zsh-skallet setter miljøvariabler gjennom zshenv-filen, som ligger i brukerens hjemmekatalog på:
~/.zshenv
Dermed kan du legge til zsh miljøvariabler ved å modifisere den filen med nano, vim, etc, eller ved å bruke ekko slik:
echo 'eksport ENV_VAR=eksempel' >> ~/.zshenv
For eksempel:
echo 'JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshenv
Angi miljøvariabler i Mac OS X kommandolinje med bash
Fordi Macen bruker bash-skall som standard, kan du angi miljøvariabler i brukerkatalogene .bash_profile, for en aktiv brukerkonto finner du banen til den filen på:
~/.bash_profile
Hvis du endret skallet ditt eller du ikke er sikker på hvilket skall du bruker, kan du alltid sjekke ved å utstede echo $SHELL-kommandoen, som viser hvilket skall som er i bruk. Vi kommer til å anta at du fortsatt bruker OS X standard bash-skall, så vi legger til nye miljøvariabler ved å endre .bash_profile med nano – du kan bruke vi, emacs eller en annen tekstredigerer hvis du vil, men vi dekker nano for sin enkelhet.
Start med å åpne .bash_profile i nanotekstredigeringsprogrammet:
nano .bash_profile
Du kan legge til miljøvariabler og skallvariabler på nye linjer, hvis det allerede er data i .bash_profile-filen, pass på å legge til nye variabler på en ny tom linje ved å bruke piltastene og returnøkkel etter behov.
La oss ta et eksempel og si at vi skal sette miljøvariablene JAVA_HOME og JRE_HOME i .bash_profile ved å legge til følgende i nye linjer i filen:
eksport JAVA_HOME=$(/usr/libexec/java_home) eksport JRE_HOME=$(/usr/libexec/java_home)
Forutsatt at vi nå er ferdige, lagre endringer som er gjort i .bash_profile ved å trykke Control+o (det er en o som i otter), og gå deretter ut av nano ved å trykke Control+X
Endringer og tilføyelser til miljøvariabler vil kreve at skallet startes på nytt eller at et nytt skall gyte.
Angi midlertidige miljøvariabler i OS X
Det er verdt å nevne at du også kan angi midlertidige miljøvariabler i bash ved å bruke «eksport»-kommandoen alene, selv om disse bare vil vedvare så lenge det nåværende bash-skallet forblir aktivt. Hvis du for eksempel vil legge til en midlertidig bane til ~/bin/, kan du bruke følgende kommando:
eksport PATH=$PATH:~/bin
Igjen, 'eksport'-kommandoen som kjøres av seg selv og som ikke finnes i .bash_profile, vil bare være en midlertidig innstilling og miljøvariabelen vil ikke vedvare med mindre du legger den til i .bash_profile.
Hvis du faktisk er ute etter å legge til en ny PATH for bruk, bør du nesten helt sikkert legge den til .bash_profile ved å plassere den riktige eksportkommandoen i filen.
Når du går utover bash shell, hvis du endret standardskallet for Terminal-appen fra bash til tcsh, zsh, sh, ksh, fish eller et av de andre alternative skjellene der ute, trenger du ganske enkelt for å endre den aktuelle profilen eller rc-filen for det spesifikke skallet (.tschrc, .cshrc, .profile osv.).