Com funciona PATH a Bash

How Does Path Work Bash



Quan escriviu una ordre al terminal Linux, generalment truqueu a un programa per fer una feina determinada, per exemple, ls , cd , rm , mkdir , etc. Tots aquests programes es troben en algun lloc del sistema de fitxers, oi? Com sap bash on són aquests programes?

Aquí entren en joc les variables d'entorn, especialment la variable PATH. Aquesta variable s'encarrega d'indicar a bash on cal cercar aquests programes. Vegem com funciona PATH i com es pot veure / modificar PATH.







Variable d'entorn i $ PATH

A la terminologia de l'intèrpret d'ordres, l'entorn és una àrea que l'intèrpret d'ordres crea cada vegada que inicia una sessió. Per gestionar l’entorn, hi ha variables d’entorn que denoten diferents parts de l’entorn. El valor de la variable pot ser una cadena, una ubicació de directori, un valor o altres.



PATH és una variable d'entorn que fa un seguiment de determinats directoris. Per defecte, la variable PATH conté les ubicacions següents.



  • / usr / bin
  • / usr / sbin
  • / usr / local / bin
  • / usr / local / sbin
  • / sóc
  • / sbin
  • / snap / bin (si està instal·lat Snap)

Voleu veure quins directoris estan registrats actualment a PATH? Engegueu un terminal i executeu l'ordre següent.





$trobo $ PATH

Aquí, el signe $ és per indicar una variable. El trobo ordre imprimeix el valor de la variable PATH.



Ara bé, per què aquesta variable d’entorn específica és tan important? És perquè com el shell i el sistema en general ho tracten. La variable PATH emmagatzema on es poden trobar els executables. Sempre que s'executa qualsevol ordre, l'intèrpret d'ordres busca els directoris PATH del fitxer executable de destinació i l'executa.

Per exemple, provem amb el trobo comandament. Aquí estic executant una ordre de ressò.

$troboHola món!

On és el fitxer executable trobo ? Executeu l'ordre següent per esbrinar-ho.

$quin trobo

Com podem veure, el trobo executable es troba a / usr / bin / echo. On es troba? Anem a esbrinar.

$quin quin

També es troba a / usr / bin / which. La majoria de les eines d’ordres es troben al directori / usr / bin. Aquí, bash consulta PATH per trobar les ubicacions per cercar els executables d’una ordre.

Modificació de PATH

Abans de modificar el valor de PATH, és important entendre’n l’estructura. Executeu l'ordre de nou per comprovar el valor de PATH.

$trobo $ PATH

Fixeu-vos que cadascun dels directoris està separat per un signe:.

Addició de directori a PATH

Per afegir un directori personalitzat a PATH, utilitzarem el fitxer bashrc. És un script bash especial que es carrega cada cop que comença una nova sessió bash. Tingueu en compte que el fitxer bashrc és únic per a cada usuari del sistema Linux.

Obriu el fitxer bashrc en un editor de text. Si el fitxer bashrc encara no està present, l’editor el crearà automàticament.

$vaig venir~/.bashrc

Aquí és el bashrc per defecte que ve amb Ubuntu. Aneu a l’últim fitxer (si existeix) i afegiu la línia següent.

$exportació CAMÍ='$ PATH: / '

Aquí, el nou valor de la variable PATH serà l'antiga variable juntament amb el nou directori que acabem d'afegir.

Deseu el fitxer i digueu a bash que el torneu a carregar.

$font~/.bashrc

Verifiquem si el nou camí d'accés s'ha afegit correctament.

$trobo $ PATH

Voila! PATH s'ha actualitzat correctament. Ara, bash també cercarà executable (s) al nou camí d'accés. Ja tinc un guió demo.sh a l’escriptori. Vegem si bash pot trucar-hi sense especificar la ubicació exacta.

$demo.sh

Sí, bash pot trucar-lo directament sense cap problema.

S'està suprimint el directori de PATH

No hi ha cap manera directa d’afegir / eliminar directoris de PATH. Deixa'm explicar.

El valor de PATH és realment fix. Llavors, què passa amb el truc bashrc? Bashrc és un script bash que es carrega bash cada vegada que inicia una sessió. A bashrc, acabem de declarar que el nou valor de PATH serà el seu valor per defecte i el directori definit per l'usuari. Ara, cada vegada que es carrega bash, veu que bashrc diu que assigni un nou valor de PATH i això és el que fa.

De la mateixa manera, si volem eliminar un directori de PATH, hem de reassignar un valor diferent de PATH al bashrc perquè cada cop que comenci bash, utilitzi el valor modificat.

Vegem aquest exemple. Estic disposat a eliminar el directori ~ / Desktop del PATH.

$trobo $ PATH | sed -I 's /: ~ / Desktop $ //'

Si el directori seria / home / incorrecte / dir, l'ordre seria així.

$trobo $ PATH | sed -I 's /: / home / incorrecte / dir $ //'

Aquí, la part interessant és l'eina sed. Més informació sobre sed aquí i aquí . La història llarga, amb sed, estem modificant la sortida del trobo comandament. Ara podem utilitzar aquesta sortida modificada per canviar el valor de PATH.

Obriu bashrc en un editor de text i afegiu les línies següents. Mantenc intencionadament les línies anteriors per demostrar que funciona.

$exportació CAMÍ='$ (eco $ PATH | sed -e 's /: ~ / Desktop $ //')'

Com a alternativa, també podeu establir manualment el valor de PATH. És un procés laboral però més directe i senzill.

$exportació CAMÍ=/usr/local/sbin:/usr/local/sóc:/usr/sbin:/usr/sóc:/sbin:/sóc:
/usr/jocs:/usr/local/jocs:/encaixar/sóc

Aquí, el valor de l'ordre s'assignarà a PATH. Deseu el fitxer i torneu a carregar bashrc.

$font~/.bashrc

Verifiquem el resultat.

$trobo $ PATH

S'ha actualitzat el valor PATH.

Pensaments finals

A bash, la variable PATH és important. Qualsevol programa que s’executi a través de la sessió bash hereta la variable, per tant, és important que PATH inclogui només els directoris necessaris. Afegir més directori només afegirà redundància al sistema.

Per veure totes les variables d'entorn de bash, executeu aquesta ordre. La primera part d'ordres retornarà totes les variables d'entorn i la segona part ordenarà la sortida en ordre ascendent.

$env | ordenar

Voleu condimentar la vostra experiència bash? Els àlies de Bash ofereixen una manera única d’accelerar i d’accelerar les coses. Obteniu més informació sobre els àlies bash .

Gaudeix-ne!