Android

Sådan indstilles og listes miljøvariabler i linux

Java JDK 13 Installation and Path Setup - Full Tutorial | Free & Easy

Java JDK 13 Installation and Path Setup - Full Tutorial | Free & Easy

Indholdsfortegnelse:

Anonim

I Linux- og Unix-baserede systemer er miljøvariabler et sæt dynamiske navngivne værdier, gemt i systemet, der bruges af applikationer, der er lanceret i skaller eller underskaller. I enkle ord er en miljøvariabel en variabel med et navn og en tilknyttet værdi.

Miljøvariabler giver dig mulighed for at tilpasse, hvordan systemet fungerer og opførslen af ​​applikationerne på systemet. F.eks. Kan miljøvariablen gemme oplysninger om standardteksteditoren eller browseren, stien til eksekverbare filer eller systemindstillinger og tastaturlayoutindstillinger.

I denne vejledning forklarer vi at læse og indstille miljø- og shell-variabler.

Miljøvariabler og skalvariabler

Variabler har følgende format:

KEY=value KEY="Some other value" KEY=value1:value2

  • Navnene på variablerne er store og små bogstaver. I henhold til konventionen skal miljøvariabler have OPPER CASE-navne. Når der tildeles flere værdier til variablen, skal de adskilles af kolon : karakter.

Variabler kan klassificeres i to hovedkategorier, miljøvariabler og shell-variabler.

Miljøvariabler er variabler, der er tilgængelige i hele systemet og er arvet af alle spawnede børneprocesser og skaller.

Shell-variabler er variabler, der kun gælder for den aktuelle shell-instans. Hver shell såsom zsh og bash har sit eget sæt af interne shell-variabler.

Der er flere kommandoer til rådighed, der giver dig mulighed for at liste og indstille miljøvariabler i Linux:

  • env - Kommandoen giver dig mulighed for at køre et andet program i et brugerdefineret miljø uden at ændre det nuværende. Når det bruges uden et argument, udskrives det en liste over de aktuelle miljøvariabler. printenv - Kommandoen udskriver alle eller de specificerede miljøvariabler. set - Kommandoen sætter eller deaktiverer skalvariabler. Når det bruges uden et argument, udskrives det en liste over alle variabler inklusive miljø- og shell-variabler og shell-funktioner. unset - Kommandoen sletter shell- og miljøvariabler. export - Kommandoen indstiller miljøvariabler.

Liste miljøvariabler

Den mest anvendte kommando til at vise miljøvariablerne er printenv . Hvis navnet på variablen sendes som et argument til kommandoen, vises kun værdien af ​​den variabel. Hvis der ikke er angivet noget argument, udskriver printenv en liste over alle miljøvariabler, en variabel pr. Linje.

For eksempel at vise værdien af ​​den HOME miljøvariabel, du vil køre:

printenv HOME

Outputet udskriver stien for den aktuelt loggede bruger:

/home/linuxize

Du kan også videregive mere end et argument til printenv kommandoen:

printenv LANG PWD

en_US /home/linuxize

printenv

Outputet ser sådan ud:

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

Nedenfor er nogle af de mest almindelige miljøvariabler:

  • USER - Den aktuelle bruger, der er logget ind. HOME - Hjemkataloget for den aktuelle bruger. EDITOR - Standardfileditoren, der skal bruges. Dette er den editor, der bruges, når du skriver edit i din terminal. SHELL - Stien til den aktuelle brugers shell, f.eks. Bash eller zsh. LOGNAME - Navnet på den aktuelle bruger. PATH - En liste over mapper, der skal søges, når du udfører kommandoer. Når du kører en kommando, vil systemet søge i disse mapper i denne rækkefølge og bruge den første fundne eksekverbare. LANG - De aktuelle lokaliseringsindstillinger. TERM - Den aktuelle terminalemulering. MAIL - Placering af hvor den aktuelle brugers mail gemmes.

Kommandoerne printenv og env udskriver kun miljøvariablerne. Hvis du ønsker at få en liste over alle variabler, herunder miljø, shell og variabler og shell-funktioner, kan du bruge sætkommandoen:

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=()

Kommandoen viser en stor liste over alle variabler, så du sandsynligvis ønsker at føre output til kommandoen less .

set | less

Du kan også bruge ekko-kommandoen til at udskrive en skalvariabel. For eksempel at udskrive værdien af ​​den BASH_VERSION variabel, du vil køre:

echo $BASH_VERSION

4.4.19(1)-release

Indstilling af miljøvariabler

For bedre at illustrere forskellen mellem Shell- og miljøvariablerne starter vi med at indstille Shell-variabler og derefter gå videre til miljøvariablerne.

For at oprette en ny MY_VAR med navnet MY_VAR og værdien Linuxize blot indtaste:

MY_VAR='Linuxize'

Du kan kontrollere, at variablen er indstillet ved hjælp af et af echo $MY_VAR til at filtrere output fra echo $MY_VAR med grep- set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Brug kommandoen printenv til at kontrollere, om denne variabel er en miljøvariabel eller ikke:

printenv MY_VAR

Outputet vil være tomt, hvilket fortæller os, at variablen ikke er en miljøvariabel.

Du kan også prøve at udskrive variablen i en sub-shell, og du får en tom output.

bash -c 'echo $MY_VAR'

export bruges til at indstille miljøvariabler.

For at oprette en miljøvariabel skal du blot eksportere skalvariablen som en miljøvariabel:

export MY_VAR

Du kan kontrollere dette ved at køre:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Du kan også indstille miljøvariabler på en enkelt linje:

export MY_NEW_VAR="My New Var"

Miljøvariabler oprettet på denne måde er kun tilgængelige i den aktuelle session. Hvis du åbner en ny skal, eller hvis du logger ud, vil alle variabler gå tabt.

Vedvarende miljøvariabler

For at gøre miljøvariabler vedvarende skal du definere disse variabler i bash-konfigurationsfilerne. I de fleste Linux-distributioner, når du starter en ny session, læses miljøvariabler fra følgende filer:

  • /etc/environment - Brug denne fil til at konfigurere systemdækkende miljøvariabler. Variabler i denne fil er indstillet i følgende format:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Variabler, der er indstillet i denne fil, indlæses, når der indtastes en bash login shell. Når du deklarerer miljøvariabler i denne fil, skal du bruge export :

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    Specifikke konfigurationsfiler pr. Bruger. Hvis du f.eks. Bruger Bash, kan du erklære variablerne i ~/.bashrc :

    export PATH="$HOME/bin:$PATH"

For at indlæse de nye miljøvariabler i den aktuelle shell-session skal du bruge source :

source ~/.bashrc

Konklusion

I denne vejledning har vi vist dig, hvordan du indstiller og angiver miljø- og shell-variabler.

Du er velkommen til at give en kommentar, hvis du har spørgsmål.

terminal