Linux что такое переменная export

Содержание
  1. Изучаем команды Linux: export
  2. 1. Введение
  3. 2. Часто используемые опции
  4. 3. Основы export
  5. 4. Дочерние и родительские процессы
  6. 5. Использование команды export
  7. 6. Экспорт функций командной оболочки
  8. 7. Удаление имен из списка экспорта
  9. 8. Заключение
  10. Команда export — экспорт переменных и функций дочерним процессам в Linux.
  11. Linux что такое переменная export
  12. Примеры использования
  13. Добавление директории в список директорий переменной PATH
  14. Экспорт функции
  15. ИТ База знаний
  16. Полезно
  17. Навигация
  18. Серверные решения
  19. Телефония
  20. Корпоративные сети
  21. Переменные окружения в Linux: как посмотреть, установить и сбросить
  22. Переменные окружения и переменные оболочки
  23. Про Linux за 5 минут
  24. Вывести список всех переменных окружения и оболочки
  25. Общий набор переменных окружения в Linux
  26. Установка переменных окружения в Linux
  27. Установить постоянные переменные окружения в Linux
  28. Использование файла .bashrc
  29. Использование файла .bash_profile
  30. Использование etc/environment
  31. Установить переменные окружения в одной строкой
  32. Сбросить переменные окружения в Linux
  33. Использование команды unset
  34. Использование команды set -n
  35. Установить переменную окружения PATH в Linux
  36. Заключение

Изучаем команды Linux: export

1. Введение

Export — это одна из встроенных команд оболочки bash, поэтому она является неотъемлемой частью вашей командной строки. Она очень проста в использовании, так как синтаксис export допускает использование всего трех опций командной строки. В целом команда export отмечает переменную окружения для экспорта с любым новым дочерним процессом, и это позволяет дочернему процессу наследовать все отмеченные переменные. В данной статье этот процесс будет описан более подробно.

2. Часто используемые опции

-p
выводит список всех имен, экспортированных в текущей оболочке
-n
удаляет имена из списка экспорта
-f
имена экспортируются как функции

3. Основы export

Подумайте над следующим примером:

Строка 1: создается новая переменная с именем «a», содержащая строку «linuxcareer.com».
Строка 2: мы используем команду echo, чтобы вывести содержимое переменной «a».
Строка 3: мы создаем дочерний экземпляр оболочки bash.
Строка 4: переменная «a» теперь не определена.

Из приведенного выше примера можно видеть, что любой дочерний процесс, ответвляющийся от родительского процесса, по умолчанию не наследует переменные родителя. Для этого и нужна команда export. Что произойдет, если мы используем команду export в вышеприведенном примере?

Теперь в строке 3 мы использовали команду export, чтобы экспортировать переменную «a» в созданный новый дочерний процесс. В результате переменная «a» все еще содержит строку «linuxcareer.com», даже после создания нового экземпляра оболочки bash. Здесь важно отметить, что для успешного экспорта «a» необходимо, чтобы процесс, в который экспортируется переменная, ответвлялся от того родительского процесса, из которого экспортируется эта переменная. Связь между дочерним и родительским процессами описана ниже.

4. Дочерние и родительские процессы

В этом разделе мы коротко опишем взимосвязь между дочерним и родительским процессом. Все процессы могут быть родительскими и дочерними одновременно. Единственным исключением является процесс init, который всегда имеет PID (ID процесса) 1. Поэтому init является родительским для всех процессов, запущенных в системе Linux.

Любой создаваемый процесс имеет родительский процесс, из которого он создается, и может быть определен как потомок этого родительского процесса. Например:

Строка 1: вывести PID текущей командной оболочки — 27861
Строка 2: создать новый дочерний процесс из процесса с ID 27861
Строка 3: вывести PID текущей командной оболочки — 28034
Строка 4: вывести список дочерних процессов для PID 27861 с помощью команды ps

При создании нового дочернего процесса команда export просто обеспечивает, что все экспортируемые переменные родительского процесса доступны в дочернем процессе.

5. Использование команды export

Теперь, изучив основы, мы можем продолжить детальное исследование команды export. При использовании команды безо всяких опций и аргументов она просто выводит имена всех переменных, отмеченных для экспорта в дочерние процессы. То же самое происходит при использовании опции -p:

Как было показано выше, для экспорта переменной мы просто используем имя переменной в качестве аргумента команды export.

