¿Cuál es la diferencia entre ~/.profiley ~/.bash_profile?
¿Cuál es la diferencia entre ~/.profiley ~/.bash_profile?
Respuestas:
El .profileera la configuración del perfil original para el shell Bourne (aka, sh). bash, ser un shell compatible con Bourne lo leerá y usará. El .bash_profilepor otro lado solo es leído por bash. Está destinado a comandos que son incompatibles con el shell Bourne estándar.
.profile. Por ejemplo, bashy kshpero no csho tcsh. Y zshproporciona tanto shy cshcompatibilidad por lo que va a leer tanto .profiley .login, además de zsharchivos punto específico.
El original de shorigen .profileen el inicio.
bash.bash_profileprimero intentará obtener la fuente , pero si eso no existe, generará .profile1 .
Tenga en cuenta que si bashse inicia como sh(por ejemplo, /bin/shes un enlace a /bin/bash) o si se inicia con el --posixindicador, intenta emular shy solo lee .profile.
Notas al pie:
.bash_profile, .bash_login,.profileVer también:
Usted sabe que existen muchos shells en el mundo UNIX, pero la mayoría de ellos son:
/bin/sh(Inventor: Stephen Bourne)/bin/bash(Inventor: Brian Fox, bajo el proyecto GNU) (potente shell)/bin/csh(Inventor: Bill Joy, Inventor de TCP / IP Stack)/bin/ksh(Inventor: David Korn bajo Bell Labs)/bin/zsh(Caparazón potente)/bin/tcsh(derivado de C Shell)/bin/dash(Derivado del shell de Almquist (ceniza bajo el proyecto NetBSD)) (Dash nacido de lenny)Pero su pregunta es sobre ~/.bash_profiley ~/.profile:
Cuando inicia sesión en una máquina UNIX, se redirige a su directorio de inicio, de acuerdo con el shell elegido por un administrador en el último campo /etc/passwd, como:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Su shell se ejecuta y, por defecto, cada shell tiene un archivo establecido para loginy logout. Cuando inicia sesión en bash, ~/.profilese ejecuta y cuando usted logout, ~/.bash_logoutse ejecuta.
~/.bash_historyEl archivo mantiene su comando de entrada.
~/.login Cuando inicias sesión~/.logout Cuando cierre sesión~/.tcshrcigual que ~./bashrcen bashPuede establecer la variable $histfilecomo nombre del archivo de historial y la variable $historycomo número de comandos para mantener.
De hecho, es un shell poderoso y si tienes tiempo libre, asegúrate de migrar a él.
A excepción de otro shell, Z shell tiene muchos archivos de configuración y archivos de inicialización, solo escribo:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Nota: si no está $ZDOTDIRconfigurado, conjunto de inicio.
Nota: TENEX C shell se bifurcó de C shell. C shell soporta por BSD. Si está familiarizado con la programación en lenguaje C, debe sentirse cómodo ya que su sintaxis es similar.
~/.login
~/.cshrc
~/.logout
Nota: csh es viejo. Use tcsh en su lugar.
~/.profileEs un shell muy, muy poderoso y nació bajo el proyecto GNU y bifurcado por Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Cuando inicia sesión, bash se ejecuta ~/.bash_profiley se ~/.bash_profileejecuta ~/.bashrc. De hecho, ~/.bashrcno es el archivo de inicialización de bash, porque bash no lo ejecuta.
Está muerto. Incluso cuando lo usas man sh, ves el manual de dash. [Nota del editor: el bit dashsolo se aplica a Debian y distribuciones basadas en Debian como Ubuntu.]
~/.bash_profiletrabajar bajo bash, pero ~/.profiletrabajar bajo Bourne y Korn shell.
Un shell de inicio de sesión es simplemente un shell que puede iniciar sesión a través de ssh o en la consola. Un shell sin inicio de sesión es un shell que alguien no puede iniciar sesión también. Los programas / servicios del sistema suelen utilizar un shell sin inicio de sesión.
En cuanto a tu tercer punto. Es cierto .bashrcse ejecuta en cada instancia del shell. Sin embargo, .bash_profilesolo se usa al iniciar sesión. De ahí la razón de los dos archivos separados.
.profilees para cosas que no están específicamente relacionadas con Bash, como las variables de entorno $ PATH, también debería estar disponible en cualquier momento. .bash_profilees específicamente para shells de inicio de sesión o shells ejecutados al iniciar sesión.