Android

Jak ustawić i wyświetlić zmienne środowiskowe w systemie Linux

Командная строка Linux для новичков

Командная строка Linux для новичков

Spisu treści:

Anonim

W systemach Linux i Unix zmienne środowiskowe to zestaw dynamicznych nazwanych wartości, przechowywanych w systemie, używanych przez aplikacje uruchomione w powłokach lub podpowłokach. Krótko mówiąc, zmienna środowiskowa to zmienna o nazwie i powiązanej wartości.

Zmienne środowiskowe pozwalają dostosować sposób działania systemu i zachowanie aplikacji w systemie. Na przykład zmienna środowiskowa może przechowywać informacje o domyślnym edytorze tekstu lub przeglądarce, ścieżce do plików wykonywalnych lub ustawieniach regionalnych systemu i układu klawiatury.

W tym przewodniku wyjaśnimy, jak czytać i ustawiać zmienne środowiskowe i powłoki.

Zmienne środowiskowe i zmienne powłokowe

Zmienne mają następujący format:

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

  • W nazwach zmiennych rozróżniana jest wielkość liter. Zgodnie z konwencją zmienne środowiskowe powinny mieć nazwy WIELKIE SPRAWY. Przy przypisywaniu wielu wartości do zmiennej należy je rozdzielić dwukropkiem : znak. Wokół znaku równości = nie ma spacji.

Zmienne można podzielić na dwie główne kategorie, zmienne środowiskowe i zmienne powłoki.

Zmienne środowiskowe to zmienne dostępne w całym systemie i dziedziczone przez wszystkie odrodzone procesy potomne i powłoki.

Zmienne powłoki to zmienne, które dotyczą tylko bieżącej instancji powłoki. Każda powłoka, taka jak zsh i bash , ma swój własny zestaw wewnętrznych zmiennych powłoki.

Dostępnych jest kilka poleceń, które pozwalają wyświetlić i ustawić zmienne środowiskowe w systemie Linux:

  • env - Polecenie pozwala na uruchomienie innego programu w środowisku niestandardowym bez modyfikowania bieżącego. Jeśli zostanie użyty bez argumentu, wydrukuje listę bieżących zmiennych środowiskowych. printenv - Polecenie drukuje wszystkie lub określone zmienne środowiskowe. set - Komenda ustawia lub usuwa zmienne powłoki. Jeśli zostanie użyta bez argumentu, wydrukuje listę wszystkich zmiennych, w tym zmiennych środowiskowych i zmiennych powłoki oraz funkcji powłoki. unset - polecenie usuwa powłoki i zmienne środowiskowe. export - polecenie ustawia zmienne środowiskowe.

Lista zmiennych środowiskowych

Najczęściej używanym poleceniem do wyświetlania zmiennych środowiskowych jest printenv . Jeśli nazwa zmiennej jest przekazywana jako argument do polecenia, wyświetlana jest tylko wartość tej zmiennej. Jeśli nie podano żadnego argumentu, printenv drukuje listę wszystkich zmiennych środowiskowych, po jednej zmiennej w wierszu.

Na przykład, aby wyświetlić wartość zmiennej środowiskowej HOME , należy uruchomić:

printenv HOME

Wyjście wyświetli ścieżkę aktualnie zalogowanego użytkownika:

/home/linuxize

Możesz także przekazać więcej niż jeden argument do polecenia printenv :

printenv LANG PWD

en_US /home/linuxize

printenv

Dane wyjściowe będą wyglądać mniej więcej tak:

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