Как вы можете видеть, после экспорта переменной MYVAR, она будет показываться в списке экспортируемых переменных (строка 4). Приведенный выше пример можно сократить, используя команду export сразу при присваивании значения переменной.

Наиболее широко команда export применяется для объявления переменной оболочки PATH:

В этом примере мы включаем дополнительный путь /usr/local/bin в существующее определение PATH.

6. Экспорт функций командной оболочки

Используя опцию -f, команда export может быть также использована для экспорта функций. В примере ниже мы создаем функцию оболочки под именем printname, которая просто выводит строку «Linuxcareer.com» с помощью команды echo.

7. Удаление имен из списка экспорта

Выполнив один из вышеприведенных примеров, мы имеет переменную MYVAR, определенную в списке экспорта.

Чтобы удалить переменную из списка экспорта, необходимо использовать опцию -n.

8. Заключение

В этой статье рассмотрены основы использования команды export. Чтобы узнать больше подробностей, используйте команду:

Источник

Команда export — экспорт переменных и функций дочерним процессам в Linux.

export — это одна из встроенных команд оболочки пользователя bash, и предназначена для экспорта переменных и функций текущего процесса в дочерний процесс. На практике, команда export применяется в качестве основного средства для определения настроек конкретных приложений. По умолчанию, в операционных системах семейства Linux, переменные, созданные в среде родительского процесса не передаются автоматически дочернему. Чтобы переменная, созданная процессом A , была доступна запущенному им процессу B , необходимо перед запуском дочернего процесса B выполнить экспорт данной переменной с помощью команды export . Так, например, родительский процесс может определить путь к рабочему каталогу какой-либо программы, создав переменную и выполнив ее экспорт перед запуском.

Читайте также:  Gpedit msc для windows 10 домашняя

В Linux, все процессы, кроме процесса init могут быть как дочерними, так и родительскими. Процесс init является родительским процессом для всех остальных, запускаемых процессов, имеет идентификатор PID равный 1 и используется для запуска всех прочих процессов в ходе загрузки системы и регистрации пользователей. Любой другой процесс всегда имеет родительский процесс, и может иметь дочерний.

Для получения идентификатора текущего процесса командной оболочки можно воспользоваться командой:

в результате отобразится следующая информация:

6272 — идентификатор процесса ( PID )
Если запустить новую командную оболочку, например bash из текущей, командой

и снова выполнить команду

то отобразится идентификатор текущего процесса в виде другого числа, например 7224
Команда ps позволяет выводить информацию о связанных родительских и дочерних процессах с использованием параметра —ppid :

ps —ppid 6272 — отобразить список процессов, для которых родительским является процесс, PID которого равен 6272:

PID TTY TIME CMD

7224 pts/0 00:00:00 bash

Если же выполнить команду, для отображения списка процессов, для которых родительским является процесс init ( PID=1), то мы получим список всех автоматически стартовавших на данный момент времени, процессов:

В данном списке не будет процессов, порожденных дочерними процессами процесса init . Для получения полного списка процессов в соответствии с их иерархией можно воспользоваться параметром -H :

ps –e -H — отобразить дерево ( -H )всех процессов ( -e ) на данный момент времени.

В ходе загрузки и инициализации системы, процессы могут создавать некоторые переменные, значения которых могут использоваться другими процессами, как например, переменная PATH , описывающая пути поиска исполняемых файлов. Кроме того, некоторые процессы могут изменять набор существующих переменных, экспортируя ( передавая ) их, при необходимости, дочерним процессам.

Ниже приведен простой пример экспорта переменных из текущей командной оболочки в дочернюю:

y=yandex.ru — установить значение переменной y , содержащее строку “ yandex.ru ”

x=google.com — установить значение переменной x , содержащее строку “ google.com ”

export x y — выполнить экспорт переменных x и y

bash — запустить новый экземпляр командной оболочки bash

echo $x $y — отобразить значение переменных x и y

google.com yandex.ru — результат выполнения команды, т.е. значения переменных x и y созданных родительским процессом.

Если выполнить запуск нового экземпляра командной оболочки bash , то в нем также будут доступны значения экспортируемых переменных x и y. И так далее – все процессы нижнего уровня иерархии могут использовать значения экспортированных переменных.

Команда export позволяет просматривать, удалять или добавлять элементы списка экспортируемых переменных.

export –p — вывести список всех экспортируемых переменных. То же самое выполняется, если не задан никакой ключ.

export –n x — удаление заданной переменной x из списка экспорта.

export –f — экспорт переменной в качестве функции.

