Установка глобальных переменных linux

Содержание
  1. Как установить и перечислить переменные среды в Linux
  2. How to Set and List Environment Variables in Linux
  3. В этом руководстве мы объясним, как читать и устанавливать переменные окружения и оболочки.
  4. Переменные среды и переменные оболочки
  5. Переменные среды списка
  6. Установка переменных среды
  7. Постоянные переменные среды
  8. Вывод
  9. Русские Блоги
  10. переменные среды linux
  11. Что такое переменные среды
  12. Глобальные переменные среды
  13. Переменные локальной среды
  14. Установить пользовательские переменные
  15. Установить локальные пользовательские переменные
  16. Установить глобальные переменные среды
  17. Удалить переменные среды
  18. Переменные среды оболочки по умолчанию
  19. Установите переменную среды PATH
  20. Переменные среды системы позиционирования
  21. Оболочка входа
  22. 1./etc/profile файл
  23. 2. Файлы запуска в каталоге $ HOME
  24. Интерактивный процесс оболочки
  25. Неинтерактивная оболочка
  26. Сохранение переменной среды

Как установить и перечислить переменные среды в Linux

How to Set and List Environment Variables in Linux

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

В системах на основе Linux и Unix переменные среды представляют собой набор динамических именованных значений, которые хранятся в системе и используются приложениями, запускаемыми в оболочках или подоболочках. Проще говоря, переменная окружения — это переменная с именем и связанным значением.

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

Переменные среды и переменные оболочки

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

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

Переменные можно классифицировать на две основные категории: переменные среды и переменные оболочки.

Переменные среды — это переменные, которые доступны для всей системы и наследуются всеми порожденными дочерними процессами и оболочками.

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

Есть несколько доступных команд, которые позволяют вам перечислять и устанавливать переменные среды в Linux:

  • env — Команда позволяет запускать другую программу в пользовательской среде без изменения текущей. При использовании без аргумента он напечатает список текущих переменных среды.
  • printenv — Команда печатает все или указанные переменные среды.
  • set — Команда устанавливает или отменяет переменные оболочки. При использовании без аргумента он напечатает список всех переменных, включая переменные окружения и оболочки, а также функции оболочки.
  • unset — Команда удаляет переменные оболочки и среды.
  • export — Команда устанавливает переменные среды.

Переменные среды списка

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

Например, чтобы отобразить значение HOME переменной среды, вы должны выполнить:

Вывод выведет путь текущего пользователя, вошедшего в систему:

Вы также можете передать в printenv команду более одного аргумента:

Если вы запустите команду printenv or env без аргументов, она покажет список всех переменных среды:

Вывод будет выглядеть примерно так:

Ниже приведены некоторые из наиболее распространенных переменных среды:

  • USER — текущий вошедший в систему пользователь.
  • HOME — Домашний каталог текущего пользователя.
  • EDITOR — Используемый по умолчанию редактор файлов. Это редактор, который будет использоваться при вводе edit в вашем терминале.
  • SHELL — Путь к оболочке текущего пользователя, например, bash или zsh.
  • LOGNAME — имя текущего пользователя.
  • PATH — Список каталогов для поиска при выполнении команд. Когда вы запускаете команду, система будет искать эти каталоги в указанном порядке и использовать первый найденный исполняемый файл.
  • LANG — текущие настройки локалей.
  • TERM — Текущая эмуляция терминала.
  • MAIL — Место хранения почты текущего пользователя.

printenv И env команды печатают только переменные окружения. Если вы хотите получить список всех переменных, включая окружение, оболочку и переменные, а также функции оболочки, вы можете использовать set команду:

Вы также можете использовать команду echo для печати переменной оболочки. Например, чтобы напечатать значение BASH_VERSION переменной, которую вы запустите:

Установка переменных среды

Чтобы лучше проиллюстрировать разницу между переменными Shell и Environment, мы начнем с установки переменных Shell, а затем перейдем к переменным Environment.

Чтобы создать новую переменную оболочки с именем MY_VAR и значением, Linuxize просто введите:

Вы можете проверить, что переменная установлена, используя любой echo $MY_VAR из фильтров вывода команды set с помощью grep set | grep MY_VAR :

Используйте printenv команду, чтобы проверить, является ли эта переменная переменной среды:

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

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

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

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

Вы можете проверить это, запустив:

Если вы попытаетесь напечатать переменную в подоболочке на этот раз, вы получите имя переменной, напечатанное на вашем терминале:

Вы также можете установить переменные среды в одну строку:

Переменные среды, созданные таким образом, доступны только в текущем сеансе. Если вы откроете новую оболочку или выйдете из системы, все переменные будут потеряны.

Постоянные переменные среды

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

/etc/environment — Используйте этот файл для настройки общесистемных переменных среды. Переменные в этом файле задаются в следующем формате:

/etc/profile — Переменные, установленные в этом файле, загружаются при каждом входе в оболочку bash. При объявлении переменных окружения в этом файле вам нужно использовать export команду:

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

Чтобы загрузить новые переменные среды в текущий сеанс оболочки, используйте source команду:

Вывод

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

Источник

Русские Блоги

переменные среды linux

Что такое переменные среды

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

В оболочке bash переменные среды делятся на две категории:

  • Глобальная переменная
  • Локальная переменная

Глобальные переменные среды

Глобальные переменные среды видны сеансу оболочки и всем созданным подоболочкам.

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

Система Linux устанавливает некоторые глобальные переменные среды при запуске сеанса оболочки.

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

Для просмотра глобальных переменных вы можете использовать env или printenv команда.
$ printenv

Многие из них устанавливаются в процессе входа в систему. Ваш метод входа в систему также повлияет на установленные вами переменные среды.

Чтобы показать значение отдельных переменных среды, вы можете использовать printenv Команда, но не используйте env команда.
$ printenv HOME
также можно использовать echo Отобразите значение переменной. При ссылке на переменную среды в этом случае вы должны добавить знак доллара ($) перед переменной.
$ echo $HOME
В команде echo добавьте перед именем переменной $ Это не только отображение текущего значения переменной. Он может создавать переменные как параметры командной строки.
$ ls $HOME

Переменные локальной среды

  1. Локальные переменные среды могут быть видны только в процессе, в котором они определены, так как они вызываются.
  2. Так же важно, как и глобальные переменные среды.
  3. Система Linux также по умолчанию определяет стандартные локальные переменные среды.
  4. Вы также можете определить свои собственные локальные переменные, которые называются локальными переменными, определяемыми пользователем.
  5. В системе Linux нет команды, которая отображает только локальные переменные среды. set Команда отобразит все переменные среды, установленные для конкретного процесса, включая локальные переменные, глобальные переменные и пользовательские переменные, и отсортирует результаты в алфавитном порядке.
    $ set

Установить пользовательские переменные

Установить локальные пользовательские переменные

После запуска оболочки bash (или выполнения сценария оболочки) вы можете создавать локальные переменные, видимые в процессе оболочки.
Вы можете назначать значения переменным среды через знак равенства, и значения могут быть числовыми или строковыми.

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

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

Между именем переменной, знаком равенства и значением нет пробелов. Если вы добавите пробел в выражение присваивания, оболочка bash будет обрабатывать значение как одну команду:

Установить глобальные переменные среды

Метод: сначала создайте локальную переменную среды, а затем экспортируйте ее в глобальную среду.
Этот процесс прошел export Команда для завершения перед именем переменной Не делайте Нужно добавить $ 。

Изменение глобальной переменной среды в подоболочке не повлияет на значение переменной в родительской оболочке.
То есть: после определения и экспорта переменной my_variable в родительской оболочке используйте команду bash для запуска подоболочки. Значение этой переменной изменяется в этой подоболочке, но это изменение действительно только в подоболочке и не будет отражено в родительской оболочке. Дочерняя оболочка не может даже использовать команду экспорта для изменения значения глобальной переменной среды в родительской оболочке.

Удалить переменные среды

Можно использовать unset Команда завершает эту операцию. в unset При ссылке на переменные среды в команде Не делайте нужно использовать $ 。
unset my_variable

Примечание: если хотите Используемый Переменная, используйте $ ;Если хочешь действующий переменная, Не делайте использовать $ . Исключением из этого правила является использование printenv Отобразите значение переменной.
Когда задействованы глобальные переменные среды, глобальная переменная среды также удаляется в дочернем процессе, что допустимо только для дочернего процесса, а глобальная переменная среды по-прежнему действует в родительском процессе.

Переменные среды оболочки по умолчанию

Хотя существует множество переменных среды по умолчанию, не все из них должны иметь значение.

Установите переменную среды PATH

  1. Когда вы вводите внешнюю команду в интерфейсе командной строки оболочки, оболочка должна выполнить поиск в системе, чтобы найти соответствующую программу. Переменная среды PATH определяет: каталог, используемый для поиска команд и программ.
  1. Каталоги в PATH разделяются двоеточиями.
  2. Если расположение команды или программы не включено в PATH В переменной оболочку нельзя найти без использования абсолютного пути. Если оболочка не может найти указанную команду или программу, она сгенерирует command not found Сообщение об ошибке.

Проблема в том: Каталог, в который прикладная программа помещает исполняемый файл, часто не находится в каталоге, содержащемся в переменной среды PATH.

Решение: Убедитесь, что переменная среды PATH содержит все каталоги, в которых хранится приложение.

Вы можете добавить новый каталог поиска к существующей переменной среды PATH без необходимости определять его с нуля. Вам нужно только указать исходное значение PATH, а затем добавить в эту строку новый каталог. Если вы хотите, чтобы подоболочка также находила расположение вашей программы, наверняка Чтобы изменить измененную переменную среды PATH Экспорт 。

Переменные среды системы позиционирования

Когда вы входите в систему Linux для запуска оболочки bash, по умолчанию bash будет искать команды в нескольких файлах. Эти файлы называются Файл запуска или Файл среды . Проверка bash файла запуска зависит от того, как вы запустили оболочку bash.
Запустить оболочку bash можно тремя способами:

  • В качестве оболочки входа по умолчанию при входе в систему
  • Интерактивная оболочка как оболочка без входа
  • В качестве неинтерактивной оболочки для запуска скриптов

Оболочка входа

Оболочка входа в систему начнется с 5 Прочтите команды в разных файлах запуска:

/etc/profile Этот файл является основным файлом запуска оболочки bash по умолчанию в системе. Каждый пользователь в системе будет запускать этот файл запуска при входе в систему.

Следует отметить, что некоторые дистрибутивы Linux используют Съемные модули аутентификации (съемные модули аутентификации, PAM) . В этом случае файлы PAM будут обрабатываться до запуска оболочки bash, и эти файлы могут содержать переменные среды. Файлы PAM включают /etc/environment Файлы и $HOME/.pam_environment файл.

Остальные 4 файла запуска предназначены для конкретного пользователя и могут быть настроены в соответствии с личными потребностями.

1./etc/profile файл

Это основной файл запуска оболочки bash по умолчанию.
Пока вы входите в систему Linux, bash будет выполнять /etc/profile Запустите команду в файле.
Различные дистрибутивы Linux помещают в этот файл разные команды.

В файле / etc / profile выпуска Ubuntu и CentOS используется одна и та же функция: оператор for. Он используется для итерации /etc/profile.d Все файлы в каталоге. Это дает системе Linux место для размещения определенных файлов запуска приложений.Когда пользователь входит в систему, оболочка выполняет эти файлы.

2. Файлы запуска в каталоге $ HOME

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

Переменные среды в этих файлах запуска вступают в силу каждый раз, когда вы запускаете сеанс оболочки bash.

Дистрибутивы Linux имеют очень разные файлы окружения. Перечислено здесь $HOME Не у каждого пользователя есть эти файлы. Например, у некоторых пользователей может быть только один $HOME/.bash_profile файл. Это нормально.

Оболочка будет работать в следующем порядке Первый Файлы, которые найдены, остальные игнорируются:

Обратите внимание, что нет $HOME/.bashrc файл. Это потому, что файл обычно проходит через другие файлы.

Интерактивный процесс оболочки

Если оболочка bash не запускается при входе в систему, запускаемая оболочка называется интерактивной оболочкой.
Если bash запущен как интерактивная оболочка, он не получит доступа /etc/profile Файлы, проверять только пользователей HOME каталог средний .bashrc файл.
.bashrc Файл имеет 2 шт. Роль: один — смотреть /etc Общий каталог bashrc Второй — предоставить пользователям место для настройки собственных псевдонимов команд и частных функций скриптов.

Неинтерактивная оболочка

Этот вид оболочки используется, когда система выполняет сценарии оболочки. У него нет командной строки.
Но когда вы запускаете сценарий в системе, вы можете захотеть выполнить некоторые определенные команды запуска. Чтобы справиться с этой ситуацией, оболочка bash предоставляет BASH_ENV Переменные среды. Когда оболочка запускает неинтерактивный процесс оболочки, она проверяет эту переменную среды, чтобы увидеть запускаемый файл, который нужно выполнить. Если есть указанный файл, оболочка выполнит команды в файле, который обычно включает настройки переменных сценария оболочки.

В дистрибутивах CentOS и Ubuntu эта переменная среды не установлена ​​по умолчанию. Если переменная среды не установлена, команда printenv Вернется только к командной строке:

а также эхо-команда Отображается пустая строка, а затем возвращается приглашение интерфейса командной строки:

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

Сохранение переменной среды

Для глобальных переменных среды может быть более склонным помещать новые или измененные настройки переменных в /etc/profile В файле Но это плохая идея. Если вы обновите дистрибутив, который используете, этот файл также будет обновлен, и все ваши индивидуальные настройки переменных исчезнут. 。
предпочтительно в /etc/profile.d Создайте каталог с .sh Конечный файл. Поместите все новые или измененные настройки глобальных переменных среды в этот файл.
В большинстве дистрибутивов местом для хранения постоянных переменных оболочки bash отдельных пользователей является $HOME/.bashrc файл. Это относится ко всем типам процессов оболочки. Но если установить BASH_ENV Переменная, если она не указывает на $HOME/.bashrc , В противном случае вам следует поместить пользовательские переменные неинтерактивной оболочки в другое место.

Переменные среды, которые являются частью графического интерфейса, может потребоваться установить в некоторых других файлах конфигурации, что отличается от установки переменных среды оболочки bash.

Вы можете указать настройки псевдонима в $HOME/.bashrc Сделайте эффект постоянным в файле запуска.

Источник

Читайте также:  Не устанавливаются пакеты обновления windows 10
Оцените статью