Environment variabelen in Linux

Op deze pagina:

In een Bash shell heb je de beschikking over environment variabelen (omgevingsvariabelen) die voor alle programma's en opdrachten beschikbaar zijn. Deze variabelen kunnen in configuratiebestanden zijn ingesteld, maar ze kunnen ook rechtstreeks in de shell worden ingesteld of aangepast.

De environment variabelen kunnen worden onderverdeeld in 3 typen: lokaal, gebruiker en systeem.

Lokale environment variabelen

Dit zijn variabelen die alleen in de huidige shell sessie bestaan. Ze staan niet in een configuratiebestand, maar worden in de sessie zelf aangemaakt. Deze variabelen worden ook doorgegeven aan kind-sessies, dus shell sessies die vanuit de huidige shell sessie worden gestart.

Gebruiker environment variabelen

Dit zijn variabelen die alleen gelden voor de ingelogde gebruiker. Deze variabelen staan in de configuratiebestanden in de home directory van die gebruiker. Het gaat om de volgende bestanden:

.bashrc (voor lokale inlog),

.bash_profile (voor inlog op afstand via ssh),

.bash_login (voor inlog op afstand via ssh) en

.profile (voor inlog op afstand via ssh).

Het zijn verborgen bestanden, de bestandsnamen beginnen met een punt.

Systeem environment variabelen

Dit zijn variabelen die voor alle gebruikers gelden, ze worden geladen vanuit de volgende configuratiebestanden:

/etc/environment (voor elke gebruiker, zowel lokaal als via ssh),

/etc/profile (voor elke inlog via ssh),

/etc/profile.d/ (voor elke inlog via ssh) en

/etc/bash.bashrc (voor elke lokale gebruiker).

Alle environment variabelen zien

Om alle huidige environment variabelen met hun waarden te zien kun je het volgende intypen: env.

Alle huidige omgevingsvariabelen laten zien kan ook met printenv.

Aanpassen van lokale environment variabelen

Een lokale environment variabele kun je als volgt aanpassen:


var=waarde

of:


export var=waarde

Let op: er mag geen spatie staan tussen de naam van de variabele en het is gelijk teken. Er mag ook geen spatie staan tussen het is gelijk teken en de waarde van de variabele.

De namen van variabelen zijn hoofdlettergevoelig: MIJNVAR is een andere variabele als mijnvar.

Meestal worden voor de namen van omgevingsvariabelen hoofdletters gebruikt.

Als een variabele meerdere waarden bevat, dan moeten deze worden gescheiden door dubbele punten.

Waarden die spaties bevatten moet je tussen aanhalingstekens plaatsen.

Voorbeeld:


$ ECHTWAAR='Linux is geweldig!'
$ echo $ECHTWAAR

# resultaat:
Linux is geweldig!

Je kunt een de waarde van een variabele ook weergeven met printenv, je kunt dan het dollarteken weglaten:


$ ECHTWAAR='Linux is geweldig!'
$ printenv ECHTWAAR

# resultaat:
Linux is geweldig!

Je kunt een variabele ook weer verwijderen met unset:


unset var

Je kunt een variabele ook leegmaken door een lege tekst toe te wijzen:


var=''

Om een variabele die in een configuratiebestand staat permanent te verwijderen, moet je deze uit het configuratiebestand weghalen.

Je kunt ook een shell openen zonder environment variabelen:


env –i bash

Zodra deze shell weer gesloten wordt zijn de environment variabelen weer terug.

Aanpassen van gebruiker en systeem environment variabelen

Het aanpassen of maken van gebruiker en systeem environment variabelen moet via de configuratie bestanden.Bij het aanmaken van een variabele geef je deze een naam, bij het gebruik ervan zet je een dollarteken voor de naam.

Om een variabele toe te voegen, gebruik je export in het configuratie bestand:


export MIJNVAR=mijnwaarde

Het toevoegen van een environment variabele kan ook via de shell met slechts één regel:


echo 'MIJNVAR=mijnwaarde' >> ~/.bashrc

Om de aanpassing in werking te laten treden, moet je het aangepaste configuratie bestand 'sourcen':


source .bashrc

echo $MIJNVAR

# resultaat:
mijnwaarde

In het configuratiebestand /etc/environment mag je geen export gebruiken, hier gebruik je:


MIJNVAR=mijnwaarde

$PATH aanpassen

Als je een map in je home directory hebt met scripts. bijvoorbeeld 'mijnscripts' en je wilt dat die vanuit elke map waar je een shell opent beschikbaar is, dan kun je de $PATH variabele uitbreiden met deze map, door de volgende regel toe te voegen in .bashrc:


export PATH=$PATH:~/mijnscripts

Hierbij is het belangrijk dat je PATH uitbreid en niet vervangt, anders zijn de programma's in de oorspronkelijke PATH niet meer te vinden.

De dubbele punt wordt hier gebruikt omdat de variabele PATH uit meerdere waarden bestaat. De dubbele punt is de scheiding tussen de waarden.

$SHELL

De omgevingsvariabele $SHELL bevat het pad naar je shell, als je bash gebruikt is dat:


echo $SHELL

# resultaat:
/bin/bash

$HOME

De omgevingsvariabele $HOME bevat het pad naar je home directory, als je kees heet, dan is dat:


echo $HOME

# resultaat:
/home/kees

Je kunt zo'n omgevingsvariabele bijvoorbeeld gebruiken in een opdracht:


touch $HOME/nieuwbestand.txt

ls $HOME/nieuwbestand.txt

# resultaat:
/home/kees/nieuwbestand.txt

$USER

De omgevingsvariabele $USER geeft je gebruikersnaam.

 

Verwante artikelen