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

Thank you for reading this post, don't forget to subscribe!

Когда вы вво­ди­те коман­ду в команд­ной стро­ке, вы в основ­ном гово­ри­те обо­лоч­ке запу­стить испол­ня­е­мый файл с задан­ным име­нем. В Linux эти испол­ня­е­мые про­грам­мы, как ls, find, file и дру­гие, как пра­ви­ло, живут в несколь­ких раз­ных ката­ло­гов в вашей систе­ме. Любой файл с испол­ня­е­мы­ми раз­ре­ше­ни­я­ми, хра­ня­щи­ми­ся в этих ката­ло­гах, может быть запу­щен из любо­го места. Наи­бо­лее рас­про­стра­нен­ные ката­ло­ги, кото­рые содер­жат испол­ня­е­мые про­грам­мы /bin, /sbin, /usr/sbin, /usr/local/bin и /usr/local/sbin.

Но как обо­лоч­ка узна­ет, в каких ката­ло­гах искать испол­ня­е­мые про­грам­мы или обо­лоч­ка выпол­ня­ет поиск по всей фай­ло­вой системе?

Ответ прост. Когда вы вво­ди­те коман­ду, обо­лоч­ка ищет во всех ката­ло­гах, ука­зан­ных в поль­зо­ва­тель­ской пере­мен­ной $PATH, испол­ня­е­мый файл с таким именем.

В этой ста­тье пока­за­но, как доба­вить ката­ло­ги в вашей пере­мен­ной $PATH систе­мы Linux.

 

Пере­мен­ная окру­жа­ю­щей сре­ды $PATH явля­ет­ся двое­то­чи­я­ми спи­сок ката­ло­гов, сооб­ща­ет обо­лоч­ке, какие ката­ло­ги для поис­ка испол­ня­е­мых файлов.

Что­бы про­ве­рить, какие ката­ло­ги у вас есть в пере­мен­ной $PATH, вы може­те исполь­зо­вать коман­ду printenv или echo:

 

Вывод будет выгля­деть при­мер­но так:

 

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

 

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

Допу­стим, у вас есть ката­лог с име­нем, binрас­по­ло­жен­ный в вашем домаш­нем ката­ло­ге, в кото­ром вы хра­ни­те свои сце­на­рии обо­лоч­ки. Что­бы доба­вить ката­лог к ​​вашей пере­мен­ной $PATH:

 

Коман­да export экс­пор­ти­ру­ет изме­нен­ную пере­мен­ную в дочер­ние сре­ды про­цес­сов оболочки.

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

Одна­ко это изме­не­ние носит вре­мен­ный харак­тер и дей­ству­ет толь­ко в теку­щем сеан­се оболочки.

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

  • Кон­фи­гу­ра­ци­он­ные фай­лы гло­баль­ной обо­лоч­ки, такие как /etc/environment и /etc/profile. Исполь­зуй­те этот файл, если вы хоти­те, что­бы новый ката­лог был добав­лен всем систем­ным поль­зо­ва­те­лям $PATH.
  • Кон­фи­гу­ра­ци­он­ные фай­лы для отдель­ных поль­зо­ва­тель­ских обо­ло­чек. Напри­мер, если вы исполь­зу­е­те Bash, вы може­те уста­но­вить пере­мен­ную $PATH в фай­ле ~/.bashrc, а если вы исполь­зу­е­те Zsh – имя фай­ла ~/.zshrc.

В этом при­ме­ре мы уста­но­вим пере­мен­ную в фай­ле ~/.bashrc. Открой­те файл в тек­сто­вом редак­то­ре и добавь­те в кон­це сле­ду­ю­щую строку:

 

~ / .Bashrc

 

Сохра­ни­те файл и загру­зи­те новое зна­че­ние $PATH в теку­щий сеанс обо­лоч­ки, исполь­зуя коман­ду source:

 

Что­бы под­твер­дить, что ката­лог был успеш­но добав­лен, напе­ча­тай­те его зна­че­ние $PATH, набрав:

 

Доба­вить новые ката­ло­ги в вашу поль­зо­ва­тель­скую или гло­баль­ную пере­мен­ную $PATH доволь­но про­сто. Это поз­во­ля­ет выпол­нять коман­ды и сце­на­рии, хра­ня­щи­е­ся в нестан­дарт­ных местах, без необ­хо­ди­мо­сти вво­дить пол­ный путь к испол­ня­е­мо­му файлу.