Как добавить каталог в PATH в Linux

How Add Directory Path Linux



PATH - это предопределенная переменная в оболочке Linux. Он состоит из каталогов с их путями к каталогам, начиная с корня. ПУТЬ - это список, разделенный двоеточиями. Каждый каталог с его путем отделяется от предыдущего каталога с его путем двоеточием. Оболочка ищет команды в этих каталогах.

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







Без переменной PATH для каждой команды использовался бы абсолютный путь, например,



/home/john/dir1/dir2/command.exe



где первый / - это корневой каталог; john - это каталог пользователя для пользователя John; dir1 и dir2 - подкаталоги; а command.exe - это имя исполняемого файла.





Для исполняемого файла возможно множество других имен. На самом деле command.exe здесь является символическим. Итак, если каталог / home / john / dir1 / dir2 (без файла) находится в переменной PATH, пользователь john выполнит command.exe в командной строке [электронная почта защищена]: ~ $, просто набрав, command.exe без предшествующего пути. То есть:

[электронная почта защищена]: ~ $command.exe

а затем нажмите Enter.

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

$выбросил $ ПУТЬ

и нажмите Enter на терминале. Результат будет примерно таким:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin

Теперь возникает вопрос: как каталог (и предшествующий ему путь) добавляется в переменную PATH? При некоторых установках каталог добавляется автоматически. В других случаях его нужно добавлять вручную. В этой статье объясняются два основных способа добавления каталога. Каталог не добавляется (не включается), как это было бы с массивом. Эти два основных способа называются временным добавлением и постоянным добавлением. Bash - это оболочка, используемая для примеров кода в этой статье.

Содержание статьи

Временное дополнение

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

Встроенная команда экспорта оболочки Bourne Shell

Проще говоря, команда экспорта выглядит так:

$экспорт [имя[= значение]]

В этом случае он переназначает значение переменной в памяти.

Переменная PATH в памяти может уже иметь такое значение, как,

ПУТЬ = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin

Предположим, что добавляемый каталог / home / john / dir1 / dir2. Если команда экспорта набрана как,

$экспорт ДОРОЖКАзнак равно/дом/Джон/dir1/dir2

тогда / home / john / dir1 / dir2 заменит все, что уже находится в памяти, как значение для переменной PATH.

Если команда экспорта набрана как,

$экспорт ДОРОЖКАзнак равно$ ПУТЬ:/дом/Джон/dir1/dir2

Затем / home / john / dir1 / dir2 присоединится к концу того, что уже есть в переменной. Итак, новая переменная будет:

ПУТЬ = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / snap / bin: / home / john / dir1 / dir2

Обратите внимание, что в предыдущей строке кода выше часть значения, которая уже существует, отделена от новой части двоеточием, то есть «:». $ PATH в строке кода расширяется (заменяется) значением PATH, уже находящимся в памяти.

Теперь одна и та же команда может находиться более чем в одном каталоге. Когда исполняемая команда вводится без предшествующего пути в приглашении, оболочка начинает поиск значения (строки) переменной PATH в памяти слева направо. Итак, с приведенной выше строкой кода / home / john / dir1 / dir2 наконец-то появится в поиске. Кто хочет, чтобы его справочник прибыл последним? - Никто. Итак, лучший способ включить (добавить) каталог:

$экспорт ДОРОЖКАзнак равно/дом/Джон/dir1/dir2:$ ПУТЬ

/ home / john / dir1 / dir2 теперь находится в начале, отделенный от следующего каталога двоеточием. Итак, с приглашением [адрес электронной почты защищен]: ~ $,

[электронная почта защищена]: ~ $экспорт ДОРОЖКАзнак равно/дом/Джон/dir1/dir2:$ ПУТЬ

после ввода и нажатия Enter команда command.exe в каталоге dir2 будет выполнена с:

[электронная почта защищена]: ~ $command.exe

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

Когда компьютер выключается, все в оперативной памяти стирается. Плохая новость заключается в том, что пользователю компьютера придется повторять этот процесс добавления своего каталога в переменную PATH каждый раз при перезагрузке компьютера. Никто не хочет этого делать сегодня. Таким образом, рекомендуется использовать метод Permanent Addition. То есть добавление к PATH должно быть сохранено (на жесткий диск).

Постоянное добавление

Из приведенного выше обсуждения идея состоит в том, чтобы сохранить внесенное изменение (на жесткий диск). Итак, если изменение сохраняется в файле, который оболочка читает каждый раз при загрузке компьютера, это будет нормально. То есть каждый раз при загрузке компьютера переменная PATH в памяти будет обновляться соответствующим образом. Когда компьютер запускается, при загрузке он читает определенные файлы. Один из файлов, которые читает оболочка Bash для Linux, - это ~ / .bashrc. Имя файла. bashrc , начиная с точки. Он находится в каталоге пользователя.

Bash - это всего лишь одна оболочка, вероятно, самая популярная оболочка для Linux на сегодняшний день. Еще одна оболочка для Linux - Zsh. Для Zsh соответствующий файл - ~ /. zshrc , все еще в каталоге пользователя. Когда оболочка запускается, при загрузке она читает этот файл. Для Bash это файл ~ / .bashrc. Итак, если приведенный выше дополнительный код введен в файл ~ / .bashrc, каталог всегда будет в памяти, поскольку ~ / .bashrc всегда будет включать его в PATH при каждой загрузке компьютера. Он остается в памяти до выключения компьютера.

В Bash ~ / .bashrc - это скрытый файл, поэтому при обычном использовании команды ls он не отображается. ~ / .bashrc содержит несколько команд Bash (оболочки). Ubuntu - это вариант Linux. Ubuntu поставляется с текстовым редактором. На компьютере автора фон текстового редактора Ubuntu черный.

Вышеупомянутая команда добавления (без приглашения) должна быть включена в файл ~ / .bashrc. Хорошо добавить его в конец файла, чтобы не искажать его доступное содержимое, это, вероятно, работает нормально.

Чтобы открыть ~ / .bashrc в Ubuntu, введите в командной строке терминала следующее и нажмите Enter:

$нано~/.bashrc

Где nano - текстовый редактор. Здесь nano - это команда (исполняемый файл), аргумент которой ~ / .bashrc. Содержимое файла должно открываться в текстовом редакторе, чтобы перекрыть окно терминала.

Файл ~ / .bashrc откроется в текстовом редакторе, вероятно, с черным фоном. Курсор будет мигать в верхнем левом углу.

Нажимайте на клавиатуре клавишу со стрелкой вниз, пока курсор не достигнет конца файла. Добавьте новую строку,

$экспорт ДОРОЖКАзнак равно/дом/Джон/dir1/dir2:$ ПУТЬ

Это еще не все. Изменение файла ~ / .bashrc не было сохранено. Чтобы сохранить файл с внесенными изменениями, нажмите Ctrl + o и следуйте остальным появляющимся инструкциям. Чтобы выйти из текстового редактора, нажмите Ctrl + x, и обычное окно терминала должно заменить окно текстового редактора. Затем могут быть введены другие команды оболочки.

Если выдается echo $ PATH, новый каталог не будет отображаться на дисплее. Есть два способа продолжить отсюда: либо перезагрузить компьютер, либо получить новое содержимое файла ~ / .bashrc в память с помощью команды source. Использовать исходную команду просто:

$источник~/.bashrc

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

Примечание: Не путайте конец значения PATH (список) и конец файла ~ / .bashrc. Также не путайте каталог в PATH в памяти и исполняемый файл в каталоге на жестком диске.

Заключение

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

Проблема в том, как добавить каталог для исполняемого файла нового приложения в PATH. В некоторых случаях это делается автоматически программой установки нового приложения. В остальных случаях это нужно делать вручную. Есть два способа сделать это вручную: временное добавление и постоянное добавление. Временное добавление использует команду экспорта и просто добавляет каталог, когда компьютер включен. Постоянное добавление должно сохранять командную строку экспорта в файл инициализации ~ / .bashrc (Bash) для будущих операций.