Команда export в Linux используется для создания переменных среды. Вы можете использовать ее так:
export myvar
или сокращение как здесь, чтобы присвоить значение сразу:
export myvar=5
Вы можете увидеть значение экспортируемых переменных с помощью команды echo :
echo $myvar
Чтобы сделать изменения постоянными, вы должны добавить их в файл ~ / .bashrc.
Это было просто краткое изложение. Давайте посмотрим ее в деталях, чтобы лучше понять.
В приведенном ниже примере мы объявляем переменную оболочки var и присваиваю ей значение 3. Пока это переменная оболочки.
andreyex@destroyer:~$ var=3 andreyex@destroyer:~$ echo $var 3
Если мы выйдем из терминала и откроем новый терминал, эта переменная оболочки исчезнет. Если мы хотим использовать эту переменную в сценарии оболочки, она не будет работать. Точно так же, если мы переключаем пользователя (и, таким образом, запускаю новую оболочку с этим пользователем), эта переменная оболочки не будет доступна:
andreyex@destroyer:~$ su alex Password: alex@destroyer:/home/andreyex$ echo $var
Теперь вернемся к предыдущему пользователю (и, таким образом, к предыдущей оболочке, где мы объявили переменную оболочки). Вы можете видеть, что переменная все еще существует здесь (потому что мы еще не завершили эту сессию оболочки):
alex@destroyer:/home/andreyex$ exit exit andreyex@destroyer:~$ echo $var 3
Итак, теперь, если мы используем здесь команду экспорта для переменной var, она станет переменной окружения и будет доступна для всех вложенных оболочек, пользователей и сценариев оболочки в этом сеансе.
andreyex@destroyer:~$ export var andreyex@destroyer:~$ echo $var 3 andreyex@destroyer:~$ su alex Password: alex@destroyer:/home/andreyex$ echo $var 3
Вы можете проверить все переменные окружения, используя команду printenv:
printenv
Но борьба не заканчивается здесь. Если вы закроете сеанс, выйдете из терминала, выйдете из системы или перезагрузите систему, ваша переменная среды снова исчезнет.
Вот почему принято добавлять команду export в файл конфигурации среды выполнения (rc) вашей оболочки.
Каждая оболочка имеет этот rc-файл, расположенный в домашнем каталоге пользователя, который используется для определения переменных и другой конфигурации при запуске оболочки. Как пользователь, вы можете использовать этот файл rc для настройки вашей оболочки и ее поведения.
Если вы используете оболочку bash, у вас должен быть файл bashrc в ~/.bashrc. Вы можете отредактировать этот файл в текстовом редакторе, таком как Vim, или просто добавить к нему файл export var = 3 (или что-либо, что вы экспортируете).
Сделав это, вы должны использовать исходную команду, чтобы сделать изменения доступными немедленно.
Хорошей практикой является хранение всех пользовательских переменных среды в одном месте.
Одно из наиболее распространенных применений команды export – это когда вы хотите добавить что-то в путь, чтобы ваша система Linux нашла определенный командный/исполняемый файл.
Например, если вы установили maven и хотите иметь возможность его запустить, вы должны добавить в каталог расположение исполняемых файлов maven следующим образом:
export PATH=/opt/maven/bin:$PATH
Что оно делает? Он добавляет это местоположение каталога к пути. Когда вы пытаетесь запустить команду в Linux, ваша система ищет ее исполняемый файл (обычно в каталоге bin) в каталогах, упомянутых в переменной PATH.
andreyex@destroyer:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin andreyex@destroyer:~$ export PATH=/opt/maven/bin:$PATH andreyex@destroyer:~$ echo $PATH /opt/maven/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Мы настоятельно рекомендуем прочитать о структуре каталогов Linux, чтобы иметь лучшее представление.
Предположим, вы хотите удалить «экспортированную» переменную. Вы можете использовать опцию “-” следующим образом:
export -n myvar
Мы надеемся, что у вас теперь создалось представление о команде export в Linux. Если у вас есть сомнения, пожалуйста, не стесняйтесь спрашивать в разделе комментариев.