Како ПАТХ ради у Басху

How Does Path Work Bash



Када уносите команду у Линук терминал, обично позивате програм да обави одређени посао, на пример, лс , ЦД , рм , мкдир итд. Сви ови програми се налазе негде у систему датотека, зар не? Како басх зна где су ти програми?

Овде долазе у обзир променљиве окружења, посебно променљива ПАТХ. Ова променљива је одговорна за басх где да тражи те програме. Хајде да проверимо како ПАТХ функционише и како да прегледамо/модификујемо ПАТХ.







Променљива окружења и $ ПАТХ

Према терминологији љуске, окружење је подручје које љуска гради сваки пут када започне сесију. За управљање окружењем постоје променљиве окружења које означавају различите делове окружења. Вредност променљиве може бити стринг, локација директоријума, вредност или друга.



ПАТХ је таква променљива окружења која прати одређене директоријуме. Подразумевано, променљива ПАТХ садржи следеће локације.



  • /уср/бин
  • /уср/сбин
  • /уср/лоцал/бин
  • /уср/лоцал/сбин
  • /сам
  • /сбин
  • /снап/бин (ако је Снап инсталиран)

Желите да видите који су директоријуми тренутно регистровани под ПАТХ? Покрените терминал и покрените следећу команду.





$Избацио $ ПАТХ

Овде знак $ означава променљиву. Тхе Избацио команда штампа вредност променљиве ПАТХ.



Зашто је ова специфична променљива окружења толико важна? То је зато што се љуска и систем у целини према њој односе. Променљива ПАТХ складишти где се могу пронаћи извршне датотеке. Кад год се покрене било која наредба, љуска тражи директоријуме ПАТХ за циљну извршну датотеку и покреће је.

На пример, тестирајмо са Избацио команда. Овде покрећем наредбу ецхо.

$ИзбациоЗдраво Свете!

Где се налази извршна датотека Избацио ? Покрените следећу команду да бисте сазнали.

$која Избацио

Као што видимо, Избацио извршна датотека се налази на/уср/бин/ецхо. Где се који налази? Хајде да сазнамо.

$која која

Такође се налази на/уср/бин/вхицх. Већина командних алата налази се у директоријуму /уср /бин. Овде басх консултује ПАТХ за локације за тражење извршних команди.

Модификовање ПАТХ

Пре него што променимо вредност ПАТХ -а, важно је разумети његову структуру. Поново покрените команду да бисте проверили вредност ПАТХ.

$Избацио $ ПАТХ

Приметите да је сваки од директоријума одвојен знаком:.

Додавање директоријума на ПАТХ

Да бисмо додали прилагођени директоријум у ПАТХ, узећемо помоћ басхрц датотеке. То је посебна басх скрипта која се басх учитава сваки пут када започне нова басх сесија. Имајте на уму да је басхрц датотека јединствена за сваког корисника у Линук систему.

Отворите басхрц датотеку у уређивачу текста. Ако басхрц датотека већ није присутна, уредник ће је аутоматски креирати.

$Дошао сам~/.басхрц

Овде је подразумевани басхрц који долази са Убунтуом. Идите на последњу датотеку (ако постоји) и додајте следећи ред.

$извоз ПАТХ='$ ПАТХ: / '

Овде ће нова вредност променљиве ПАТХ бити стара променљива заједно са новим имеником који смо управо додали.

Сачувајте датотеку и реците басху да је поново учита.

$извор~/.басхрц

Проверимо да ли је нова путања успешно додата.

$Избацио $ ПАТХ

Воила! ПАТХ је успешно ажуриран! Сада ће басх такође претражити нову путању за извршне датотеке. Већ имам сценарио демо.сх на радној површини. Да видимо да ли басх може да га позове без навођења тачне локације.

$демо.сх

Да, басх га може директно назвати без икаквих проблема.

Уклањање директоријума из ПАТХ

Не постоји једноставан начин додавања/уклањања директоријума из ПАТХ. Дозволи да објасним.

Вредност ПАТХ је заправо фиксна. Шта је са басхрц триком? Басхрц је басх скрипта која се басх учитава сваки пут када започне сесију. У басхрц-у смо управо изјавили да ће нова вредност ПАТХ-а бити његова подразумевана вредност и кориснички дефинисан директоријум. Сада, сваки пут када се басх учита, види да басхрц говори да додели нову вредност ПАТХ -а и то је оно што ради.

Слично, ако желимо да уклонимо директоријум из ПАТХ-а, морамо поново доделити различиту вредност ПАТХ-а у басхрц-у тако да сваки пут када басх почне, користи измењену вредност.

Погледајмо овај пример. Вољан сам да уклоним директоријум ~/Десктоп са ПАТХ.

$Избацио $ ПАТХ | сед 'с/: ~ /Десктоп $ //'

Ако би директоријум био/хоме/вронг/дир, наредба би изгледала овако.

$Избацио $ ПАТХ | сед 'с/: /хоме /вронг /дир $ //'

Овде је занимљив део алат сед. Сазнајте више о сед овде и овде . Укратко, користећи сед, мењамо излаз датотеке Избацио команда. Сада, можемо користити овај измењени излаз за промену вредности ПАТХ.

Отворите басхрц у уређивачу текста и додајте следеће редове. Намерно чувам претходне редове да бих доказао да ради.

$извоз ПАТХ='$ (ецхо $ ПАТХ | сед -е 'с/: ~ /Десктоп $ //')'

Алтернативно, можете и ручно поставити вредност ПАТХ. То је мукотрпан процес, али једноставнији и једноставнији.

$извоз ПАТХ=/уср/локалним/сбин:/уср/локалним/сам:/уср/сбин:/уср/сам:/сбин:/сам:
/уср/игре:/уср/локалним/игре:/снап/сам

Овде ће вредност команде бити додељена ПАТХ. Сачувајте датотеку и поново учитајте басхрц.

$извор~/.басхрц

Хајде да проверимо резултат.

$Избацио $ ПАТХ

Вредност ПАТХ је ажурирана!

Последње мисли

У басх -у, променљива ПАТХ је важна. Сваки програм који ради кроз басх сесију наслеђује променљиву, па је важно да ПАТХ укључује само потребне директоријуме. Додавање још директоријума ће само додати вишак система.

Да бисте видели све променљиве окружења за басх, покрените ову команду. Први део наредбе ће вратити све променљиве окружења, а други део ће сортирати излаз у растућем редоследу.

$енв | врста

Желите да зачините своје басх искуство? Басх псеудоними нуде јединствен начин убрзања и зачињавања ствари. Сазнајте више о басх псеудонимима .

Уживати!