— Создание и экспорт функции testf :

y=yandex.ru — создание переменной y , принимающей строковое значение yandex.ru .

testf() — создание функции testf , использующей переменную y .

testf — выполнение функции testf , использующей переменную y в текущей командной оболочке.

ping yandex.ru — результат выполнения функции testf .

export -f testf — экспорт функции testf .

export y — экспорт переменной y, используемой в функции testf .

bash — запуск дочерней оболочки bash.

testf — выполнение функции testf .

ping yandex.ru — результат..

Обычно, определение значений и экспорт переменных выполняется одной командой:

export y=yandex.ru — создание и экспорт переменной y , принимающей строковое значение yandex.ru .

— Изменение переменной PATH

Наиболее широко команда export применяется для объявления и модификации переменной оболочки PATH:

export PATH=$PATH:/home/localusr/bin — добавить к существующему пути поиска исполняемых файлов, определяеммому переменной PATH каталог /home/localusr/bin .

— Удаление экспортируемой переменной .

export –n y — удаление из списка экспорта переменной y .

Для получения справочной информации по использованию команды export , используйте:

Общие настройки оболочки для всех пользователей определяются содержимым файла /etc/profile . Обычно в нем определяется значение переменной PATH задающей пути поиска исполняемых файлов. В системах с несколькими оболочками, настройки для bash определяются содержимым файла /etc/bashrc . Для конкретных пользователей настройки определяются содержимым файлов в домашнем каталоге:

/.bash_profile — индивидуальные пользовательские настройки среды окружения. В этом файле пользователи могут добавить дополнительные конфигурационные параметры, либо изменить настройки, заданные по умолчанию, например свое значение переменной PATH.

/.bash_login — настройки, активируемые при входе в систему.

/.profile — конфигурационные настройки оболочки данного пользователя.

/.bashrc — конфигурационные настройки оболочки bash данного пользователя.

/.bash_logout — команды, выполняемые при выходе из системы.

Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой «Поделиться» для своей социальной сети

Источник

Linux что такое переменная export

Команда export является встроенной командной командной оболочки bash, позволяющей устанавливать значения переменных окружения. Для ознакомления с полным списком переменных окружения и их значений может использоваться команда env.

Базовый синтаксис команды выглядит следующим образом:

$ export [параметры] ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ

В том случае, если нужно объявить переменную без установки ее значения, в качестве аргумента может использоваться лишь имя переменной. Команда принимает несколько параметров, которые используются крайне редко. В частности, параметр -p позволяет вывести список всех переменных окружения. Параметр -n позволяет убрать из списка переменных окружения переменную с заданным именем. Наконец, параметр -f позволяет экспортировать функции командной оболочки по аналогии с переменными.

Читайте также:  Find serial port linux

На первый взгляд может показаться, что команда export является бесполезной, так как вы можете объявлять переменные без нее:

$ export a=b
$ echo $a
b
$ x=y
$ echo $x
y

Так какая разница между следующими объявлениями:

$ export first=»hello»
$ first=»hello»

Ну, разница заключается в том, что команда export устанавливает значение переменной окружения, доступной для всех программ, запускаемых с помощью данной командной оболочки. Например, вы можете создать файл test.sh сценария командной оболочки со следующим содержимым:

$ echo $first
$ echo $second

Теперь присвойте переменным различные значения и запустите сценарий с помощью командной оболочки:

$ chmod +x test.sh
$ first=hello
$ export second=world
$ ./test.sh

В результате будет выведено лишь значение второй переменной, а именно:

Очевидно, что значение первой переменной не доступно сценарию test.sh, в отличие от значения второй переменной, объявленной с помощью команды export.

Примеры использования

Добавление директории в список директорий переменной PATH

Для того, чтобы система искала исполняемые файлы в нестандартной директории достаточно добавить путь к этой директории в список директорий, являющийся значением переменной $PATH. Для этой цели может использоваться команда export. Например, для добавления в список директорий путь к текущей директории достаточно выполнить следующую команду:

В данном случае создается локальная переменная окружения PATH, значение которой равно значению глобальной переменной PATH с добавленными к нему символами двоеточия (разделитель путей к директориям) и точки (обозначение текущей директории). Таким же образом могут создаваться локальные варианты всех глобальных переменных окружения.

Экспорт функции

Для того, чтобы экспортировать функцию из одного сценария в другой следует использовать команду export с параметром -f. Это код первого сценария script.sh, из которого экспортируется функция say_hello(), после чего вызывается второй сценарий script2.sh:

export -f say_hello
./script2

А это — код второго сценария script2.sh, в котором не делается ничего кроме вызова этой экспортированной функции:

Теперь при исполнении первого сценария script1.sh будет исполняться второй сценарий script2.sh, вызывающий экспортированную функцию say_hello(). Несложно убедиться в том, что механизм экспорта функций отлично работает:

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Переменные окружения в Linux: как посмотреть, установить и сбросить

Работа с переменными

Переменные окружения (или переменные среды) — это набор пар ключ-значение, которые хранятся в вашем Linux и используются процессами для выполнения определенных операций. Они отвечают за стандартное поведение системы и приложений. При взаимодействии с вашим сервером через сеанс оболочки, есть много информации, которую ваша оболочка обрабатывает, чтобы определить ее поведение и доступы. Некоторые из этих параметров содержатся в настройках конфигурации, а другие определяются пользовательским вводом. Оболочка отслеживает все эти параметры и настройки через окружение. Окружение — это область, которую оболочка создает каждый раз при запуске сеанса, содержащего переменные, определяющие системные свойства. Например, это может быть часовой пояс в системе, пути к определенным файлам, приложения по-умолчанию, локали и многое другое. Переменные окружения также могут использоваться в программах оболочки или в подоболочках для выполнения различных операций.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

В этом руководстве мы расскажем, как просматривать, устанавливать и сбрасывать переменные окружения в вашей системе.

Переменные окружения и переменные оболочки

Переменные имеют следующий формат:

Должны соблюдаться следующие правила:

  • Имена переменных чувствительны к регистру (регистрозависимы). Переменные окружения должны быть написаны большими буквами (UPPER CASE).
  • Несколько значений переменных разделяются двоеточием :
  • Вокруг символа = нет пробела

Переменные можно разделить на две категории:

  • Переменные окружения (Environmental Variables) — это переменные, которые определены для текущей оболочки и наследуются любыми дочерними оболочками или процессами. Переменные окружения используются для передачи информации в процессы, которые порождаются из оболочки.
  • Переменные оболочки (Shell Variables) — это переменные, которые содержатся исключительно в оболочке, в которой они были установлены или определены. Они часто используются для отслеживания эфемерных данных, например, текущего рабочего каталога.

