
Op Linux bevatten omgevingsvariabelen belangrijke waarden en instellingen. Scripts, toepassingen en shells lezen deze waarden, vaak om zichzelf te configureren of om hun gedrag te controleren. Hier zijn verschillende manieren om die variabelen in uw terminal weer te geven.
Alles over omgevingsvariabelen
Opdrachten voor afdrukomgevingsvariabelen
Printenv gebruiken om omgevingsvariabelen te zien
Enkele veelvoorkomende omgevingsvariabelen
Milieu-inspecties
Alles over omgevingsvariabelen
Onze verschillende testcomputers hebben elk gemiddeld 50 omgevingsvariabelen. Een omgevingsvariabele is, net als elke andere variabele, een combinatie van een naam en een waarde. De naam is uniek, wordt ingesteld wanneer de variabele wordt gemaakt en blijft geldig voor de levensduur van de omgevingsvariabele.
Variabelen houden waarden voor ons. Wanneer een proces moet weten wat de waarde is, zoekt het de variabele op bij naam en leest het de waarde ervan. Hoewel namen van variabelen niet kunnen worden gewijzigd, kunnen hun waarden dat wel zijn.
U zult de systeemomgevingsvariabelen niet vaak wijzigen, maar u kunt dit wel doen als dat nodig is. U wilt bijvoorbeeld de grootte van uw geschiedeniscache voor de Bash-shell-opdracht vergroten. U kunt de waarde van de . bewerken $HISTSIZE omgevingsvariabele in uw “.bashrc” -bestand om een ​​nieuwe bovengrens in te stellen voor het aantal onthouden commando’s.
Dat is netjes en handig, maar het is niet iets dat u vaak zult doen. Omgevingsvariabelen hebben de neiging om op hun standaardwaarden te blijven of ze worden één keer gewijzigd en vervolgens vergeten. Het is niet iets waar je vaak aan zult sleutelen.
Desalniettemin is het de moeite waard om te weten hoe u de omgevingsvariabelen weergeeft die zijn gedefinieerd en in gebruik zijn op uw computer. Door de omgevingsvariabelen naar een terminalvenster af te drukken, kunt u hun waarden controleren en kunt u zien welke aspecten van uw Linux-ervaring worden bepaald door deze achtergrondwaarden.
Opdrachten voor het afdrukken van omgevingsvariabelen
Je kunt gebruiken echo om de waarde te zien die is opgeslagen in een omgevingsvariabele. Om dat te doen, moet u van tevoren de naam van de omgevingsvariabele weten.
echo $HOME
echo $USER

Er zijn twee methoden die vaak worden gebruikt om de namen en waarden van alle omgevingsvariabelen op Linux te tonen. Zij zijn de env en de printenv commando’s.
De printenv commando is de officiële manier om het te doen. De opdracht is speciaal voor dit doel geschreven. De env commando heeft een heel ander doel.
env wordt gebruikt om een ​​toepassing uit te voeren met tijdelijke, door de gebruiker opgegeven waarden voor omgevingsvariabelen. Deze overschrijven de echte opgeslagen waarden en zorgen ervoor dat de toepassing in een aangepaste omgeving kan worden uitgevoerd. Als je aanroept env zonder opdrachtregelparameters is de standaardactie om de omgevingsvariabelen weer te geven.
We kunnen net zo goed de tool gebruiken die is ontworpen voor de taak, in plaats van afhankelijk te zijn van het neveneffect van een tool die verkeerd is aangeroepen, dus we zullen printenv in onze voorbeelden.
Printenv gebruiken om omgevingsvariabelen te zien
De printenv commando is heel eenvoudig. Het heeft zeer weinig opties. U kunt de --version optie om het releasenummer van de versie op uw computer te achterhalen, en u kunt de --help commando om een ​​korte beschrijving van deze twee en één andere opdrachtregeloptie te zien.
De andere optie is de -0 (null terminator) optie. Gebruikelijk, printenv somt de omgevingsvariabelen één per regel op, door een teken voor een nieuwe regel toe te voegen aan het einde van elke regel. De -0 optie vervangt dat teken van de nieuwe regel door een null-byte. U zou deze optie gebruiken als u de uitvoer naar een andere toepassing zou sturen die de nieuwe regeltekens niet nodig had.
printenv -0

Het effect van de -0 optie in een terminalvenster is om de uitvoer samen te proppen in een ondoordringbare muur van tekst.

Het is praktisch onmogelijk om het te begrijpen. Het zal een zeldzame gebeurtenis zijn als u ooit de -0 keuze. Laten we het laten vallen en het opnieuw proberen.
printenv

De uitvoer wordt afgedrukt met één omgevingsvariabele per regel. Volgens afspraak gebruiken namen van omgevingsvariabelen altijd hoofdletters. Direct na de naam van de variabele staat een gelijkteken “=“, gevolgd door de waarde waarop de omgevingsvariabele is ingesteld.

