Как да добавите директория към PATH в Linux [Quick Tip]

Сподели

Променливата PATH в Linux съхранява пътя до директориите, където трябва да търси изпълними файлове, когато изпълните команда.

[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Както можете да видите, PATH се състои от няколко директории (като /usr/local/sbin, /usr/bin и други), разделени с двоеточие (:).

Ако искате да стартирате някои изпълними файлове като команди от всяка точка на системата, трябва да добавите местоположението им в променливата PATH.

Това е обичайно при настройване на среда за разработка. Например, представете си, че сте изтеглили и инсталирали Java и Maven. За да накарате вашите програми да работят правилно, ще трябва да посочите местоположението на двоичните файлове на Maven и Java в PATH.

Този бърз урок е за настройка на PATH в Linux. Освен стъпките, ще спомена и неща, за които трябва да внимавате, докато работите с PATH.

Добавяне на директория към PATH в Linux

Процесът за добавяне на нова директория към променливата PATH в Linux по същество е следният:

export PATH=$PATH:your_directory

Където your_directory е абсолютен път към съответната директория.

Да приемем, че изтегляте и извличате Maven в началната директория и искате да добавите неговата bin директория към PATH. Да приемем, че абсолютният път на тази директория bin е /home/abhishek/maven/apache-maven-3.8.0/bin.

Ето какво трябва да правите:

експортиране PATH=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin

export PATH=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin

Неща, на които да обърнете внимание тук:

  • $ преди име на променлива означава, че имате предвид нейната стойност. PATH е името на променливата, $PATH е стойността на променливата PATH.
  • Не трябва да използвате $ с PATH от лявата страна на =
  • Не трябва да има интервали преди и след =
  • Не забравяйте да включите : след $PATH, защото директориите в PATH са разделени с двоеточие.
  • Не трябва да има интервал преди и след двоеточието (:).

След като зададете PATH с новата стойност, моля, проверете дали PATH е актуализиран правилно.

[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/abhishek/maven/apache-maven-3.8.0/bin

Може да искате да изпълните командата или скрипта, за които сте променили PATH. Това ще ви каже със сигурност дали PATH е правилно зададен сега.

Направете промените в PATH постоянни

Добавихте желаната директория към променливата PATH, но промяната е временна. Ако излезете от терминала, излезете от сесията или излезете от системата, PATH ще се върне обратно и промените ще бъдат загубени.

Ако искате да направите промените в променливата PATH постоянни за себе си, можете да я добавите към файла .bashrc във вашата домашна директория, ако приемете, че използвате обвивката на Bash.

Можете да използвате текстов редактор като Nano или Vim за тази задача.

nano ~/.bashrc

Ако искате модифицираната променлива PATH да бъде достъпна за всички в системата Linux, можете да добавите експортирането към файла /etc/profile. Това е подходящо, когато сте системен администратор и имате конфигурирана система с потребителски път.

Бонус съвет: Директориите имат предимство в PATH

Има няколко директории в променливата PATH. Когато изпълнявате изпълним файл/команда, вашата система разглежда директориите в същия ред, както са споменати в променливата PATH.

Ако /usr/local/sbin идва преди /usr/bin, изпълнимият файл се търси първо в /usr/local/sbin. Ако изпълнимият файл бъде намерен, търсенето приключва и изпълнимият файл се изпълнява.

Ето защо ще намерите някои примери, при които допълнителната директория се добавя преди всичко останало в PATH:

export PATH=your_directory:$PATH

Ако смятате, че вашата допълнителна директория трябва да се търси преди всичко останало, трябва да я добавите преди $PATH; в противен случай го добавете след $PATH.

Беше ли достатъчно ясно?

Опитах се да обясня нещата с необходимите подробности, но без да навлизам твърде дълбоко в подробности. Изяснява ли темата или сте по-объркани от преди? Ако все още имате съмнения, моля, уведомете ме в коментарите.


Източник: itsfoss.com

Публикациите се превеждат автоматично с google translate


Сподели