Poniżej znajdują się niektóre z najczęstszych zmiennych środowiskowych:

  • USER - Bieżący zalogowany użytkownik. HOME - katalog domowy bieżącego użytkownika. EDITOR - Domyślny edytor plików do użycia. Jest to edytor, który będzie używany, gdy wpiszesz edit w swoim terminalu. SHELL - ścieżka powłoki bieżącego użytkownika, na przykład bash lub zsh. LOGNAME - nazwa bieżącego użytkownika. PATH - Lista katalogów do przeszukania podczas wykonywania poleceń. Po uruchomieniu polecenia system przeszuka katalogi w tej kolejności i użyje pierwszego znalezionego pliku wykonywalnego. LANG - aktualne ustawienia regionalne. TERM - bieżąca emulacja terminala. MAIL - Miejsce przechowywania poczty bieżącego użytkownika.

Polecenia printenv i env drukują tylko zmienne środowiskowe. Jeśli chcesz uzyskać listę wszystkich zmiennych, w tym środowiska, powłoki i zmiennych oraz funkcji powłoki, możesz użyć polecenia set :

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

Polecenie wyświetli dużą listę wszystkich zmiennych, więc prawdopodobnie chcesz przesłać dane wyjściowe do polecenia less .

set | less

Możesz także użyć polecenia echo, aby wydrukować zmienną powłoki. Na przykład, aby wydrukować wartość zmiennej BASH_VERSION , uruchomiłbyś:

echo $BASH_VERSION

4.4.19(1)-release

Ustawianie zmiennych środowiskowych

Aby lepiej zilustrować różnicę między zmiennymi powłoki i zmiennymi środowiska, zaczniemy od ustawienia zmiennych powłoki, a następnie przejdziemy do zmiennych środowiska.

Aby utworzyć nową zmienną powłoki o nazwie MY_VAR i wartościować Linuxize po prostu wpisz:

MY_VAR='Linuxize'

Możesz sprawdzić, czy zmienna jest ustawiona, używając echo $MY_VAR filtrowania danych wyjściowych polecenia set za pomocą grep set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Użyj komendy printenv aby sprawdzić, czy ta zmienna jest zmienną środowiskową:

printenv MY_VAR

Dane wyjściowe będą puste, co oznacza, że ​​zmienna nie jest zmienną środowiskową.

Możesz także spróbować wydrukować zmienną w podpowłoce, a otrzymasz pusty wynik.

bash -c 'echo $MY_VAR'

Polecenie export służy do ustawiania zmiennych środowiskowych.

Aby utworzyć zmienną środowiskową, po prostu wyeksportuj zmienną powłoki jako zmienną środowiskową:

export MY_VAR

Możesz to sprawdzić, uruchamiając:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Możesz także ustawić zmienne środowiskowe w jednym wierszu:

export MY_NEW_VAR="My New Var"

Zmienne środowiskowe utworzone w ten sposób są dostępne tylko w bieżącej sesji. Jeśli otworzysz nową powłokę lub wylogujesz się, wszystkie zmienne zostaną utracone.

Trwałe zmienne środowiskowe

Aby zmienne środowiskowe były trwałe, musisz zdefiniować te zmienne w plikach konfiguracyjnych bash. W większości dystrybucji Linuksa po rozpoczęciu nowej sesji zmienne środowiskowe są odczytywane z następujących plików:

  • /etc/environment - użyj tego pliku, aby skonfigurować ogólnosystemowe zmienne środowiskowe. Zmienne w tym pliku są ustawione w następującym formacie:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Zmienne ustawione w tym pliku są ładowane za każdym razem, gdy wprowadzana jest powłoka logowania bash. Podczas deklarowania zmiennych środowiskowych w tym pliku należy użyć polecenia export :

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

    Pliki konfiguracyjne specyficzne dla powłoki użytkownika. Na przykład, jeśli używasz Bash, możesz zadeklarować zmienne w ~/.bashrc :

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

Aby załadować nowe zmienne środowiskowe do bieżącej sesji powłoki, użyj polecenia source :

source ~/.bashrc

Wniosek

W tym przewodniku pokazaliśmy, jak ustawić i wyświetlić zmienne środowiskowe i powłoki.

Jeśli masz jakieś pytania, zostaw komentarz.

terminal