Estoy usando zsh y estoy tratando de agregar una nueva entrada ( /home/david/pear/bin
) a la PATH
variable pero no sé cómo.
Lo que más me confunde es que no hay una sola referencia a una PATH
variable en mi ~/.zshrc
archivo, sino que echo $PATH
devuelve:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Entonces, una PATH
variable se está estableciendo en alguna parte.
PATH="/home/david/pear/bin:/usr/bin:etc"
quePATH=/home/david/pear/bin:/usr/bin:etc
para que se quede en zshrc.PATH
del proceso principal que lo inició, y luego cuando se ejecuta.zshrc
(.bashrc
o lo que sea), eso es lo que le permite agregar cosas adicionales a esa ruta.En realidad, el uso de ZSH le permite utilizar un mapeo especial de variables de entorno. Entonces simplemente puedes hacer:
Para mí, esa es una característica muy clara que se puede propagar a otras variables. Ejemplo:
fuente
~/.zshrc
se obtiene después.profile
y sobrescribe todo.profile
. Me tomó un tiempo tirar de mi cabello para resolverlo.-x
y dejar solo valores únicos en una variable con-U
, se asume dos puntos por defecto, por lo que puede ser:typeset -TUx PATH path
path=(...)
(sin hacer referencia$path
o$PATH
dentro) asigna,path=(... $path)
antepone ypath+(...)
agrega.Puede agregar a su
PATH
de una manera mínima. No necesita paréntesis a menos que esté agregando más de un elemento. Tampoco suele necesitar comillas. Entonces, la forma simple y corta de agregar es:Uso común
Entonces el patrón común para probar un nuevo script / ejecutable se convierte en:
Esta sintaxis en minúsculas se utiliza
path
como una matriz , pero también afecta a su equivalente en mayúsculas,PATH
al que está "vinculado" a través detypeset
.(Observe que no
:
se necesita / desea como separador ).Cositas relacionadas
Tratar de
path
esta manera (como una matriz) también significa: no es necesario hacer unarehash
para obtener los comandos recién modificados que se encuentran.También eche un vistazo
vared path
como una forma dinámica de editarpath
y otras cosas.Es posible que solo le interese
path
esta pregunta, pero como estamos hablando de exportaciones y matrices, tenga en cuenta que las matrices generalmente no se pueden exportar.Incluso puede evitar
PATH
tomar entradas duplicadas (consulte esto y esto ):fuente
path+='my/path' # for fun
. Es obvio si tiene espacios, pero no tanto si tiene comentarios.path
. Se:
requiere un precedente paraPATH
, como sigue en .zshrcPATH+=:/Users/path/to/my/folder
un forro, sin abrir
~/.zshrc
archivoo
Para ver el efecto, hazlo
source ~/.zshrc
en la misma pestaña o abre una nueva pestañafuente
Se agregó ruta a ~ / .zshrc
sudo vi ~/.zshrc
agregar nueva ruta
Actualización ~ / .zshrc
Guardar ~ / .zshrc
source ~/.zshrc
Comprobar RUTA
echo $PATH
fuente
Bash
camino.OPCIÓN 1: Agregue esta línea a ~ / .zshrc:
Después de eso, debe ejecutar
source ~/.zshrc
para que los cambios surtan efecto O cierre esta ventana y abra una nuevaOPCIÓN 2: ejecútelo dentro de la consola del terminal para agregar esta ruta solo a la sesión actual de la ventana del terminal. Cuando cierre la ventana / sesión, se perderá.
fuente