Про Linux за 5 минут

  • Вывести список всех переменных окружения и оболочки

    Мы можем увидеть список всех наших переменных окружения, используя команды env или printenv . В состоянии по умолчанию они должны работать точно так же:

    Это типичный вывод как для env , так и для printenv . Разница между этими двумя командами проявляется только в их более конкретной функциональности. Например, с помощью printenv вы можете запросить значения отдельных переменных:

    А как посмотреть переменные оболочки?

    Для этого можно использовать команду set . Если мы введем set без каких-либо дополнительных параметров, мы получим список всех переменных оболочки, переменных окружения, локальных переменных и функций оболочки:

    Тут мы получим гигантский вывод, поэтому стоит использовать less , чтобы разделить содержимое на страницы:

    Также для вывода переменной оболочки можно использовать команду echo :

    Читайте также:  Microsoft windows deleted files

    Общий набор переменных окружения в Linux

    Посмотрим на общий набор переменных окружения, которые вы можете найти в своей системе.

    • USER: текущее имя пользователя, использующего систему
    • EDITOR: какая программа запускается для редактирования файла на вашем хосте
    • HOME: домашний каталог текущего пользователя
    • PATH: список каталогов, разделенных двоеточиями, в которых система ищет команды
    • PS1: основная строка приглашения (для определения отображения приглашения оболочки)
    • PWD: текущий рабочий каталог
    • _: самая последняя команда, выполненная в системе пользователем
    • MAIL: путь к почтовому ящику текущего пользователя
    • SHELL: оболочка, используемая для интерпретации команд в системе, она может быть много разных (например, bash, sh, zsh или другие)
    • LANG: кодировка языка, используемая в системе
    • DESKTOP_SESSION: текущий рабочий стол, используемый на вашем хосте (GNOME, KDE)
    • HISTFILESIZE: количество строк истории команд, сохраненных в файле истории
    • HISTSIZE: количество строк истории, разрешенных в памяти
    • UID: текущий UID для пользователя
    • HOSTNAME: имя компьютера системы
    • TERM: указывает тип терминала
    • OLDPWD: предыдущий рабочий каталог
    • BASHOPTS: список параметров, которые использовались при выполнении bash.
    • BASH_VERSION: версия bash, выполняемая в удобочитаемой форме.
    • BASH_VERSINFO: версия bash с машиночитаемым выводом.
    • COLUMNS: Количество столбцов в ширину, которые используются для вывода вывода на экран.
    • DIRSTACK: стек каталогов, доступных с помощью команд pushd и popd.
    • IFS: внутренний разделитель полей для разделения ввода в командной строке. По умолчанию это пробел.
    • SHELLOPTS: параметры оболочки, которые можно установить с помощью параметра set.

    Установка переменных окружения в Linux

    В Linux у вас есть много разных способов установки переменных окружения в зависимости от того, хотите ли вы сделать их постоянными или нет.

    Самый простой способ установить переменные окружения — использовать команду export .

    Для примера создаим новую переменную, а затем экспортируем ее.

    Чтобы создать новую переменную оболочки с именем NEW_VARIABLE и значением «test», и затем сразу экспортировать ее введите:

    Используя export , ваша переменная окружения будет установлена для текущего сеанса оболочки. Как следствие, если вы откроете другую оболочку или перезапустите свою систему, переменная окружения больше не будет доступна.

    Установить постоянные переменные окружения в Linux

    Как вы видели в предыдущем разделе, переменные окружения не были постоянными при перезапуске оболочки. Однако существует способ сделать ваши изменения постоянными: с помощью системных файлов, которые читаются и выполняются в определенных условиях.

    Использование файла .bashrc

    Самый популярный способ постоянной установки переменных среды — это добавить их в файл .bashrc .

    Файл .bashrc — это скрипт, выполняемый всякий раз, когда вы инициализируете сеанс интерактивной оболочки. Как следствие, когда вы запускаете новый терминал через интерфейс GNOME или просто используете screen сессию, вы будете использовать файл .bashrc .

    Например, добавьте следующие записи в ваш файл .bashrc :

    Сохраните ваш файл и используйте команду source для перезагрузки файла bashrc для текущего сеанса оболочки.

    Вы можете вывести новую переменную окружения с помощью printenv и посмотреть, дату в Linux, изменив TZ.

    Отлично, ваши изменения теперь сохраняются после перезагрузки оболочки или системы!

    Использование файла .bash_profile

    В качестве альтернативы, если вы планируете подключаться к своим сеансам с помощью login оболочек, вы также можете добавить переменные окружения непосредственно в файл .bash_profile .

    Использование etc/environment

    Если вам нужно применить определенные переменные окружения для всех, то определить общесистемные переменные окружения. Чтобы установить общесистемные переменные окружения в Linux, вам нужно экспортировать переменные в файл /etc/environment .

    Например, чтобы изменить редактор, используемый глобально, вы можете изменить переменную EDITOR в файле окружения.

    Теперь попробуйте войти в систему как под разными пользователями в вашей системе, и вы увидите, что переменная EDITOR установлена для всех на сервере.

    Установить переменные окружения в одной строкой

    Теперь, когда вы знаете все подробности о том, как устанавливать переменные окружения, вы можете использовать эти шорткаты для их легкой установки.

    Сбросить переменные окружения в Linux

    Теперь, когда вы установили много переменных окружения в своей системе, вы можете отменить некоторые из них, если вы больше не используете их. В Linux существует два способа сброса переменных окружения: с помощью команды unset или путем удаления записей переменных в ваших системных файлах.

    Использование команды unset

    Чтобы удалить переменную окружения, используйте команду unset со следующим синтаксисом:

    Выглядит это так:

    Использование команды set -n

    Кроме того, вы можете сбросить переменные окружения, используя команду set с флагом -n -n.

    Установить переменную окружения PATH в Linux

    В системах Linux очень часто задают переменную окружения PATH , чтобы система могла находить команды.

    Чтобы отобразить текущую переменную окружения PATH , выполните команду printenv :

    Чтобы установить переменную окружения PATH, добавьте строку export в файл .bashrc и используйте с ним команду source :

    Успех! Вы успешно обновили переменную окружения PATH в Linux.

    Заключение

    В сегодняшнем руководстве вы узнали, что переменные окружения в Linux можно задавать несколькими способами: с помощью команды export , а также путем изменения некоторых системных файлов, чтобы сделать их постоянными.

    Вы также узнали, что можно сбросить переменные окружения и как легко обновить переменную окружения PATH .

    Онлайн курс по Linux

    Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

    Источник

  • Оцените статью