Si të shtoni një drejtori në PATH tuaj në Linux


PATH është një nga manipuluesit e heshtur në sfondin e kompjuterit tuaj Linux. Ajo ndikon në heshtje përvojën tuaj të përdoruesit, por nuk ka asgjë të dyshimtë në lidhje me të. Ne do të shpjegojmë se çfarë bën dhe si mund ta rregulloni.

Çfarë është $PATH në Linux dhe si funksionon?

Kur shtypni një komandë në një dritare terminali dhe shtypni Enter, ju filloni mjaft aktivitete përpara se komanda juaj të ekzekutohet.

Bash është predha e parazgjedhur në shumicën e shpërndarjeve Linux. Ai interpreton rreshtin e tekstit që keni futur dhe identifikon emrat e komandave të përziera me parametrat, tubacionet, ridrejtimet dhe çfarëdo tjetër që është atje. Më pas lokalizon binarët e ekzekutueshëm për ato komanda dhe i lëshon ato me parametrat që keni dhënë.

Hapi i parë që shell ndërmerr për të gjetur ekzekutuesin është identifikimi nëse një binar është i përfshirë. Nëse komanda që përdorni është brenda vetë guaskës (një predhë e integruar) nuk kërkohet kërkim i mëtejshëm.

Instalimet e guaskës janë më të lehtat për t'u gjetur, sepse ato janë pjesë përbërëse e guaskës. Është si t'i kesh në një rrip veglash - ata janë gjithmonë me ju.

Sidoqoftë, nëse keni nevojë për një nga mjetet tuaja të tjera, duhet të kërkoni në punëtori për ta gjetur atë. A është në tavolinën tuaj të punës apo në një varëse muri? Kjo është ajo që bën ndryshorja e mjedisit PATH. Ai mban një listë të vendeve që kërkon guaska dhe renditjen në të cilën do të kërkohen.

Nëse dëshironi të shihni nëse një komandë është një guaskë e integruar, një pseudonim, një funksion ose një mv binar i pavarur /work/unfile, mund të përdorni komandën type siç tregohet më poshtë:

type clear
type cd

Kjo na tregon se clear është një skedar binar dhe i pari që gjendet në shteg ndodhet në /usr/bin. Mund të keni më shumë se një version të clear të instaluar në kompjuterin tuaj, por ky është ai që shell do të përpiqet të përdorë.

Çuditërisht, cd është një predhë e integruar.

Renditja e $PATH tuaj

Është e lehtë të shohësh se çfarë është në rrugën tënde. Thjesht shkruani sa vijon për të përdorur komandën echo dhe printoni vlerën e mbajtur në ndryshoren PATH:

echo $PATH

Dalja është një listë e pikave (:) të përcaktuara të vendndodhjeve të sistemit të skedarëve. Predha kërkon nga e majta në të djathtë përmes shtegut, duke kontrolluar çdo vendndodhje të sistemit të skedarëve për një ekzekutues që përputhet për të kryer komandën tuaj.

Ne mund të zgjedhim rrugën tonë përmes listimit për të parë vendndodhjet e sistemit të skedarëve që do të kërkohen dhe rendin në të cilin do të kërkohen:

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin

Diçka që mund të mos jetë menjëherë e dukshme është se kërkimi nuk fillon në drejtorinë aktuale të punës. Përkundrazi, ai funksionon nëpër drejtoritë e listuara dhe vetëm drejtoritë e listuara.

Nëse drejtoria aktuale e punës nuk është në rrugën tuaj, ajo nuk do të kërkohet. Gjithashtu, nëse keni komanda të ruajtura në drejtori që nuk janë në rrugë, guaska nuk do t'i gjejë ato.

Për ta demonstruar këtë, ne krijuam një program të vogël të quajtur rf. Kur ekzekutohet, rf printon emrin e drejtorisë nga e cila është nisur në dritaren e terminalit. Ndodhet në /usr/local/bin. Kemi gjithashtu një version më të ri në drejtorinë /dave/work.

