Hasta la fecha solía configurar mis variables de entorno en el bash.bashrcarchivo. Recientemente me dijeron que usara el /etc/environmentarchivo. Bueno, ambos funcionan bien.
Entonces, ¿cuál es la diferencia entre ellos?
Busqué en Google esto y descubrí que "bashrc se usa para usuarios y entornos particulares, en todo el sistema". ¿Qué se entiende por todo el sistema aquí? /etc/bash.bashrcTambién está aplicando cambios en todo el sistema, supongo. Corrígeme si estoy equivocado. Cualquier tipo de ayuda será apreciada.
fuente

El
/etc/environmentarchivo establece el sistema variable en todo el sistema para cada usuario en el arranque. Los comandos en el/etc/bash.bashrcse ejecutan sibashcualquier usuario abre el shell. Por lo tanto, las variables no se establecerían a menos quebashse abra un shell al menos una vez.fuente
Y como usted pregunta sobre "todo el sistema ":
Los archivos de configuración ubicados en el
/etcdirectorio se aplican a todos los usuarios del sistema. Para/etc/bash.bashrcesto significaría que todos y todo lo que está utilizando el "Borne Again Shell" alias Bash en esa máquina. Incluso si usted es el único ser humano que lo usa, podría haber "usuarios técnicos" afectados (simplemente eche un vistazo/etc/passwdy compruebe con qué frecuencia aparece el término "/ bin / bash", o usegrep bash /etc/passwd | wc -l, lo que debería darle ese número directamente (es decir: "agarrar" todas las líneas que contienen la cadena "bash" del archivo "/ etc / passwd", y enviar los resultados ("|") al comando "wc" (recuento de palabras) para contar las líneas ("-l").Entonces, para su usuario, es mucho más seguro modificarlo
~/.bashrc(es decir, el archivo ".bashrc" - con un punto inicial, sí - en su directorio de inicio, por ejemplo/home/ankur/.bashrc), que luego afecta a su usuario y deja todo lo demás solo . Los archivos/etcsolo deben cambiarse si los cambios en todo el sistema realmente están destinados.Además: se usarán ambas configuraciones si existen. Primero, el archivo de todo el sistema (aquí:)
/etc/bash.bashrcse lee y se "obtiene" (su configuración se aplica a la sesión actual), y luego los usuarios/home/username/.bashrcse manejan de la misma manera y, por lo tanto, pueden agregar o incluso cambiar / sobrescribir la configuración de la configuración global/etc/bash.bashrcarchivo.fuente
Más allá de la discusión de todo el sistema y del alcance del usuario, una diferencia más significativa es
/etc/environmentque no es un script diferente~/.bashrc.No puede desreferenciar la variable dentro
/etc/environment, su asignación de variable que toma el valor de la línea literalmente (como ya lo mencionó roadmr).Su Ubuntu lo bloqueará si arruina el
$PATHinterior/etc/environmental intentar agregar una nueva rutaSi su página de inicio de sesión de Ubuntu Gnome o Unity no le permitió ingresar sin quejarse de la contraseña incorrecta. Y ha modificado recientemente
/etc/environment, lo más probable es que sea el caso.Una solución es iniciar sesión en la consola virtual CTRL+ ALT+ F1consola de inicio de sesión, verificar manualmente
$PATHy corregir el/etc/environmentarchivo.De acuerdo con esto ,
/etc/environmentse carga mediante la pila PAM, que llena la variable de entorno línea por línea.fuente
La diferencia entre los dos es que el
/etc/enivironmentarchivo funcionará para todos los usuarios, mientras que el archivo bash.bashrc funcionará particularmente solo para ese usuario. Y si hace algo mal en el/etc/environmentarchivo, las consecuencias pueden ser graves, mientras que puede deshacer fácilmente los cambios en el archivo bash.bashrc copiando el contenido del archivo / etc / environment. Pero la primera preferencia es dar albash.bashrcarchivo y luego al archivo / etc / environment. No es que si realiza cambios en elbash.bashrcarchivo, entonces el terminal dará preferencia al archivo de usuario local (es decir,bash.bashrc) y luego al archivo principal (es decir,/etc/environment).fuente