7.8. Los ficheros de inicio de Bash

El intérprete de comandos /bin/bash (al que nos referiremos como “el intérprete”) utiliza una colección de ficheros de inicio para ayudar a crear un entorno de trabajo. Cada fichero tiene un uso específico y pueden generar diferentes entornos de ingreso o interactivos. Los ficheros del directorio /etc proporcionan ajustes globales. Si existe un fichero diferente en el directorio personal, este puede sobreescribir los ajustes globales.

Un intérprete de ingreso interactivo se inicia tras ingresar en el sistema, usando /bin/login, mediante la lectura del fichero /etc/passwd. Un intérprete interactivo de no ingreso se inicia en la línea de comandos (es decir, [prompt]$/bin/bash). Un intérprete no interactivo está presente usualmente cuando se ejecuta un guión del intérprete de comandos. Es no interactivo porque está procesando un guión y no esperando indicaciones del usuario entre comandos.

Para más información, consulta info bash - Nodo: Bash Startup Files and Interactive Shells (Ficheros de inicio de Bash e intérpretes interactivos.

Los ficheros /etc/profile y ~/.bash_profile son leidos cuando el intérprete se invoca como un intérprete interactivo de ingreso.

El siguiente fichero /etc/profile básico establece algunas variables de entorno necesarias para el soporte de idioma nativo. Al establecerlas correctamente se obtiene:

Este guión establece también la variable de entoro INPUTRC que hace que Bash y Readline utilicen el fichero /etc/inputrc creado anteriormente.

Sustituye a continuación [ll] con el código de dos letras del idioma deseado (por ejemplo, “es”) y [CC] con el código de dos letras de tu país (por ejemplo, “ES”). También puede ser necesario especificar (y en realidad esta es la forma preferida) la codificación de caracteres (por ejemplo, “iso8859-15”) tras un punto (por lo que el resultado sería “es_ES.iso8859-15”). Para más información, ejecuta el siguiente comando:

man 3 setlocale

La lista de todas las locales soportadas (instaladas) por Glibc se puede obtener ejecutando el siguiente comando:

locale -a

Una vez hayas determinado los ajustes correctos para el idioma, crea el fichero /etc/profile:

cat > /etc/profile << "EOF"
# Inicio de /etc/profile

export LC_ALL=[ll]_[CC]
export LANG=[ll]_[CC]
export INPUTRC=/etc/inputrc

# Fin de /etc/profile
EOF
[Nota]

Nota

Las locales “C” (la que se tiene por defecto) y “en_US” (la recomendada para los usuarios de habla inglesa de los Estados Unidos) son diferentes.

Configurar el esquema del teclado, la fuente de pantalla y las variables de entorno relacionadas con las locales son los únicos pasos necesarios para soportar las codificaciones ordinarias de un byte y dirección de escritura de izquierda a derecha. Los casos más complejos (incluidas las locales basadas en UTF-8) necesitan pasos y parches adicionales debido a que muchas aplicaciones tienden a funcionar incorrectamente bajo tales condiciones. Estos pasos y parches no se incluyen en el libro LFS y dichas locales no están soportadas de ninguna forma por el sistema LFS.