
Cuando hago eco de $PATH me sale esto: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools
.
Quiero eliminar algunas rutas de esto, pero cuando abro el archivo usando el comando vim /etc/paths
, obtengo los siguientes resultados:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
¿El archivo /etc/paths es diferente de la variable $PATH?
Respuesta1
/etc/paths
es parte de lo que se usa para configurar $PATH
los procesos de shell. Cuando abre una nueva ventana de Terminal, se inicia bash
, que ejecuta varios scripts de inicio: /etc/profile
AND ~/.bash_profile
OR (si no existe) ~/.bash_login
OR (si tampoco existe) ~/.profile
. Estos scripts configuran el entorno del shell, incluido $PATH
.
Una de las cosas /etc/profile
que hace es ejecutar /usr/libexec/path_helper
, que lee /etc/paths
todos los archivos /etc/paths.d
y agrega su contenido $PATH
. Pero esto es sólo un punto de partida; su propio script de inicio (si existe alguno) puede agregarlo $PATH
, editarlo, reemplazarlo por completo, etc.
Me parece que su secuencia de comandos de inicio (y/o las cosas que ejecuta) está agregando una cantidad de entradas al conjunto básico que obtiene /etc/paths
. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" se agrega al principio de $PATH
(lo que significa que esos directorios se buscarán primero) y ":/Users/mac/Library/Android/sdk /platform-tools:/platform-tools" se agrega al final. Si desea saber exactamente qué los agrega, debe consultar su secuencia de comandos de inicio.
Por cierto, este proceso de configuración $PATH
solo se aplica a los shells de "inicio de sesión" de bash. Cualquier cosa ejecutada por un shell bash heredará $PATH
de él, por lo que probablemente tenga esencialmente lo mismo. Los shells bash sin inicio de sesión siguen un proceso de configuración algo diferente. Otros shells y cosas que no se inician desde un shell (por ejemplo, trabajos cron) pueden tener archivos $PATHs
.
Respuesta2
Los primeros lugares donde buscaría modificaciones son:
~/.profile
~/.bashrc
~/.bash_profile
Si está utilizando algo que no es Bash, verifique los archivos de configuración para ver cualquier mención de PATH.