Разделы сайта
Выбор редакции:
- Телефон Lenovo не включается
- Как восстановить удаленные файлы на MAC OS X Как восстановить данные с флешки на mac
- Используйте "Найти телефон", чтобы найти потерянное устройство Samsung Galaxy
- Почему вам стоит использовать автоматическое обновление Windows
- Что такое dogecoin майнинг и с чем его едят?
- Календарь смен Приложение календарь на рабочий стол
- Используем малоизвестные функции Google, чтобы найти сокрытое
- Не работает дисплей планшета – причины и ремонт
- Что такое расширение файла JAD?
- Бесплатные программы для Windows скачать бесплатно Бесстрастный download php
Реклама
Переменные среды Path. Переменная окружения PATH Переменная path ubuntu |
Переменные окружения (environment variable ) используются для хранения общих значений переменных в пределах разных сценариев и программ. Такие переменные можно устанавливать на время, например на период работы конкретной оболочки терминала, или на период сессии пользователя, либо же установить переменную окружения на глобальном уровне - для всей системы. Переменные окружения
$HOME Временная установка переменной окруженияУстановка переменной окружения на период сессии: # Для нового процесса env имя_переменной=значение [команда] # Для текущей оболочки и всех ее подпроцессов export имя_переменной=значение [команда] Значение переменной сохраняется до перезагрузки системы. Установка постоянного значенияПеременные окружения на уровне системы устанавливаются через файл /etc/environment: ENVIRONMENT="dev" Установка переменной окружения для конкретного пользователя через файл ~/ .bashrc или ~/.bash_profile: PATH="${PATH}:/home/user/bin:" Внимание!Файл ~/.bash_profile будет выполнен при запуске интерпретатора с ключом -l. При локальном входе этот файл не читается! Также нужно помнить, что изменения вступят в силу только после перезагрузки сеанса! Просмотр значения переменной окруженияДля просмотра значения переменной окружения есть команда printenv: Printenv <имя_переменной> #shell, #bash, #environment Переменные окружения в Linux - это специальные переменные, определенные оболочкой и используемые программами во время выполнения. Они могут определяться системой и пользователем. Системные переменные окружения Linux определяются системой и используются программами системного уровня. Например, команда PWD использует системную переменную, чтобы сохранять прежнюю рабочую директорию. Пользовательские переменные окружения устанавливаются пользователем, для текущей оболочки, временно или постоянно. Вся концепция добавления и удаления переменных оболочки крутится вокруг нескольких файлов, команд и различных оболочек. Если смотреть более широко, переменная окружения может быть трех типов: 1. Локальные переменные окруженияЭти переменные определены только для текущей сессии. Они будут безвозвратно стерты после завершения сессии, будь то удаленный доступ или эмулятор терминала. Они не хранятся ни в каких файлах, а создаются и удаляются с помощью специальных команд. 2. Пользовательские переменные оболочкиЭти переменные оболочки в Linux определяются для конкретного пользователя и загружаются каждый раз когда он входит в систему при помощи локального терминала, или же подключается удаленно. Такие переменные, как правило, хранятся в файлах конфигурации: .bashrc, .bash_profile, .bash_login, .profile или в других файлах, размещенных в директории пользователя. 3. Системные переменные окруженияЭти переменные доступны во всей системе, для всех пользователей. Они загружаются при старте системы из системных файлов конфигурации: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc. Конфигурационные файлы переменных окружения LinuxЗдесь мы кратко рассмотрим различные конфигурационные файлы, перечисленные выше, которые используются для настройки переменных окружения для всей системы или конкретного пользователя. .bashrcЭто файл переменных конкретного пользователя. Загружается каждый раз, когда пользователь создает терминальный сеанс, то есть проще говоря, открывает новый терминал. Все переменные окружения, созданные в этом файле вступают в силу каждый раз когда началась новая терминальная сессия. .bash_profileЭти переменные вступают в силу каждый раз когда пользователь подключается удаленно по SSH. Если этот файл отсутствует система будет искать.bash_login или.profile. /etc/environmentЭтот файл для создания, редактирования и удаления каких-либо переменных окружения на системном уровне. Переменные окружения, созданные в этом файле доступны для всей системы, для каждого пользователя и даже при удаленном подключении. /etc/bash.bashrcСистемный bashrc. Этот файл выполняется для каждого пользователя, каждый раз когда он создает новую терминальную сессию. Это работает только для локальных пользователей, при подключении через интернет, такие переменные не будут видны. /etc/profileСистемный файл profile. Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. Но они не будут доступны, при создании локальной терминальной сессии, то есть если вы просто откроете терминал. Все переменные окружения Linux созданные с помощью этих файлов, могут быть удаленны всего лишь удалением их оттуда. Только после каждого изменения, нужно либо выйти и зайти в систему, либо выполнить эту команду: source имя_файла Добавление пользовательских и системных переменных окружения в LinuxТеперь, когда вы знаете немного теории, перейдем к практике. Локальные переменные окружения в Linux можно создавать следующими командами: var=значение Эти переменные будут доступны только для текущей терминальной сессии. Для удаления переменных окружения можно использовать несколько команд: 1. Использование envПо умолчанию с помощью env можно посмотреть все установленные переменные среды. Но с опцией -i она позволяет временно удалить все переменные оболочки и выполнить команду без переменных. env –i команда Var - это любая переменная, которую вы хотите передать этой команде. Такая команда запустит оболочку вообще без переменных окружения: После запуска такого окружения, не будет доступно никаких переменных, но после выхода все вернется на свои места. 2. Использование unsetЭто другой способ удаления переменных окружения Linux. Unset удаляет переменную по имени до конца текущей сессии: unset имя_переменной 3. Установить значение переменной в ""Это самый простой способ удаления переменных окружения в Linux, устанавливая пустое значение переменной, вы удаляете ее до конца текущей сессии. Замечание: С помощью таких способов вы можете изменять значения системных или пользовательских переменных, но они будут актуальны только для текущего сеанса. Создание пользовательских и системных переменных окруженияВ этом разделе рассмотрим как установить и удалить системные и пользовательские переменные не только для текущего сеанса, а так чтобы эффект сохранялся после перезагрузки. 1. Устанавливаем и удаляем локальные переменные в LinuxДавайте создадим локальную переменную VAR и установим ей любое значение, затем удалим ее с помощью unset и убедимся что она удалена: VAR1="Losst" Другой способ создать переменную - команда export. Удалим ее присвоив пустое значение: export VAR="Losst" Теперь создадим переменную VAR2 также зададим ей значение. А потом временно удалим все локальные переменные выполнив env -i. Она запустит оболочку без каких-либо переменных. После ввода exit все переменные будут восстановлены. VAR2="Losst" Установка и удаление пользовательских переменныхОтредактируйте файл.bashrc, в вашей домашней директории, добавив команду export, для экспортирования нужной переменной. Затем выполните команду source для применения изменений. Создадим, например, переменную CD: Добавьте такую строчку (o, затем вставить, затем Esc и:wq): export CD="This is Losst Home" Теперь осталось обновить конфигурацию: source .bashrc Для удаления этой переменной просто удалите ее из.bashrc. Теперь добавим переменную окружения с помощью.bash_profile. Эта переменная, как вы уже знаете будет доступна только при удаленном входе: vi .bash_profile Добавьте строчку: export VAR2="This is Losst Home" И выполните эти команды, чтобы применить изменения и проверить добавление переменной: source .bash_profile Переменная недоступна, так как вы создали локальную терминальную сессию, теперь подключитесь по ssh: ssh user@localhost Удалить эту переменную окружения можно так же как и в предыдущем случае, удалив ее из файла. Замечание: Эти переменные доступны всегда, но не для всех пользователей. Установка и удаление системных переменных окруженияСоздадим переменную, доступную для всех пользователей, во всех терминальных сессиях, кроме удаленных, добавлением ее в /etc/bash.profile: vi /etc/bash.profile export VAR="This is system-wide variable" Затем обновляем: source /etc/bash.bashrc Теперь эта переменная доступна для всех пользователей, во всех терминалах: echo $VAR Если вы хотите сделать переменную окружения доступной для всех пользователей, которые подключаются к этой машине удаленно, отредактируйте файл /etc/profile: export VAR1="This is system-wide variable for only remote sessions" Обновите конфигурацию, и проверьте доступность переменной, она будет доступна только удаленно: source /etc/profile Если нужно добавить переменную окружения в Linux, так чтобы она была доступна и удаленно, и для локальных сессий, экспортируйте ее в /etc/environment: vi /etc/environment export VAR12="I am available everywhere" Проверяем: source /etc/environment Пакет AIR SDK содержит несколько программ, которые можно запускать из командной строки или окна терминала. Запускать эти программы будет намного удобнее, если определить путь к каталогу bin SDK с помощью переменной среды Path. В данном разделе представлено общее описание процедуры настройки пути в Windows, Mac и Linux. Однако конфигурации компьютеров могут существенно отличаться, поэтому данная процедура работает не во всех системах. В этом случае нужную информацию можно найти в документации по операционной системе или в Интернете. Настройка переменной среды PATH в Linux и Mac OS с использованием оболочки BashКогда команда вводится в окно терминала, оболочка (программа, которая считывает вводимые команды и пытается отреагировать соответствующим образом) сначала должна найти программу команды в файловой системе. Оболочка выполняет поиск команд в списке каталогов, который хранится в переменной среды с именем $PATH. Чтобы посмотреть текущее значение переменной path, введите следующую команду: Echo $PATH Будет выведен список разделенных двоеточием каталогов примерно в таком виде: /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin Путь к каталогу bin пакета AIR SDK необходимо добавить в этот список, чтобы оболочка могла находить ADT и инструменты ADT. Предположим, что AIR SDK находится в каталоге /Users/fred/SDKs/AIR . В этом случае для добавления нужных каталогов в переменную среды path используется следующая команда: Export PATH=$PATH:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/tools Примечание. Если путь содержит символы пробелов, перед ними следует вставить символ обратной косой черты, как показано ниже: /Users/fred\ jones/SDKs/AIR\ 2.5\ SDK/bin Чтобы проверить результаты добавления, можно еще раз выполнить команду echo: Echo $PATH /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/tools Каталоги добавлены успешно. Теперь вы сможете вызывать следующие команды и получать корректный ответ: Adt -version Если переменная среды $PATH была изменена правильно, в результате выполнения команды должна быть выдана версия среды ADT. Однако имеется одна проблема: при открытии нового окна терминала вы заметите, что переменная path больше не содержит новые элементы, которые ранее были в нее добавлены. Команду настройки пути необходимо выполнять каждый раз при запуске нового терминала. Общим решением этой проблемы будет добавление команды в один из сценариев запуска, которые используются оболочкой. В ОС Mac OS можно создать файл.bash_profile в каталоге ~/username, который будет запускаться каждый раз при открытии нового окна терминала. В Ubuntu сценарием, который запускается при открытии нового окна терминала, является.bashrc. В других дистрибутивах Linux и оболочках применяются аналогичные правила. Процедура добавления команды в сценарий запуска оболочки Измените домашний каталог: Создайте профиль конфигурации оболочки (при необходимости) и перенаправьте вводимый текст в конец файла с помощью команды « cat >> ». Используйте соответствующий файл для своей операционной системы и оболочки. Например, в ОС Mac OS можно использовать.bash_profile , а в Ubuntu - .bashrc . Cat >> .bash_profile Введите текст, который требуется добавить в файл: Export PATH=$PATH:/Users/cward/SDKs/android/tools:/Users/cward/SDKs/AIR/bin Завершите перенаправление текста, нажав клавиши CTRL-SHIFT-D на клавиатуре. Отобразите файл, чтобы убедиться в правильности выполнения операции: Cat .bash_profile Откройте новое окно терминала, чтобы проверить путь: Echo $PATH Добавленные элементы должны быть выведены на экране. Если позднее будет создана новая версия одного из пакетов SDK, которая будет помещена в другой каталог, команду настройки пути в файле конфигурации необходимо будет обновить соответствующим образом. В противном случае оболочка продолжит использование старой версии. Настройка переменной среды PATH в ОС WindowsПри открытии командное окно в Windows наследует глобальные переменные среды, определенные в свойствах системы. Одной из важных переменных является переменная path, содержащая список каталогов, в которых выполняется поиск введенной программы. Чтобы посмотреть текущий список каталогов в переменной path, в командном окне можно ввести следующую команду: Set path Будет выведен список разделенных двоеточием каталогов, который выглядит примерно следующим образом: Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem Путь к каталогу bin пакета AIR SDK необходимо добавить в этот список, чтобы программа команд могла находить ADT и инструменты ADT. Предположим, что пакет AIR SDK находится в каталоге C:\SDKs\AIR . В этом случае путь можно добавить следующим образом: В разделе «Панель управления» откройте диалоговое окно «Свойства системы» или нажмите правой кнопкой мыши на значке «Мой компьютер» и в меню выберите пункт «Свойства». На вкладке «Дополнительно» нажмите кнопку «Переменные среды». В разделе «Системные переменные» диалогового окна «Переменные среды» выберите элемент «Path». Нажмите кнопку «Изменить». Перейдите в конец строки в поле «Значение переменной». В самом конце текущего значения введите следующий текст: ;C:\SDKs\AIR\bin Нажмите кнопку «OK» во всех диалоговых окнах, чтобы сохранить путь. Если в этот момент имеются открытые командные окна, изменения для них применены не будут. Откройте новое командное окно и введите следующую команду, чтобы убедиться в правильности настройки переменной среды: Adt -version Если позднее расположение пакета AIR SDK будет изменено или будет добавлена новая версия, переменную среды path необходимо будет изменить соответствующим образом. Что это такое? Многие команды, которые вы вводите в командной строке, требуют применения внешней программы, загружаемой из файловой системы. Например, такие команды как mkdir и wc на самом деле находятся в папке /bin. Когда вы вводите инструкцию, которую оболочка Bash не распознает, она пытается выполнить ее как программу и возвращает ошибку, если не находит программу с таким именем. И это относится не только к основным командам, которые мы рассматривали, потому что из командной строки вы можете запустить любую программу. Но как при наличии в файловой системе Linux знает, какие программы, из каких каталогов запускать? ОС использует системную переменную окружения для указания подмножества папок, в которых следует искать при получении неизвестной команды. Эта переменная называется PATH и может быть выведена на экран следующей командой echo (символ $ обязателен): Echo $PATH Результат выполнения этой команды будет выглядеть наподобие следующих семи абсолютных путей к папкам, разделенных двоеточиями: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games При каждом вводе неизвестной команды Linux будет просматривать каждую из папок, указанных в переменной окружения, в порядке их задания, пытаясь найти программу с тем же именем. Если программа найдена, она запускается; в противном случае выводится сообщение об ошибке. Но не будет ошибкой, если вы купите своё любимой серебряные кольца в подарок. Серебро украсит любую женщину! Эти семь папок обеспечивают легкий доступ ко всем основным программам в операционной системе, включая . Любые программы за пределами этих семи папок не могут быть запущены простым вводом их имени в командной строке. Например, вы загрузили из Интернета в вашу домашнюю папку утилиту diary. Если вы введете ее имя в командной строке, то получите сообщение об ошибке, потому что она находится в папке, не включенной в системный путь. Для выполнения этой программы следует ввести следующую строку (напоминаю, что символ ~ - сокращенное обозначение вашей домашней папки): Если вы сохранили ее в папке за пределами вашего заданного пути, вам придется для запуска утилиты ввести абсолютный путь и имя файла. Конечно предполагается, что diary - простая автономная программа, не требующая установки, потому что большинство основных приложений в процессе установки поместят исполняемый файл программы куда-нибудь в ваш заданный путь. Вот такая переменная окружения PATH , пользуйтесь на здоровье! Как вы уже знаете, при входе любого пользователя в систему для него запускается особый экземпляр оболочки — login shell. В процессе запуска в качестве login shell bash ищет следующие файлы:
(в указанном порядке) и выполняет содержащиеся в них команды. Если bash запускается повторно из командной строки в интерактивном режиме (т. е. не для выполнения какой-то одиночной команды), то он находит файл ~/.bashrc и выполняет содержащиеся в нем команды. Впрочем, в дистрибутиве Mandrake файл ~/.bashrc вызывается и для login shell, а из него вызывается еще и общесистемный файл /etc/bashrc. Так что, как видите, тут возможны варианты. Но какова бы ни была последовательность вызова этих скриптов, с их помощью для каждого сеанса работы пользователя создается так называемая "пользовательская среда" или окружение, представляющая собой набор переменных с установленными для них значениями. Эти значения считываются некоторыми программами и утилитами, и в соответствии с их значениями изменяется поведение системы в тех или иных ситуациях. Файлы /etc/profile и /etc/bashrc определяют общесистемные настройки пользовательской среды, а остальные перечисленные файлы определяют индивидуальную среду конкретного пользователя. Сравнительно небольшие добавления или исправления в индивидуальных файлах настройки, изменяющие значения, заданные по умолчанию, могут сделать значительно более приятной для вас работу в системе (о вкусах, как известно, не спорят, и вряд ли люди, которые определяли настройки по умолчанию, угадали ваши предпочтения). Поэтому давайте кратко рассмотрим основные переменные пользовательской среды и то, каким образом вы сами можете их изменять. Вначале посмотрите переменные окружения, которые заданы по умолчанию. Как мы уже говорили в разд. 5.6 , это можно сделать с помощью команд set (и аналогичной ей команды typeset ) или env . Значение, присвоенное отдельной переменной, можно просмотреть с помощью команды echo $name , где name — имя переменной. Из всех переменных, которые вы увидите по команде set , обычно меняют вид приглашения PS1 и перечень путей поиска PATH. О том, как поменять значения этих переменных, было подробно рассказано в разд. 5.6 . Если вы почему-либо пропустили этот раздел, загляните в него сейчас. Так что осталось только решить, в каком именно скрипте задать этим переменным новые значения. Рассмотрим этот вопрос на примере переменной PATH. Переменная PATH формируется в двух скриптах: /etc/profile (пути, общие для всех пользователей) и в одном из пользовательских скриптов (например, в ~/.bash_profile), где к ранее сформированному перечню пользователь может добавить пути по своему желанию. Только не стоит делать это в файле ~/bashrc, так как последний перезапускается каждый раз при запуске второго, третьего и т. д. экземпляра оболочки. Для добавления пути в переменную PATH надо вписать в выбранный скрипт строку следующего вида (в этом примере в перечень добавляется путь /home/user/bin): PATH=$PATH:/home/user/bin Обратите внимание на то, что двоеточия в конце нет. И имейте в виду, что каталоги просматриваются в поисках нужного файла в том порядке, как они перечислены в переменной PATH. В отличие от MS-DOS Linux не ищет исполняемый файл в текущем каталоге. Поэтому, если вы хотите, чтобы поиск производился и в текущем каталоге, надо добавить и этот каталог (напомним, что он имеет имя, состоящее из одной точки) в переменную PATH. Но имейте в виду, что с точки зрения безопасности добавлять текущий каталог в перечень путей поиска недопустимо, так как злоумышленник может поместить в один из доступных ему по записи каталогов вредоносную программу, названную именем одной из часто используемых системных утилит. И, когда вы запустите эту программу, считая, что запускаете системную утилиту, она может нанести большой вред вашей системе, тем более, если вы запустили ее от имени суперпользователя. При желании можно слегка "украсить себе жизнь", включив цветной вывод в команде ls (если по умолчанию он черно-белый). Для этого редактируем файл /etc/bashrc, в который добавляем строку: alias ls = "ls -F --color" Кстати, если вы захотите, чтобы Midnight Comma nder в окне эмулятора терминала был цветным, а не черно-белым, то установите переменную COLORTERM : COLORTERM = ; export COLORTERM В. Костромин (kos at rus-linux dot net) - 8.8. Настройка окружения пользователя |
Новое
- Как восстановить удаленные файлы на MAC OS X Как восстановить данные с флешки на mac
- Используйте "Найти телефон", чтобы найти потерянное устройство Samsung Galaxy
- Почему вам стоит использовать автоматическое обновление Windows
- Что такое dogecoin майнинг и с чем его едят?
- Календарь смен Приложение календарь на рабочий стол
- Используем малоизвестные функции Google, чтобы найти сокрытое
- Не работает дисплей планшета – причины и ремонт
- Что такое расширение файла JAD?
- Бесплатные программы для Windows скачать бесплатно Бесстрастный download php
- Тестируем компьютер с помощью программы «Everest Программа параметры компьютера everest