Lista över miljövariabler i Linux/Unix

⚡ Smart sammanfattning

Miljövariabler i Linux och Unix är dynamiska namngivna värden som formar hur program och skalet beter sig och lagrar inställningar som din PATH, hemkatalog, standardredigerare, språk och det skal som för närvarande används.

  • ???? Vad de är: Miljövariabler innehåller dynamiska värden som påverkar processer och kan skapas, redigeras och tas bort.
  • 🧭 VÄG: Variabeln PATH listar de kataloger som skalet söker igenom för att hitta och köra körbara kommandon.
  • 🔎 Läsvärden: Echo-kommandot visar en variabel, medan env och printenv listar alla miljövariabler.
  • 🆕 Skapande: Tilldela ett värde med NAME=value och använd sedan export för att göra det tillgängligt för underprocesser.
  • 🗑️ Tar bort: Kommandot unset tar bort en variabel och dess värde från den aktuella shell-sessionen.
  • 💾 Uthållighet: Lägg till exportrader till ~/.bashrc eller /etc/environment för att behålla variabler över olika sessioner.
  • 🤖 AI-hjälp: AI-assistenter och GitHub Copilot kan granska variabler och generera shell-skript som använder dem.

Lista över vanliga miljövariabler i Linux och Unix

Miljövariabler är bland det första som är värt att förstå i alla Linux eller Unix-system, eftersom de i tysthet styr hur dina program och skal beter sig. Den här guiden förklarar vad de är, de vanligaste och hur man läser, skapar och tar bort dem.

Vad är en datormiljö?

Datormiljön är plattformen (plattform = operativsystem + processor) där en användare kan köra program.

Vad är en variabel?

Inom datavetenskap är en variabel en plats för att lagra ett värde, vilket kan vara ett filnamn, text, tal eller annan data. Den brukar kallas med sitt symboliska namn, som den får när den skapas. Det lagrade värdet kan sedan visas, raderas, redigeras och sparas på nytt.

Variabler spelar en viktig roll i datorprogrammering eftersom de gör det möjligt för programmerare att skriva flexibla program. Eftersom de är knutna till operativsystemet du arbetar i är det viktigt att känna till några av dem och hur du kan påverka dem.

Vad är miljövariabler?

Miljövariabler är dynamiska värden som påverkar processerna eller programmen på en dator. De finns i alla operativsystem, men typerna kan variera. Miljövariabler kan skapas, redigeras, sparas och tas bort, och de ger information om systemets beteende.

Miljövariabler kan ändra hur programvara och program beter sig. Till exempel lagrar miljövariabeln $LANG det språk som användaren förstår. Detta värde läses av ett program så att en kinesisk användare visas ett mandarin-gränssnitt medan en amerikansk användare visas ett engelskt gränssnitt.

Låt oss studera några vanliga miljövariabler:

Variabel BESKRIVNING
VÄG Den här variabeln innehåller en kolonavgränsad (:)-lista över kataloger där systemet söker efter körbara filer. När du anger ett kommando i terminalen söker kommandot i katalogerna som listas i variabeln $PATH. Om kommandot hittas körs det. Annars returnerar det felmeddelandet 'kommandot hittades inte'.
ANVÄNDARE Användarnamnet
HEM Standardsökväg till användarens hemkatalog
REDAKTÖR Sökväg till programmet som redigerar innehållet i filer
UID Användarens unika ID
TERM Standard terminalemulator
SKAL Skal som används av användaren

Få åtkomst till variabelvärden

För att bestämma värdet på en variabel, använd echo-kommandot:

echo $VARIABLE

Till exempel visar skärmdumpen nedan värdet på PATH-variabeln som visas med echo-kommandot.

Visa PATH-variabelvärdet med echo-kommandot

Vilken miljövariabel som helst kan läsas på samma sätt. Utdata nedan visar echo som returnerar värdet på en variabel.

Utdata från echo-kommandot som visar ett miljövariabelvärde

Variabler är skiftlägeskänsliga, så se till att du skriver variabelnamnet med rätt versal; annars kanske du inte får önskat resultat. För att lista alla miljövariabler samtidigt, använd kommandot env, som visas nedan.

env-kommandot listar alla miljövariabler i terminalen

Ställ in nya miljövariabler

Du kan skapa din egen användardefinierade variabel med denna syntax:

VARIABLE_NAME=variable_value

Kom ihåg att variabelnamn är skiftlägeskänsliga och vanligtvis skrivs med versaler. En variabel som skapas på detta sätt är en lokal skalvariabel som bara det aktuella skalet kan se. För att uppgradera den till en miljövariabel som även underprocesser ärver, använd export-kommandot:

export VARIABLE_NAME=value

Skärmdumpen nedan visar en ny variabel som skapas och sedan visas med echo.

Skapa och visa en ny användardefinierad miljövariabel

Ta bort variabler

Följande syntax tar bort en variabel från systemet:

unset variablename

Detta tar bort variabeln och dess värde från den aktuella shell-sessionen, som visas nedan.

Ta bort en miljövariabel med kommandot unset

Vanliga frågor

En skalvariabel finns bara i det aktuella skalet och skickas inte till andra program. En miljövariabel är en skalvariabel som har exporterats, så underprocesser som startas från det skalet ärver den. Använd export-kommandot för att befordra en variabel.

Variabler som anges i terminalen försvinner när du stänger sessionen. För att behålla dem, lägg till exportraden i en startfil: ~/.bashrc eller ~/.profile för en enskild användare, eller /etc/environment för varje användare på systemet. Ladda om filen eller öppna terminalen igen för att tillämpa den.

Lägg till den nya katalogen i den befintliga PATH-katalogen så att du inte skriver över den: export PATH=$PATH:/din/ny/katalog. Detta lägger till din mapp i listan som gränssnittet söker efter kommandon. Skriv in samma rad i ~/.bashrc för att ändringen ska bestå även i nya sessioner.

printenv listar endast miljövariabler och kan visa en enda, till exempel printenv HOME. Kommandot env listar också miljövariabler och kan köra ett program med en modifierad miljö. Kommandot set visar allt, inklusive skalvariabler och funktioner, inte bara exporterade.

Det här betyder vanligtvis att du har skrivit över PATH istället för att lägga till i den, så att gränssnittet inte längre kan hitta standardkommandon. Inkludera alltid $PATH när du ställer in den. För att återställa i den aktuella sessionen, kör export PATH=/usr/local/bin:/usr/bin:/bin och fixa sedan din startfil.

Det är bekvämt men riskabelt. Miljövariabler kan läsas från /proc, ärvs av underprocesser och läcker ofta in i loggar eller kraschrapporter. För känsliga hemligheter, föredra en dedikerad hemlighetshanterare eller en krypterad fil med begränsade behörigheter istället för en vanlig variabel.

AI-assistenter kan förklara vad en okänd variabel gör, granska konfigurationsfiler för saknade eller duplicerade poster och flagga hemligheter som oavsiktligt exponerats i variabler. Maskininlärningsverktyg kan också skanna processmiljöer över många servrar för att upptäcka felkonfigurationer som skulle vara mödosamma att granska manuellt.

Ja. GitHub Copilot kan generera export-satser, ~/.bashrc-redigeringar och shell-skript som läser variabler som $HOME eller $PATH. Den föreslår syntaxen medan du skriver, men du bör granska all kod som hanterar inloggningsuppgifter innan du kör den.

Sammanfatta detta inlägg med: