No encuentro mi .bash_login y .bash_profile
root@linux:~# locate .bash* /etc/bash.bashrc /etc/skel/.bashrc /etc/skel/.bashrc.original /home/noroot/.bashrc /home/noroot/.bashrc.original /root/.bash_history /root/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc /usr/share/kali-defaults/.bashrc root@linux:~#
¿Siempre hay ¿Solo un archivo .bashrc y .bash_profile para cada usuario?
Y, ¿.bashrc y .bash_profile siempre se encuentran en el directorio / home / «nombre de usuario»?
Respuesta
Los únicos que bash mira por defecto están en el directorio de inicio del usuario, sí. También hay típicamente una fuente única para ellos en Linux – / etc / skel. Sin embargo, el directorio de inicio del usuario no necesita estar debajo de / home.
Veo que ha editado su pregunta para preguntar dónde están sus archivos .bash_login y .bash_profile. en el indicador #
, voy a asumir que está ejecutando esto como root. En ese caso, sus archivos son
/root/.bash_history /root/.bashrc
Vea mi respuesta original anterior con respecto al directorio de inicio de un usuario; no siempre es / home; en este caso, el directorio de inicio de root es /root
.
Respuesta
De acuerdo con man bash
:
Cuando se invoca bash como un shell de inicio de sesión interactivo, o como un shell no interactivo con la opción –login, primero lee y ejecuta comandos desde el archivo / etc / profile, si ese archivo existe. Después de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login y ~ / .profile, en ese orden, y lee y ejecuta los comandos del primero que existe y es legible.
~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file
También hay /etc/bashrc
( /etc/bash.bashrc
en Linux basado en Debian) que contiene System wide functions and aliases
. De forma predeterminada, esto está configurado, incluso para shells que no son interactivos ni de inicio de sesión.
EDIT:
El tilde
en las rutas indica el home directory
del usuario actualmente conectado. Bash solo puede usar uno de ~/.bash_profile, ~/.bash_login, or ~/.profile
(por usuario actualmente conectado), en ese orden, para leer y ejecutar comandos. (Los sistemas operativos basados en Debian normalmente no tienen ~/.bash_profile or ~/.bash_login.
Usan el archivo ~/.profile
. Este archivo explica que se leerá y usará a menos que ~/.bash_profile or ~/.bash_login
se crean.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
existe.
Comentarios
- ¿De qué manera responde esto a mi pregunta?
- @BROY Responde a la pregunta que debería haberte hecho en lugar de la que hiciste.
- He visto a algunas personas poner un archivo .bash_profile en los directorios del proyecto, ¿realmente bash lo detecta? Se supone que div> debe suceder de forma predeterminada.
Respuesta
Su bashrc
la ubicación del archivo depende de la distribución … Aquí hay una lista básica para el sistema bashrc
:
/etc/bashrc
(Redhat, Fedora, etc.)
/etc/bash.bashrc
(Debian, Ubuntu, Linux Mint, Backtrack, Kali, etc.)
/etc/bash.bashrc.local
(Suse, OpenSuse, etc.)
Luego está el usuario único privado bashrc
, que, en su mayor parte, se almacena en ~/.bashrc
básicamente para todas las distribuciones … Si no tienes una de las distribuciones en la lista, o tienes un sistema especial, siempre puedes buscar bashrc
ubicación en Google para esa distribución o sistema …
Saludos,
Interesante …
Respuesta
Como la gente ya ha dicho, puede encontrar un esqueleto de bashrc en /etc/skel/.bashrc. Si diferentes usuarios desean diferentes configuraciones de bash, entonces debe colocar un archivo .bashrc en la carpeta de inicio de ese usuario.
Cuando se trata de .bash_profile y .bash_login, el usuario debe crearlos manualmente y vincularlos a través de bashrc . bash_profile y bash_login existen para crear una sensación más organizada para las diferentes configuraciones que carga. Personalmente, mantengo todos mis alias en bash_profile para no tener que ordenar un desorden en bashrc para hacer una edición rápida.
Aquí hay un ejemplo de lo que tendría en su archivo .bashrc:
if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi