Linux remove variable from environment

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

Курс по Asterisk

Полезно

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

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

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

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

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

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

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

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

Телефония

FreePBX и Asterisk

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

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

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

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

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

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

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Общий набор переменных окружения в 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.
    Читайте также:  Microsoft windows home premium 64 bit

    Установка переменных окружения в 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 .

    Мини — курс по виртуализации

    Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

    Источник

    how to view, edit, unset and delete an environment variable in linux

    On Linux and/or Unix operating systems, an environment or system variable is a name-value pair that is available system wide and is used to share information between applications. These (pre) named objects are usually used as configuration settings that an application can lookup provided it knows the name of the variable or object.

    Читайте также:  Виртуальная оболочка для windows

    In addition to the system-wide variables, a variable can also be set into other scopes such as an user specific and session specific variables. It can also be set and unset from a single instance of the shell or session.

    Also, we will mostly deal with the bash command shell in this post. But it will work in other shells as well probably with slight changes in the syntax. The basic concept of environment variables remain the same across shells.

    Display a Single Environment Variable

    If you know the name of the variable that you want to lookup, then you can use the echo command to display the value of the variable. This works with in shell scripts as well.

    The $ is used to denote that the string following it is a variable. Usually, the environment variables are all upper-case, but it need not be. It is mostly a case of convention. If the variable name is HOME, then the command is

    Another command that can be used to display a variable value is printenv. This works pretty much the same way as the echo command works in the previous example.

    bash$ printenv HOME

    Note that the special character $ is not required by this command, as arguments to this command are assumed to be environment variable names.

    Display all variables

    In case you want to see all the system variables that are set in the environment, then you can use any of the three commands : set, env or printenv. Each of these commands when executed without any command line arguments, will display all the variables and their values that are currently available in the shell environment.

    bash$ set
    bash$ env
    bash$ printenv

    The output of the above commands can get pretty lengthy. As you already know or will find out, there are quite a long list of environment properties set by default. This also means that it can get quite difficult to find a specific key or property value.

    If you do only know part of a variable name or you want to display only a subset of the variables, then you can pipe the output of previous command to grep. The example below will display all variables that have the word proxy in the name or the value.

    bash$ env | grep -i proxy

    This section showed you how you can view the environment variables on the system. Often time you would want to set or modify the values as well. You can do this directly from the command shell as well.

    Set an Environment Variable

    Setting an environment variable is the same as creating a new value or editing an existing value. When you set a variable, the variable is created and appended to the environment if it does not already exist. If it already exist in the environment, then the value is modified to reflect the changes.

    You can use either the set or env command to set the variable using the following syntax. Both the commands should work in most command shells.These commands will set the environment variable for the current shell or instance.

    If you find that one of the commands is not supported by your particular shell, then just use the other one. Also, the syntax could be different. Some shells do not require the equals to (=) symbol in the command either.

    bash$ set NAME=Value
    Or
    bash$ env NAME=Value

    Because of how variables are inherited by processes in Linux and depending on how and where it is executed, the variables may have been set only on the current session or the current instance of the shell. In order to set it globally, you can use either the export or the setenv command depending on the command shell that is used.

    In bourne or bash shells, use the export command as in the example below.

    bash$ export NAME=Value

    while in csh and related shells, use the setenv command

    csh$ setenv NAME Value

    (Note: There is no equals (=) operator in setenv).

    Читайте также:  Задан неизвестный параметр командной строки dynamic update windows 10

    Do not forget to include the previous value of a variable, if you only want to append to the existing value. Otherwise, the previous value of the variable is overwritten. This is relevant in path variables like PATH or LIBRARY_PATH. To append a directory, called /home/john/temp into the existing path, use something like the following

    bash$ export PATH=$PATH:/home/john/temp

    Again exporting the value will only set it for the current session. That means when you logout or restart the system, the changes will be lost. If you want to persist your value changes across reboots, then you will need to modify the configuration file(s) where it is set.

    Global Environment Values

    The global environment values are set in various places, often varying between distros. If it is a user specific variable, then it is quite possible that it is set in the shell specific configuration file in the user’s home directory.

    If you are using the bash shell, then check out the .bashrc or .bash_profile files in the home directory. Some environments also have a .profile file in the home directory. Another file that is used as default for all users and shells is the /etc/profile file.

    In a Gentoo environment, you can set global environment values in a file inside the /etc/env.d/ folder. This allows you to have separate files for different sets of the global environment variables. There are also several different profile files in the /etc/ folder, such profile, profile.csh, profile.env etc etc. Also, there are configuration files inside the /etc/profile.d/ folder.

    If you use Ubuntu or an Ubuntu based distro, then the global variables are set in the /etc/environment file. You can also look inside the /etc/profile.d/ folder, which can several files including .sh file that are executed. The same format is used in other distros as well such CentOS. In Suse based systems, also look for a file called /etc/profile.local.

    Yep, there is a lot of different configuration files where the global variables could be set. See my set of configuration files in the screenshot above. With great Power comes lots of configuration files. Usually in practice, it is not that bad. Everybody has individual preferences and the variables will go into similar files and folders and once you know and understand how it works, you are all set.

    Once you have found the place or file where the environment variable is currently defined or set, you can edit the file to change the value and save it. Follow the existing formats in the files when modifying the values. They are usually the same syntax you use when setting the variables from the command line. The changes will now be persisted across logouts and reboots.

    If this is a new variable that you want to add to the system, then you will need to find the most appropriate place out of all the options mentioned above. If this new variable is local and applicable only to some users, then set it in the home directory. If it is to be accessible only to some users in the command shell, then set it in the appropriate shell configuration files. If it is a truly global then set it in the global configuration files in the /etc/ folders.

    Delete (or Unset) an Environment Variable

    Sometimes you want to completely remove the variable from the environment. In order to remove or unset a variable from the environment, you can again use the env command with the –unset (-u) command line option.

    bash$ env -u NAME

    Another command which does the same thing is the unset command. The unset is a posix command and should be available in all shells, but you never know.

    bash$ unset NAME

    After un-setting the variable, be sure to check it using either the echo or set commands to make sure that it has indeed been removed.

    As with the set commands earlier, if you want to persist the change to the value then you will need to modify and save the configuration file where it is set. As you are removing or unsetting the values in this case, just remove the line where the value is set.

    Источник

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