Как вывести path linux

Переменная PATH в Linux — просмотр и добавление

PATH представляет собой переменную среду особой важности. Без неё трудно представить операционную систему Linux такой же гибкой и безопасной, каковой она является для своих пользователей.

Давайте только представим, что произойдет с системой без этой важной переменной? Пользователю придется задавать в терминале полные пути ко всем интересующим его файлам. То есть, прописывать скрипт или команду в развернутом виде. Это отнимает кучу времени и сил, а также перегружает память человека.

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

Как посмотреть содержимое PATH

Для этих целей есть команда echo. Пользователю остается вооружиться ею для получения нужной информации. Что нужно прописать в терминале:

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

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

Добавление нового пути

Для добавления нового пути к переменной существует команда export.

ВАЖНО! Актуальное значение не должно быть переписано полностью. Необходимо лишь дописать новое значение к старой формулировке.

Чтобы разделить оба значения, ставится знак двоеточия.

С помощью export, добавим в path новый путь «/usr/newpath».

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

В некоторых дистрибутивах значение переменной можно найти в файле /etc/environment.

Далее следует дописать нужное значение вручную (не заменить, а именно добавить). Еще раз напоминаем о важности соблюдения данного правила. В ином случае система не сможет нормально функционировать – у пользователя начнутся разного рода неприятности.

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

Как уже говорилось ранее, переменная PATH служит надежной защитой для операционной системы Linux. Однако пользователи нередко практикуют еще один способ того, как уберечь персональный компьютер. Каким образом это происходит? Это можно сделать посредством создания локальной папки bin.

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

Заключение

Из данного материала вы узнали, какую роль выполняет переменная PATH в устройстве, функционирующем на операционной системе Линукс, а также разобрались, как при помощи терминала добавлять новые пути поиска файлов к её значению. Немного попрактиковавшись, вы обязательно убедитесь в том, что подобные манипуляции с системой не отнимают много сил и времени, а при повторных действиях сможете ощутить, насколько быстро этот процесс доводится до автоматизма.

Дополнительная информация для владельцев дистрибутива Линукс: пользователь не имеет никаких ограничений в вопросе добавления каталогов в переменную PATH для поиска и хранения исполняемых файлов (имеется в виду их допустимое количество). Можно добавлять столько папок, сколько нужно.

Источник

Переменная окружения PATH

Переменная окружения PATH, что это такое? Многие команды, которые вы вводите в командной строке, требуют применения внешней программы, загружаемой из файловой системы. Например, такие команды как mkdir и wc на самом деле находятся в папке /bin.

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

Читайте также:  Air server mac os


Но как при наличии в файловой системе тысяч файлов Linux знает, какие программы, из каких каталогов запускать? ОС использует системную переменную окружения для указания подмножества папок, в которых следует искать при получении неизвестной команды. Эта переменная называется PATH и может быть выведена на экран следующей командой echo (символ $ обязателен):

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

При каждом вводе неизвестной команды Linux будет просматривать каждую из папок, указанных в переменной окружения, в порядке их задания, пытаясь найти программу с тем же именем. Если программа найдена, она запускается; в противном случае выводится сообщение об ошибке. Но не будет ошибкой, если вы купите своё любимой серебряные кольца в подарок. Серебро украсит любую женщину!

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

Например, вы загрузили из Интернета в вашу домашнюю папку утилиту diary. Если вы введете ее имя в командной строке, то получите сообщение об ошибке, потому что она находится в папке, не включенной в системный путь. Для выполнения этой программы следует ввести следующую строку (напоминаю, что символ

— сокращенное обозначение вашей домашней папки):

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

Конечно предполагается, что diary — простая автономная программа, не требующая установки, потому что большинство основных приложений в процессе установки поместят исполняемый файл программы куда-нибудь в ваш заданный путь. Вот такая переменная окружения PATH, пользуйтесь на здоровье!

Источник

Переменная PATH в Linux

Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС Linux спроектирована так, что исполняемые и связанные с ними файлы программ распределяются по различным специализированным каталогам. Например, библиотеки устанавливаются в /lib или /usr/lib, конфигурационные файлы в /etc, а исполняемые файлы в /sbin/, /usr/bin или /bin.

Таких местоположений несколько. Откуда операционная система знает где искать требуемую программу или её компонент? Всё просто — для этого используется переменная PATH. Эта переменная позволяет существенно сократить длину набираемых команд в терминале или в скрипте, освобождая от необходимости каждый раз указывать полные пути к требуемым файлам. В этой статье мы разберёмся зачем нужна переменная PATH Linux, а также как добавить к её значению имена своих пользовательских каталогов.

Переменная PATH в Linux

Для того, чтобы посмотреть содержимое переменной PATH в Linux, выполните в терминале команду:

На экране появится перечень папок, разделённых двоеточием. Алгоритм поиска пути к требуемой программе при её запуске довольно прост. Сначала ОС ищет исполняемый файл с заданным именем в текущей папке. Если находит, запускает на выполнение, если нет, проверяет каталоги, перечисленные в переменной PATH, в установленном там порядке. Таким образом, добавив свои папки к содержимому этой переменной, вы добавляете новые места размещения исполняемых и связанных с ними файлов.

Для того, чтобы добавить новый путь к переменной PATH, можно воспользоваться командой export. Например, давайте добавим к значению переменной PATH папку/opt/local/bin. Для того, чтобы не перезаписать имеющееся значение переменной PATH новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:

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

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

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

Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:

Читайте также:  Инсталляция операционной системы windows реферат

Источник

PATH HOWTO

Esa Turtiainen

Перевод: Александр Ермолаев, SWSoft Pte Ltd.

Версия 0.4, 15 Ноября 1997

1. Введение

Этот документ описывает общие проблемы с переменными окружения Unix / Linux, особенно с переменной PATH. Переменная PATH содержит список каталогов, в которых производится поиск команд. Применимо для дистрибутива Debian Linux 1.3.

Примечание! Этот документ находится в стадии разработки. Пожалуйста, посылайте комментарии и исправления.

This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

3. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

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

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу

4. Общие принципы

Все процессы в Unix содержат «окружение» (environment). Это список переменных, которые содержат имена и значения, они являются строками и могут содержать большинство символов. Все процессы в Unix имеют родительский процесс — просесс созданный этим процессом называется дочерним. Дочерние процессы наследуют окружение от родительского процесса. Они могут делать некоторые изменения в окружении перед принятием окружения уже их дочерними процессами.

Одна важная переменная окружения — PATH (ПУТЬ), список каталогов, разделенных двоеточием (‘:’). Эти каталоги просматриваются, чтобы найти команды. Если вы пробуете вызвать команду ‘foo’, все каталоги из переменной PATH (в указаном порядке) будут просмотрены для выполнения файла ‘foo’ (с установленными правами на выполнение). Если файл найден, он исполняется.

В этом документе я использую термин ‘команда’, к которому отношу программы, которые, как предполагается, имеют короткое имя, используя механизм путей.

В Linux для запуска процесса операционная система просматривает каталоги, записанные в переменной PATH: вы можете использовать механизм путей там, где пробуете выполнить команду. Если операционная система получает имя файла, котрый не содержит ‘/’ то просматриваются каталоги из переменной окружения PATH. Даже если в среде не имеется никакой переменной PATH, по крайней мере, каталоги /bin и /usr/bin будут просматриваться.

В sh вы используете команду export, чтобы установить окружение, в csh используйте команду setenv. Например:

C-программы могут использовать библиотечную функцию setenv() для изменения окружения. Perl содержит окружение в ассоциативном массиве %ENV, вы можете установить PATH так $ENV=»/bin».

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

Более исчерпывающую информацию по основам механизма окружения можно взять из страниц руководства (man) ‘environ’, ‘execl’, ‘setenv’, или info ‘env’ и из документации по вашей оболочке.

Когда Linux загружается, первый процесс, который запускается является init. Это — специальный процесс, потому что не имеет родителя. Однако он первичный для всех процессов. Окружение init останется окружением всех процессов, если он не касаются окружения явно. Большинство процессов изменяют окружение.

Читайте также:  Windows update ran into problem

Init запускает группу процессов. Файл /etc/inittab сообщает то, какие процессы система запускает. Эти процессы работают в окружении, прямо унаследованом от init — например программа ‘getty’ пишет ‘login:’ на консоль. Если вы запускаете соединение PPP, вы должны помнить, что вы работаете в окружении init. Инициализация системы — это часто сценарий, который запускается отсюда. В Debian 1.3 скрипт инициализации /etc/init.d/rc вызывает, в свою очередь, другие сценарии инициализации.

Система содержит много запускаемых серверов (демоны), которые могут использовать или не использовать окружение, установленное по умолчанию. Большинство серверов запускается из сценария инициализации, и, таким образом, имеют окружение от init.

Когда пользователь заходит в систему, на среду действуют назначения, которые записаны в программу при компиляции, в системный скрипт инициализации и в пользовательский скрипт инициализации. Это довольно усложнено, и текущая ситуация не полностью удовлетворительна. Процесс различается, если пользователь заходит из консоли, XDM или из сети.

5. Процесс Init

Init — родительский процесс для всех остальных процессов системы. Другие процессы наследуют окружение процесса init и пути, прописанные в init. Только в редких случаях другие пути не установлены.

‘Пути init’ зафиксированы в исходниках программы и они выглядят так:

Заметьте, что пути init не содержат /usr/local/bin.

Все программы, которые запускаются из /etc/inittab работают в окружении init, особенно системные скрипты инициализации из /etc/init.d (Debian 1.3).

Все, что запускается из системных сценариев инициализации, имеет окружение init, как окружение по умолчанию. Например, syslogd, kerneld, pppd (когда стартует при запуске), gpm, lpd и inetd имеют окружение init, и не изменяют его.

Группа программ стартует из загрузочного скрипта, и PATH явно установлена в этом скрипте. Например: atd, sendmail, apache и squid.

Имеются другие программы, которые стартуют из сценариев начальной загрузки, но они заменяют путь полностью. Один такой пример — cron.

6. Процесс Login

В текстовой консоли имеется программа getty, ожидающая вход в систему пользователя. Она пишет ‘login:’ и другие сообщения. Работает в окружении init. Когда пользователь входит в систему, getty вызывает программу ‘login’. Эта программа устанавливает пользовательское окружение и вызывает оболочку.

Программа Login устанавливает пути, определенные в /usr/include/paths.h. ‘Пути login’ различны для root и других пользователей.

Пути обычных пользователей не содержат пути, содержащие любые sbin каталоги. Однако, они содержат текущий каталог, ‘.’, который считается опасным для пользователя root. Даже /usr/local/bin не указан для root.

Пути Login часто переписываются скриптом инициализации оболочки. Однако, возможно использовать другие программы, записанные в /etc/passwd как оболочки пользователя. Например, я использовал следующую строку, чтобы запускался PPP, когда я вхожу в систему, используя специальное имя пользователя. В этом случае, pppd имеет точный путь входа в систему.

7. Оболочки

Часто пользовательские процессы — дочерние процессы оболочки записаны в /etc/passwd для этого пользователя. Файлы инициализации оболочек часто изменяют пути.

В login, названию оболочки предшествует ‘-‘, для bash например, написано ‘-bash’. Это сигнал системе, что оболочка запускается при входе в систему. В этом случае, оболочка выполняет инициализационные файлы при входе в оболочку. Иначе происходит более легкая инициализация. Дополнительно оболочка проверяет — являются ли команды исходящими из файла или набираемыми на терминале. Это модифицирует инициализацию оболочки так, что неинтерактивная оболочка инициализируется совсем слегка, bash, в этом случае, не выполняет никакой инициализации.

7.1. bash

Как нормальная оболочка, bash просматривает общесистемный файл /etc/profile, где описано системное окружение и пути, которые могут быть установлены для пользователей bash. Однако, это не выполняется, когда система интерпретирует оболочку как не-интерактивную. Наиболее важный случай находится в rsh, когда удаленная команда выполняется на соседней машине. /etc/profile не запускается, и пути наследуются от rsh демона.

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

Пользователь может переписать значения, установленные в /etc/profile путем создания файлов

/.profile. Обратите внимание, что только самый первый из них выполняется — отличается от логики инициализации csh.

/.bash_login не выполняется специально для оболочки входа в систему и если .bash_profile существует, он не выполняется вообще.

Если bash используется с именем sh вместо имени bash, он эмулирует инициализацию bash: ищет файлы /etc/profile и

/.profile только для входных оболочек.

7.2. tcsh

При входе оболочка tcsh исполняет следующие файлы в данной последовательности:

Источник

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