Respuestas:
El .bashrcarchivo 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_profilescript. Esto es lo que ocurre, por ejemplo, cuando inicia sesión en un sistema remoto a través de SSH.
El .bashrcarchivo 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 .bashrcarchivo distribuido con Ubuntu está bien comentado y podrá comprender la mayoría de lo que hace con solo leerlo.
Puede ajustar .bashrca 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
bashespecí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--norcopción. La--rcfileopció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_ENVen 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"; fipero el valor de la
PATHvariable 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
.profilese usa para este propósito, perobashtiene 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
.bashrcyBASH_ENVsolo 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
shes realmentebash, lo que a veces sucede. Para hacer esto use:. .profileUna 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 sebashinicia 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.
.bashrces uno de los muchos archivos de configuración de bash conmf. Consulte la documentación oficial sobre Bash Startup Files .