GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuáles son las diferencias funcionales entre .profile .bash_profile y .bashrc

Solución 1:

.bash_profile y .bashrc son específicos de bash , mientras que .profile es leído por muchos shells en ausencia de sus propios archivos de configuración específicos de shell. (.profile fue utilizado por el shell Bourne original.) .bash_profile o .profile es leído por shells de inicio de sesión, junto con .bashrc; subcapas de solo lectura .bashrc . (Entre el control de trabajos y los modernos sistemas de ventanas, .bashrc por sí solo no se usa mucho. Si usa screen o tmux , las pantallas/ventanas normalmente ejecutan subcapas en lugar de capas de inicio de sesión).

La idea detrás de esto era que .profile realizara una configuración única (o versión específica de shell del mismo), y cosas por shell por .bashrc . Por ejemplo, por lo general, solo desea cargar las variables de entorno una vez por sesión en lugar de eliminarlas cada vez que inicia un subshell dentro de una sesión, mientras que siempre desea sus alias (que no se propagan automáticamente como lo hacen las variables de entorno).

Otros archivos de configuración de shell destacados:

/etc/bash_profile (alternativo /etc/profile ) se lee antes del .profile del usuario para la configuración de todo el sistema, y ​​también /etc/bashrc en subcapas (no hay respaldo para este). Muchos sistemas, incluido Ubuntu, también usan un /etc/profile.d directorio que contiene scriptlets de shell, que son . (source )-ed desde /etc/profile; los fragmentos aquí son por shell, con *.sh se aplica a todos los shells compatibles con Bourne/POSIX y otras extensiones que se aplican a ese shell en particular.

Solución 2:

.perfil

.profile es para cosas que no están específicamente relacionadas con Bash , como variables de entorno PATH y amigos, y debería estar disponible en cualquier momento.

Por ejemplo, .profile también debe cargarse al iniciar una sesión de escritorio gráfico.

.bashrc

.bashrc es para configurar el uso interactivo de Bash, como Bash aliases , configurando tu editor favorito , configurando el Bash prompt , etc.

.bash_perfil

.bash_profile es para asegurarse de que ambas cosas en .profile y .bashrc se cargan para login shells .

Por ejemplo, .bash_profile podría ser algo simple como

. ~/.profile
. ~/.bashrc

Si tuviera que omitir .bashrc , solo .profile se cargaría.

Solución 3:

Según la página man de bash, .bash_profile se ejecuta para shells de inicio de sesión, mientras que .bashrc se ejecuta para shells interactivos sin inicio de sesión.

Entonces, ¿qué es un shell de inicio de sesión o de no inicio de sesión?

Cuando inicie sesión (ingrese el nombre de usuario y la contraseña) a través de la consola, ya sea sentado en la máquina o de forma remota a través de ssh:.bash_profile se ejecuta para configurar su shell antes del símbolo del sistema inicial. Pero, si ya inició sesión en su máquina y abrió una nueva ventana de terminal (xterm) dentro de Gnome o KDE, entonces .bashrc se ejecuta antes del símbolo del sistema de la ventana. .bashrc también se ejecuta cuando inicia una nueva instancia de bash escribiendo /bin/bash en una terminal.

Una excepción a las pautas de la ventana de terminal es Terminal.app de Mac OS X, que ejecuta un shell de inicio de sesión de forma predeterminada para cada nueva ventana de terminal, llamando a .bash_profile en lugar de .bashrc . Otros emuladores de terminales GUI pueden hacer lo mismo, pero la mayoría tiende a no hacerlo.

Más aquí.


Linux
  1. ¿Cuál es la diferencia entre InnoDB y MyISAM?

  2. ¿Cuáles son las diferencias fundamentales entre los principales * nix Shells?

  3. ¿Cuáles son las principales diferencias entre Bsd y Gnu/linux Userland?

  4. ¿La diferencia entre ~/.profile y ~/.bash_profile?

  5. Fedora vs Ubuntu:¿Cuáles son las diferencias clave?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuáles son las diferencias entre cPanel y WHM?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Cuáles son las diferencias entre rdesktop y xfreerdp?

¿Cuál es la diferencia entre unlink y rm?