Respuestas:
El .bashrc
archivo es un script que se ejecuta cada vez que se inicia una nueva sesión de terminal en modo interactivo . Esto es lo que sucede cuando abre una nueva ventana de terminal presionando Ctrl+ Alt+ T, o simplemente abre una nueva pestaña de terminal.
Por el contrario, una sesión de terminal en modo de inicio de sesión le pedirá su nombre de usuario y contraseña y ejecutará el ~/.bash_profile
script. Esto es lo que ocurre, por ejemplo, cuando inicia sesión en un sistema remoto a través de SSH.
El .bashrc
archivo en sí contiene una serie de configuraciones para la sesión de terminal. Esto incluye la configuración o habilitación: coloración, finalización, el historial del shell, alias de comandos y más. El .bashrc
archivo distribuido con Ubuntu está bien comentado y podrá comprender la mayoría de lo que hace con solo leerlo.
Puede ajustar .bashrc
a su gusto. Aquí puede obtener un ejemplo con muchas características adicionales.
Pregunta sobre superusuario : ¿Qué es el archivo .bashrc? por @pineapple y respondida por @DigitalRoss
En realidad, es
bash
específicamente lo que lee.bashrc
(y/etc/bash.bashrc
). Hay muchas conchas diferentes.La página de manual de bash (por Brian Fox y Chet Ramey; también la página de información "Bash Startup Files" ) es la referencia autorizada:
Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, bash lee y ejecuta comandos desde
~/.bashrc
, si ese archivo existe. Esto puede inhibirse mediante el uso de la--norc
opción. La--rcfile
opción de archivo obligará a bash a leer y ejecutar comandos desde el archivo en lugar de~/.bashrc
.Cuando bash se inicia de manera no interactiva, para ejecutar un script de shell, por ejemplo, busca la variable
BASH_ENV
en el entorno, expande su valor si aparece allí y usa el valor expandido como el nombre de un archivo para leer y ejecutar. Bash se comporta como si se ejecutara el siguiente comando:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
pero el valor de la
PATH
variable no se usa para buscar el nombre del archivo.El archivo es solo comandos de shell. Por lo general, se usa para cambiar mensajes, establecer variables de entorno y definir procedimientos de shell. Tradicionalmente, el archivo
.profile
se usa para este propósito, perobash
tiene tantas extensiones que necesita su propio archivo de inicio para los usuarios que desean poner bashismos en los archivos de inicio." No es un shell de inicio de sesión " significa cosas como el lanzamiento de scripts y, por lo general, las ventanas de terminal iniciadas por administradores de ventanas. A veces configuro sistemas * nix para tener
.bashrc
yBASH_ENV
solo fuente.profile
. Mientras no se desvíe de los comandos de shell POSIX, obtendrá la misma inicialización en cualquier shell.Es particularmente valioso cuando
sh
es realmentebash
, lo que a veces sucede. Para hacer esto use:. .profile
Una razón por la que todo esto es tan complejo es porque a veces las personas colocan cosas que producen resultados en archivos de inicio de shell, o establecen incondicionalmente mensajes. Esto causa muchos problemas al ejecutar programas de shell y comandos de retroceso dentro de lenguajes, sin mencionar los
system(3)
programas en C. La forma en que sebash
inicia está diseñada, creo, para tener un archivo donde la configuración de salida y solicitud esté bien y un archivo donde no lo esté. Tradicionalmente, se realizaría una prueba de tiempo de ejecución para distinguir la interactividad, por ejemplo, para verificar si el indicador está configurado.
.bashrc
es uno de los muchos archivos de configuración de bash conmf. Consulte la documentación oficial sobre Bash Startup Files .