shell - omf - Modificando PATH con cáscara de pescado
while fish (2)
Como todos los shells, fish hereda su PATH del entorno en el que se inicia. La forma en que se configura para los shells de inicio de sesión difiere entre los sistemas operativos; en Linux, por ejemplo, /etc/login.defs
controla el conjunto de PATH inicial para todos los shells de inicio de sesión. No sé cómo está configurado en OS X.
A continuación, como bash
o csh
, los archivos de inicialización del shell pueden alterar la ruta. Para fish en OS X, hay un código en share/fish/config.fish
para cargar rutas desde los archivos de configuración de ruta de OS X /etc/paths
y /etc/paths.d/*
. Existe un código alternativo para establecer una ruta útil en Solaris.
También hay un código para seleccionar rutas de la variable universal $fish_user_paths
, que es la forma correcta de agregar algo a su PATH y reflejarlo en todos los shells .
Actualmente estoy jugando con la cáscara de los peces y tengo algunos problemas para entender cómo se configura la variable PATH
. Por lo que vale, también estoy usando oh-my-fish .
Si hago eco de mi ruta actual obtengo:
➜ fish echo $PATH
/usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/texbin /Users/myname/.opam/system/bin
Observando ~/.config/fish/config.fish
veo la siguiente línea
set PATH /usr/local/bin $PATH /Users/myname/.opam/system/bin
Mi pregunta es (y esta expresión probablemente reflejará mi falta de conocimiento sobre el tema): antes de que se config.fish
, ¿dónde está establecida la variable PATH
? es decir: ¿de /Users/myname/.opam/system/bin
provienen todas las rutas entre /usr/local/bin
y /Users/myname/.opam/system/bin
?
Este comando:
set -U fish_user_paths /usr/local/bin $fish_user_paths
Esto agregará /usr/local/bin
permanentemente a su ruta.