Linux-handleiding voor beginners
Inhoudsopgave:
- Omgevingsvariabelen en Shell-variabelen
- Lijst omgevingsvariabelen
- Omgevingsvariabelen instellen
- Persistente omgevingsvariabelen
- Conclusie
In Linux- en Unix-systemen zijn omgevingsvariabelen een set dynamische benoemde waarden, opgeslagen in het systeem die worden gebruikt door toepassingen die worden gestart in shells of subshells. In eenvoudige woorden, een omgevingsvariabele is een variabele met een naam en een bijbehorende waarde.
Omgevingsvariabelen stellen u in staat om aan te passen hoe het systeem werkt en het gedrag van de applicaties op het systeem. De omgevingsvariabele kan bijvoorbeeld informatie opslaan over de standaardteksteditor of -browser, het pad naar uitvoerbare bestanden of de instellingen voor systeemlocale en toetsenbordindeling.
In deze handleiding leggen we uit hoe u omgevings- en shell-variabelen kunt lezen en instellen.
Omgevingsvariabelen en Shell-variabelen
Variabelen hebben de volgende indeling:
KEY=value KEY="Some other value" KEY=value1:value2
- De namen van de variabelen zijn hoofdlettergevoelig. Volgens afspraak moeten omgevingsvariabelen HOOFDLETTERS namen hebben. Bij het toewijzen van meerdere waarden aan de variabele moeten ze worden gescheiden door de dubbele punt
:
karakter. Er is geen spatie rondom het gelijk=
symbool.
Variabelen kunnen worden ingedeeld in twee hoofdcategorieën, omgevingsvariabelen en shell-variabelen.
Omgevingsvariabelen zijn variabelen die systeembreed beschikbaar zijn en worden overgenomen door alle voortgebrachte onderliggende processen en shells.
Shell-variabelen zijn variabelen die alleen van toepassing zijn op de huidige shell-instantie. Elke shell zoals
zsh
en
bash
heeft zijn eigen set interne shell-variabelen.
Er zijn verschillende opdrachten beschikbaar waarmee u omgevingsvariabelen in Linux kunt weergeven en instellen:
-
env
- Met de opdracht kunt u een ander programma uitvoeren in een aangepaste omgeving zonder het huidige te wijzigen. Bij gebruik zonder argument wordt een lijst met de huidige omgevingsvariabelen afgedrukt.printenv
- De opdracht drukt alle of de opgegeven omgevingsvariabelen af.set
- De opdracht schakelt shellvariabelen in of uit. Bij gebruik zonder argument wordt een lijst met alle variabelen afgedrukt, inclusief omgevings- en shell-variabelen en shell-functies.unset
- De opdracht verwijdert shell- en omgevingsvariabelen.export
- De opdracht stelt omgevingsvariabelen in.
Lijst omgevingsvariabelen
De meest gebruikte opdracht om de omgevingsvariabelen weer te geven is
printenv
. Als de naam van de variabele als argument aan de opdracht wordt doorgegeven, wordt alleen de waarde van die variabele weergegeven. Als er geen argument is opgegeven, drukt
printenv
een lijst af met alle omgevingsvariabelen, één variabele per regel.
Om bijvoorbeeld de waarde van de omgevingsvariabele
HOME
te geven die u zou uitvoeren:
printenv HOME
De output drukt het pad af van de momenteel ingelogde gebruiker:
/home/linuxize
U kunt ook meerdere argumenten doorgeven aan de opdracht
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
De uitvoer ziet er ongeveer zo uit:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv
Hieronder staan enkele van de meest voorkomende omgevingsvariabelen:
-
USER
- De huidige aangemelde gebruiker.HOME
- De thuismap van de huidige gebruiker.EDITOR
- De standaard te gebruiken bestandseditor. Dit is de editor die wordt gebruikt wanneer u in uw terminaledit
typt.SHELL
- Het pad van de shell van de huidige gebruiker, zoals bash of zsh.LOGNAME
- De naam van de huidige gebruiker.PATH
- Een lijst met mappen die moeten worden doorzocht bij het uitvoeren van opdrachten. Wanneer u een opdracht uitvoert, zoekt het systeem in die mappen in deze volgorde en gebruikt het het eerst gevonden uitvoerbare bestand.LANG
- De huidige landinstellingen.TERM
- De huidige terminalemulatie.MAIL
- Locatie waar de e-mail van de huidige gebruiker is opgeslagen.
De opdrachten
printenv
en
env
drukken alleen de omgevingsvariabelen af. Als u een lijst wilt krijgen van alle variabelen, inclusief omgeving, shell en variabelen en shell-functies, kunt u de opdracht
set
gebruiken:
set
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()
Met de opdracht wordt een grote lijst met alle variabelen weergegeven, dus u wilt waarschijnlijk de uitvoer naar de opdracht
less
.
set | less
U kunt ook de opdracht echo gebruiken om een shell-variabele af te drukken. Als u bijvoorbeeld de waarde van de variabele
BASH_VERSION
wilt afdrukken, zou u:
echo $BASH_VERSION
Omgevingsvariabelen instellen
Om het verschil tussen de Shell- en de omgevingsvariabelen beter te illustreren, beginnen we met het instellen van Shell-variabelen en gaan we door naar de omgevingsvariabelen.
Om een nieuwe shell-variabele met de naam
MY_VAR
en de waarde
Linuxize
te maken, typt u eenvoudig:
MY_VAR='Linuxize'
U kunt controleren of de variabele is ingesteld door
echo $MY_VAR
bij het filteren van de uitvoer van de set-opdracht met grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Gebruik de opdracht
printenv
om te controleren of deze variabele een omgevingsvariabele is of niet:
printenv MY_VAR
De uitvoer is leeg, wat aangeeft dat de variabele geen omgevingsvariabele is.
Je kunt ook proberen de variabele in een subshell af te drukken en je krijgt een lege uitvoer.
bash -c 'echo $MY_VAR'
De
export
wordt gebruikt om omgevingsvariabelen in te stellen.
Om een omgevingsvariabele te maken, exporteert u eenvoudig de shell-variabele als omgevingsvariabele:
export MY_VAR
Je kunt dit controleren door te draaien:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
U kunt ook omgevingsvariabelen instellen op één regel:
export MY_NEW_VAR="My New Var"
Omgevingsvariabelen die op deze manier zijn gemaakt, zijn alleen beschikbaar in de huidige sessie. Als u een nieuwe shell opent of uitlogt, gaan alle variabelen verloren.
Persistente omgevingsvariabelen
Om omgevingsvariabelen persistent te maken, moet u die variabelen definiëren in de bash-configuratiebestanden. In de meeste Linux-distributies worden bij het starten van een nieuwe sessie omgevingsvariabelen gelezen uit de volgende bestanden:
-
/etc/environment
- gebruik dit bestand om systeembrede omgevingsvariabelen in te stellen. Variabelen in dit bestand hebben de volgende indeling:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- variabelen die in dit bestand zijn ingesteld, worden geladen wanneer een bash-login shell wordt ingevoerd. Wanneer u omgevingsvariabelen in dit bestand declareert, moet u deexport
gebruiken:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
Shell-configuratiebestanden per gebruiker. Als u bijvoorbeeld Bash gebruikt, kunt u de variabelen in de
~/.bashrc
declareren:export PATH="$HOME/bin:$PATH"
Gebruik de opdracht
source
om de nieuwe omgevingsvariabelen in de huidige shell-sessie te laden:
Conclusie
In deze gids hebben we u laten zien hoe u omgevings- en shell-variabelen instelt en vermeldt.
Als je nog vragen hebt, kun je een reactie achterlaten.
terminalHoe Google Agenda verschillende tijdzones weer te geven
Leer hoe u Google Agenda verschillende tijdzones laat weergeven naast de huidige tijdzone in de kalenderweergave.
Hoe internet snelheid weer te geven op de taakbalk in Windows
Vraagt u zich af hoe u de internetsnelheid op Windows kunt controleren? Raadpleeg deze handleiding om de netwerksnelheid weer te geven in de taakbalk van uw Windows-laptop.
Hoe ontbrekende datum en tijd in de taakbalk op Windows weer te geven
Is de klok verdwenen van de taakbalk op uw Windows-pc? Ga als volgt te werk om de datum en tijd terug te brengen op de taakbalk.