Overzicht

In deze tutorial leert u hoe u omgevingsvariabelen kunt instellen in Ubuntu, CentOS, Red Hat, eigenlijk elke Linux-distributie voor een enkele gebruiker en globaal voor alle gebruikers. U leert ook hoe u een lijst kunt maken van alle omgevingsvariabelen en hoe u bestaande omgevingsvariabelen kunt de-setten (wissen).

Milieuvariabelen worden vaak gebruikt in de Bash-shell. Het is ook een veelgebruikte manier om services te configureren en met geheimen van webapplicaties om te gaan.

Het is niet ongebruikelijk dat omgevingsspecifieke informatie, zoals endpoints en wachtwoorden, als omgevingsvariabelen op een server worden opgeslagen. Ze worden ook gebruikt om de belangrijke directory locaties voor veel populaire pakketten in te stellen, zoals JAVA_HOME voor Java.

Een omgevingsvariabele instellen

Om een omgevingsvariabele in te stellen wordt het export commando gebruikt. We geven de variabele een naam, die wordt gebruikt om er toegang toe te krijgen in shell scripts en configuraties en dan een waarde om de gegevens op te slaan die nodig zijn in de variabele.

export NAME=VALUE

Om bijvoorbeeld de omgevingsvariabele in te stellen voor de home directory van een handmatige OpenJDK 11 installatie, zouden we iets gebruiken dat lijkt op het volgende.

export JAVA_HOME=/opt/openjdk11

Om de waarde van de omgevingsvariabele uit te voeren vanuit de shell, gebruiken we het echo commando en zetten we een dollar ($) teken voor de naam van de variabele.

echo $JAVA_HOME

Zolang de variabele een waarde heeft, zal deze worden uitgeëchood.

Een omgevingsvariabele uitschakelen

Om een omgevingsvariabele uit te schakelen, waardoor deze niet meer bestaat, gebruiken we het commando unset. Het simpelweg vervangen van de omgevingsvariabele door een lege string zal deze niet verwijderen, en zal in de meeste gevallen waarschijnlijk problemen veroorzaken met scripts of applicaties die een geldige waarde verwachten.

De volgende syntaxis wordt gebruikt om een omgevingsvariabele te de-setten

unset VARIABLE_NAME

Om bijvoorbeeld de JAVA_HOME omgevingsvariabele te de-setten, zouden we het volgende commando gebruiken.

unset JAVA_HOME

Lijst van alle ingestelde omgevingsvariabelen

Om alle omgevingsvariabelen op te sommen, gebruiken we eenvoudigweg het commando set zonder argumenten.

set

Een voorbeeld van de uitvoer zou er ongeveer zo uitzien als het volgende, dat voor de beknoptheid is ingekort.

BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=(="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=(="2" ="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=(="5" ="0" ="3" ="1" ="release" ="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54

Bestaande omgevingsvariabelen voor een gebruiker

Wanneer een omgevingsvariabele wordt ingesteld vanuit de shell met het export commando, dan houdt deze op te bestaan wanneer de sessie van de gebruiker eindigt. Dit is problematisch wanneer we de variabele moeten laten voortbestaan over sessies heen.

Om een omgevingsvariabele te laten voortbestaan voor de omgeving van een gebruiker, exporteren we de variabele vanuit het profielscript van de gebruiker.

  1. Open het profiel van de huidige gebruiker in een teksteditor
    vi ~/.bash_profile
  2. Voeg het export-commando in voor elke omgevingsvariabele die je wilt laten voortbestaan.
    export JAVA_HOME=/opt/openjdk11
  3. Sla uw wijzigingen op.

Als u de omgevingsvariabele alleen aan het bash-profiel van een gebruiker toevoegt, wordt deze niet automatisch geëxporteerd. De variabele wordt echter wel geëxporteerd als de gebruiker de volgende keer inlogt.

Om alle wijzigingen in bash_profile onmiddellijk toe te passen, gebruik je de opdracht source.

source ~/.bash_profile

Export Omgevingsvariabele

Export is een ingebouwd shell commando voor Bash dat wordt gebruikt om een omgevingsvariabele te exporteren zodat nieuwe kind-processen deze kunnen erven.

Om een omgevingsvariabele te exporteren voert u het export commando uit terwijl u de variabele instelt.

export MYVAR="my variable value"

We kunnen een complete lijst van geëxporteerde omgevingsvariabelen bekijken door het export commando zonder argumenten uit te voeren.

export
SHELL=/bin/zshSHLVL=1SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/ListenersTERM=xterm-256colorTERM_PROGRAM=vscodeTERM_PROGRAM_VERSION=1.48.2

Om alle geëxporteerde variabelen in de huidige shell te bekijken gebruik je de -p vlag met export.

export -p

Instellen van permanente globale omgevingsvariabelen voor alle gebruikers

Een permanente omgevingsvariabele die blijft bestaan na een herstart kan worden gemaakt door deze aan het standaard profiel toe te voegen. Dit profiel wordt door alle gebruikers op het systeem geladen, inclusief service accounts.

Alle globale profiel instellingen worden opgeslagen onder /etc/profile. En hoewel dit bestand kan worden bewerkt directory, is het eigenlijk aanbevolen om globale omgevingsvariabelen op te slaan in een directory genaamd /etc/profile.d, waar u een lijst van bestanden vindt die worden gebruikt om omgevingsvariabelen voor het hele systeem in te stellen.

  1. Maak een nieuw bestand onder /etc/profile.d om de globale omgevingsvariabele(n) in op te slaan. De naam van het bestand moet contextueel zijn, zodat anderen het doel ervan kunnen begrijpen. Voor demonstraties, maken we een permanente omgevingsvariabele voor HTTP_PROXY.
    sudo touch /etc/profile.d/http_proxy.sh
  2. Open het standaard profiel in een teksteditor.
    sudo vi /etc/profile.d/http_proxy.sh
  3. Voeg nieuwe regels toe om de omgevingsvariabelen te exporteren
    export HTTP_PROXY=http://my.proxy:8080

    export HTTPS_PROXY=https://my.proxy:8080

    export NO_PROXY=localhost,::1,.example.com
  4. Bewaar uw wijzigingen en sluit de tekst editor af

Conclusie

Deze tutorial behandelde hoe omgevingsvariabelen in en uit te schakelen voor alle Linux distributies, van Debian tot Red Hat. U hebt ook geleerd hoe u omgevingsvariabelen kunt instellen voor een enkele gebruiker, maar ook voor alle gebruikers.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *