Linux - Tab Autocomplete, Whatis, Man Pages, --Help
Innehållsförteckning:
- Miljövariabler och skalvariabler
- Lista miljövariabler
- Ställa in miljövariabler
- Persistenta miljövariabler
- Slutsats
I Linux- och Unix-baserade system är miljövariabler en uppsättning dynamiska namngivna värden, lagrade i systemet som används av applikationer som startats i skal eller subhells. I enkla ord är en miljövariabel en variabel med ett namn och ett tillhörande värde.
Miljövariabler låter dig anpassa hur systemet fungerar och beteendet hos applikationerna på systemet. Till exempel kan miljövariabeln lagra information om standardtextredigeraren eller webbläsaren, sökvägen till körbara filer eller systeminställningarna och inställningarna för tangentbordslayout.
I den här guiden kommer vi att förklara att läsa och ställa in miljö- och skalvariabler.
Miljövariabler och skalvariabler
Variabler har följande format:
KEY=value KEY="Some other value" KEY=value1:value2
- Namnen på variablerna är skiftlägeskänsliga. Enligt konventionen bör miljövariabler ha UPPER CASE-namn. Vid tilldelning av flera värden till variabeln måste de separeras av kolon
:
karaktär. Det finns inget utrymme runt symbolen lika=
.
Variabler kan klassificeras i två huvudkategorier, miljövariabler och skalvariabler.
Miljövariabler är variabler som är tillgängliga systemomfattande och ärvs av alla spawnade barnprocesser och skal.
Skalvariabler är variabler som endast gäller den nuvarande skalinstansen. Varje skal såsom
zsh
och
bash
har sin egen uppsättning interna skalvariabler.
Det finns flera kommandon som låter dig lista och ställa in miljövariabler i Linux:
-
env
- Kommandot låter dig köra ett annat program i en anpassad miljö utan att ändra det nuvarande. När det används utan argument kommer det att skriva ut en lista över de aktuella miljövariablerna.printenv
- Kommandot skriver ut alla eller de angivna miljövariablerna.set
- Kommandot ställer in eller stänger av skalvariabler. När det används utan argument kommer det att skriva ut en lista över alla variabler inklusive miljö- och skalvariabler och skalfunktioner.unset
- Kommandot raderar skal- och miljövariabler.export
- Kommandot anger miljövariabler.
Lista miljövariabler
Det mest använda kommandot för att visa miljövariablerna är
printenv
. Om variabelns namn skickas som ett argument till kommandot, visas bara värdet på den variabeln. Om inget argument anges
printenv
ut
printenv
en lista över alla miljövariabler, en variabel per rad.
För att exempelvis visa värdet på den
HOME
miljövariabel du skulle köra:
printenv HOME
Utmatningen kommer att skriva ut banan för den för närvarande inloggade användaren:
/home/linuxize
Du kan också överföra mer än ett argument till kommandot
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
Utgången ser ut så här:
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
Nedan följer några av de vanligaste miljövariablerna:
-
USER
- Den aktuella inloggade användaren.HOME
- Den aktuella användarens hemkatalog.EDITOR
- Standardfilredigeraren som ska användas. Detta är redigeraren som kommer att användas när du skriveredit
i din terminal.SHELL
- Sökvägen för den aktuella användarens skal, till exempel bash eller zsh.LOGNAME
- Namnet på den aktuella användaren.PATH
- En lista över kataloger som ska sökas vid körning av kommandon. När du kör ett kommando kommer systemet att söka i de katalogerna i den här ordningen och använda den första hittade körbara.LANG
- De aktuella lokaliseringsinställningarna.TERM
- Den aktuella terminalemuleringen.MAIL
- Plats för var den nuvarande användarens e-post lagras.
printenv
och
env
skriver bara miljövariablerna. Om du vill få en lista över alla variabler, inklusive miljö, skal och variabler och skalfunktioner, kan du använda
set
kommandot:
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=()
Kommandot visar en stor lista med alla variabler så du förmodligen vill leda utdata till kommandot
less
.
set | less
Du kan också använda ekokommandot för att skriva ut en skalvariabel. För att exempelvis skriva ut värdet på variabeln
BASH_VERSION
du skulle köra:
echo $BASH_VERSION
Ställa in miljövariabler
För att bättre illustrera skillnaden mellan Shell- och miljövariablerna börjar vi med att ställa in Shellvariabler och sedan gå vidare till miljövariablerna.
För att skapa en ny skalvariabel med namnet
MY_VAR
och värde
Linuxize
bara:
MY_VAR='Linuxize'
Du kan verifiera att variabeln är inställd genom att använda antingen ett
echo $MY_VAR
för att filtrera utgången från set-kommandot med grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Använd kommandot
printenv
att kontrollera om denna variabel är en miljövariabel eller inte:
printenv MY_VAR
Utgången kommer att vara tom vilket säger att variabeln inte är en miljövariabel.
Du kan också försöka skriva ut variabeln i ett underskal och du får en tom utgång.
bash -c 'echo $MY_VAR'
export
används för att ställa in miljövariabler.
För att skapa en miljövariabel exporterar du bara skalvariabeln som en miljövariabel:
export MY_VAR
Du kan kontrollera detta genom att köra:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
Du kan också ställa in miljövariabler på en enda rad:
export MY_NEW_VAR="My New Var"
Miljövariabler som skapats på detta sätt är endast tillgängliga under den aktuella sessionen. Om du öppnar ett nytt skal eller om du loggar ut kommer alla variabler att gå förlorade.
Persistenta miljövariabler
För att göra miljövariabler variga måste du definiera dessa variabler i bash-konfigurationsfilerna. I de flesta Linux-distributioner när du startar en ny session läses miljövariabler från följande filer:
-
/etc/environment
- Använd den här filen för att ställa in systemomfattande miljövariabler. Variabler i denna fil är inställda i följande format:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- Variabler som anges i den här filen laddas varje gång ett bash-inloggningsskal matas in. När du deklarerar miljövariabler i den här filen måste du användaexport
:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
Specifika konfigurationsfiler per användare. Om du till exempel använder Bash kan du förklara variablerna i
~/.bashrc
:export PATH="$HOME/bin:$PATH"
För att ladda de nya miljövariablerna i den aktuella skal-sessionen använder du källkommandot:
Slutsats
I den här guiden har vi visat hur du ställer in och listar miljö- och skalvariabler.
Lämna gärna en kommentar om du har några frågor.
terminalLedamöter av Europaparlamentet kommer att avgöra om en rad frågor, bland annat hur man reglerar telekomföretag i EU, hur man straffar företag som snedvrider konkurrensen, hur man delar radiofrekvenser som släpps av TV: s migrering till digital sändning och hur man skyddar medborgarnas data i den digitala tiden.
Men de är delade om huruvida IP-adresser ska ses som personuppgifter. "Vi kommer att be kommissionen att formellt lägga fram en rapport om detta", säger Malcolm Harbour, en brittisk konservativ parlamentsledamot som spelar en central roll för att hylla den så kallade telekomrevisionen genom parlamentet.
Det är inte lätt att vara WinZip idag. Windows har kunnat öppna och skapa Zip-filer på egen hand en stund, och gratis, kraftfulla komprimeringsverktyg som 7-Zip är lättillgängliga och aktivt underhållna. Och ändå soldaterna 20-åriga soldater på med version 17, som levererar imponerande verktyg och visar en känd medvetenhet om det snabbt växande molnlagrings- och fildelningslandskapet. Ny integration med molnetjänster och sociala nätverk ger WinZip ett fast fotfäste i onlinevärlden. Den är tillgä
WinZip 17 är inte den första versionen som innehåller Ribbon-gränssnittet, den rad av stora, djärva ikoner som debuterade med Microsofts kontor 2007. Inte alla älskar bandet, men WinZip har traditionellt varit verktygsfältbaserat, så bandet fungerar bra för det. UI: n delar bandflikar enligt funktionalitet, med tydliga etiketter som Unzip, Edit, Share, Tools och Settings. WinZip har gjort lite extra arbete så att när du startar programmet färskt skapas den första fliken, så att du snabbt kan läg
Hur man skapar och listar lokala och avlägsna gitgrenar
När man fixar ett fel eller arbetar med en ny funktion skapar utvecklare en ny gren som senare kan slås samman till huvudkodbasen. Den här guiden beskriver hur du skapar och listar lokala och avlägsna Git-grenar.