Er is nog steeds veel output, dus misschien vind je het makkelijker om de output in te pipen less .
printenv | less

Hiermee kunt u door de lijst bladeren en ook in de lijst zoeken.

Als u iets weet over de omgevingsvariabele waarin u geïnteresseerd bent, kunt u gebruik maken van grep om de waarschijnlijke kandidaten te vinden. Stel dat u weet dat er een omgevingsvariabele is met het woord ‘display’ erin. We kunnen de lijst als volgt doorzoeken:
printenv | grep DISPLAY

Enkele veelvoorkomende omgevingsvariabelen
De standaard omgevingsvariabelen op verschillende Linux-computers zijn onderhevig aan de voorkeuren van de beheerders van de verschillende distributies, desktopomgevingen en shells.
Hier zijn enkele van de meest voorkomende omgevingsvariabelen die u waarschijnlijk zult vinden op een Linux-computer die de GNOME-desktopomgeving gebruikt.
- BASHOPTS: De lijst met opdrachtregelopties die werden gebruikt toen bash werd gelanceerd.
- BASH_VERSION: De versie van bash.
- KOLOMMEN: De breedte van de terminal in kolommen.
-
DIRSTACK: De stapel mappen voor gebruik met de
pushdenpopdcommando’s. - HISTFILESSIZE: Het maximum aantal regels met opdrachtgeschiedenis dat naar het geschiedenisbestand kan worden geschreven.
- HISTGROOTTE: Het maximum aantal regels commandogeschiedenis dat in het geheugen mag worden opgeslagen. Als u voorbij dit nummer gaat, worden eerder onthouden commando’s in het geheugen overschreven. Wanneer u uw terminalvenster sluit, wordt de opdrachtgeschiedenis naar het geschiedenisbestand geschreven.
- HUIS: De thuismap van de huidige gebruiker.
- HOSTNAAM: De naam van de computer.
- IFS: Het interne veldscheidingsteken dat wordt gebruikt om gebruikersinvoer te ontleden. De standaardwaarde is een spatie.
- LANG: de huidige taal- en lokalisatie-instellingen, inclusief tekencodering.
- LS_COLORS: Dit definieert de codes die worden gebruikt om kleur toe te voegen aan de uitvoer van ls.
- MAIL: Het pad naar het Linux-postvak van de huidige gebruiker.
- OLDPWD: De vorige werkdirectory.
- PS1: De primaire opdrachtpromptdefinitie. Dit definieert hoe de prompt in uw terminalvenster eruitziet.
- PAD: Een door dubbele punten gescheiden lijst van mappen die in volgorde worden doorzocht op een overeenkomende opdracht of toepassing wanneer u een opdracht in de shell typt.
- PWD: De huidige werkmap.
- SCHELP: De naam van uw standaard shell.
- TERMIJN: Het type terminal dat wordt geëmuleerd wanneer u een shell uitvoert.
- UID: De gebruikers-ID van de huidige gebruiker.
- GEBRUIKER: De huidige gebruiker.
-
_: De meest recent uitgevoerde opdracht. Als je gebruikt
printenvom dit op te sommen, het zal altijd zo zijnprintenv.
Milieu-inspecties
Gebruik . om al uw omgevingsvariabelen te zien printenv. Leid de uitvoer door grep om de resultaten te filteren en gebruik echo om de waarde van een specifieke, bekende omgevingsvariabele af te drukken.
| Linux-opdrachten | ||
| Bestanden |
teer · pv · kat · tac · chmod · grep · verschil · sed · ar · Mens · geduwd · pop · fsck · testschijf · volgende · fd · pandoc · CD · $PATH · awk · meedoen · jq · vouwen · uniek · journaal · staart · stat · ls · fstab · echo · minder · chgrp · chown · rev · Look · snaren · type · hernoemen · zip · uitpakken · monteren · umount · installeren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · lapje · overzetten · clone · versnipperen · srm |
|
| Processen |
alias · scherm · bovenkant · leuk · renice · voortgang · strace · systeemd · tmux · chsh · geschiedenis · Bij · partij · vrij · welke · dmesg · chfn · gebruikersmod · ps · chroot · xargs · tty · pinky · lsof · vmstat · time-out · muur · ja · doden · slaap · sudo · zo · tijd · groepadd · gebruikersmod · groepen · lshw · stilgelegd · opnieuw opstarten · halt houden · uitschakelen · passwd · lscpu · crontab · datum · bg · fg |
|
| Netwerken |
netstat · ping · traceroute · ik p · ss · wie is · fail2ban · bmon · graven · vinger · nmap · ftp · krullen · wget · wie · wie ben ik · met wie · iptables · ssh-keygen · oeps |