Ne shtypim komandën e mëposhtme  which për të na treguar se cilin version të programit tonë do të gjejë dhe përdor guaska:

which rf

Predha raporton se versioni që gjeti është ai në drejtorinë që është në rrugë.

Ne shtypim sa vijon për ta ndezur atë:

rf

Versioni 1.0 i rf ekzekutohet dhe konfirmon se pritjet tona ishin të sakta. Versioni i gjetur dhe i ekzekutuar ndodhet në /usr/local/bin.

Për të ekzekutuar çdo version tjetër të rf në këtë kompjuter, do të duhet të përdorim shtegun për në ekzekutuesin në vijën e komandës, siç tregohet më poshtë:

./work/rf

Tani që i kemi thënë shell-it se ku mund të gjejë versionin e rf që duam të ekzekutojmë, ai përdor versionin 1.1. Nëse preferojmë këtë version, mund ta kopjojmë atë në direktorinë /usr/local/bin dhe ta mbishkruajmë atë të vjetër.

Le të themi se po zhvillojmë një version të ri të rf. Do të na duhet ta ekzekutojmë shpesh ndërsa e zhvillojmë dhe testojmë, por nuk duam të kopjojmë një ndërtim zhvillimi të papublikuar në mjedisin e drejtpërdrejtë.

Ose, ndoshta kemi shkarkuar një version të ri të rf dhe duam të bëjmë disa testime verifikimi mbi të përpara se ta bëjmë të disponueshëm publikisht.

Nëse shtojmë direktorinë tonë të punës në shtegun, e bëjmë guaskën të gjejë versionin tonë. Dhe ky ndryshim do të ndikojë vetëm tek ne—të tjerët do të vazhdojnë të përdorin versionin e rf/usr/local/bin .

Shtimi i një drejtorie në $PATH tuaj

Ju mund të përdorni komandën eksporto për të shtuar një direktori në PATH. Drejtoria më pas përfshihet në listën e vendndodhjeve të sistemit të skedarëve që shell kërkon. Kur guaska gjen një ekzekutues që përputhet, ajo ndalon së kërkuari, kështu që ju dëshironi të siguroheni që fillimisht të kërkojë në drejtorinë tuaj, përpara /usr/local/bin.

Kjo është e lehtë për t'u bërë. Për shembullin tonë, ne shtypim sa vijon për të shtuar drejtorinë tonë në fillim të shtegut, në mënyrë që të jetë vendndodhja e parë e kërkuar:

export PATH=/home/dave/work:$PATH

Kjo komandë vendos PATH të jetë e barabartë me drejtorinë që po shtojmë, /home/dave/work dhe më pas të gjithë shtegun aktual.

PATH e parë nuk ka shenjë dollari ($). Ne vendosëm vlerën për PATH. PATH përfundimtar ka një shenjë dollari sepse po i referohemi përmbajtjes së ruajtur në ndryshoren PATH. Gjithashtu, vini re dy pika (:) midis drejtorisë së re dhe emrit të ndryshores PATH.

Le të shohim se si duket rruga tani:

echo $PATH

Drejtoria jonë /home/dave/work shtohet në fillim të shtegut. Zorra e trashë që kemi dhënë e ndan pjesën tjetër të shtegut.

Ne shtypim sa vijon për të verifikuar që versioni ynë i rf është i pari i gjetur:

which rf

Prova në puding po funksionon rf, siç tregohet më poshtë:

rf

Predha gjen versionin 1.1 dhe e ekzekuton atë nga /home/dave/work.

Për të shtuar drejtorinë tonë në fund të shtegut, ne thjesht e zhvendosim atë në fund të komandës, si kjo:

export PATH=$PATH:/home/dave/work

Bërja e Përhershme e Ndryshimeve

Siç tha Beth Brooke-Marciniak, Suksesi është i mirë, por suksesi është i përkohshëm. Në momentin që mbyllni dritaren e terminalit, çdo ndryshim që keni bërë në PATH është zhdukur. Për t'i bërë ato të përhershme, duhet të vendosni komandën tuaj export në një skedar konfigurimi.

