Команда export в Linux используется для создания переменных среды. Вы можете использовать ее так:
export myvar
или сокращение как здесь, чтобы присвоить значение сразу:
export myvar=5
Вы можете увидеть значение экспортируемых переменных с помощью команды echo :
echo $myvar
Чтобы сделать изменения постоянными, вы должны добавить их в файл ~ / .bashrc.
Это было просто краткое изложение. Давайте посмотрим ее в деталях, чтобы лучше понять.
Понимание того, как работает команда export
В приведенном ниже примере мы объявляем переменную оболочки 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
Сделать экспортированные переменные оболочки «постоянными» с помощью файла bashrc
Но борьба не заканчивается здесь. Если вы закроете сеанс, выйдете из терминала, выйдете из системы или перезагрузите систему, ваша переменная среды снова исчезнет.
Вот почему принято добавлять команду 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. Если у вас есть сомнения, пожалуйста, не стесняйтесь спрашивать в разделе комментариев.