Kur vendosni komandën eksporto në skedarin tuaj .bashrc, ai cakton shtegun sa herë që hapni një dritare terminali. Ndryshe nga sesionet SSH, për të cilat duhet të identifikoheni, këto quhen sesione interaktive.

Në të kaluarën, do të vendosnit komandën eksporto në skedarin tuaj .profile për të vendosur shtegun për sesionet e hyrjes në terminal.

Megjithatë, zbuluam se nëse vendosim komandën export në skedarët .bashrc ose .profile, ajo vendosi saktë shtegun për të dy skedarët interaktivë dhe hyni në sesionet e terminalit. Përvoja juaj mund të jetë e ndryshme. Për të trajtuar të gjitha rastet, ne do t'ju tregojmë se si ta bëni atë në të dy skedarët.

Përdorni komandën e mëposhtme në drejtorinë tuaj /home për të modifikuar skedarin .bashrc:

gedit .bashrc

Redaktori gedit hapet me skedarin .bashrc të ngarkuar.

Lëvizni në fund të skedarit dhe më pas shtoni komandën e mëposhtme të eksportit që kemi përdorur më parë:

export PATH=/home/dave/work:$PATH

Ruani skedarin. Më pas, mbyllni dhe rihapni dritaren e terminalit ose përdorni komandën dot për të lexuar skedarin .bashrc, si më poshtë:

. .bashrc

Më pas, shtypni komandën e mëposhtme echo për të kontrolluar shtegun:

echo $PATH

Kjo shton drejtorinë /home/dave/work në fillim të shtegut.

Procesi për të shtuar komandën në skedarin .profile është i njëjtë. Shkruani komandën e mëposhtme:

gedit .profile

Redaktori gedit hapet me skedarin .profile të ngarkuar.

Shtoni komandën eksporto në fund të skedarit dhe më pas ruajeni. Mbyllja dhe hapja e një dritareje të re terminali është e pamjaftueshme për të detyruar skedarin .profile të rilexohet. Që cilësimet e reja të hyjnë në fuqi, duhet të dilni dhe të hyni përsëri ose të përdorni komandën dot siç tregohet më poshtë:

. .profile

Vendosja e Rrugës për Të gjithë

Për të vendosur shtegun për të gjithë ata që përdorin sistemin, mund të modifikoni skedarin /etc/profile.

Ju do të duhet të përdorni sudo, si më poshtë:

sudo gedit /etc/profile

Kur hapet redaktori gedit, shtoni komandën e eksportit në fund të skedarit.

Ruani dhe mbyllni skedarin. Ndryshimet do të hyjnë në fuqi për të tjerët herën tjetër që të identifikohen.

Një shënim mbi sigurinë

Sigurohuni që të mos shtoni rastësisht një dy pika kryesore : në shtegun, siç tregohet më poshtë.

Nëse e bëni këtë, kjo do të kërkojë fillimisht drejtorinë aktuale, e cila paraqet një rrezik sigurie. Thuaj se keni shkarkuar një skedar arkiv dhe e keni zbërthyer atë në një drejtori. Ju shikoni skedarët dhe shihni një skedar tjetër të zip. Ju telefononi unzip edhe një herë për të nxjerrë atë arkiv.

Nëse arkivi i parë përmbante një skedar të ekzekutueshëm të quajtur unzip që ishte një ekzekutues me qëllim të keq, ju do ta aktivizoni aksidentalisht atë në vend të ekzekutuesit real unzip. Kjo do të ndodhte sepse guaska do të shikonte fillimisht në drejtorinë aktuale.

Pra, jini gjithmonë të kujdesshëm kur shkruani komandat tuaja eksporto. Përdorni echo PATH për t'i rishikuar dhe për t'u siguruar që janë ashtu siç dëshironi të jenë.

RELATED: Best Linux Laptops for Developers and Enthusiasts