7.9. 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 en info bash la sección 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”). [charmap] debe reemplazarse por el nombre canónico del mapa de caracteres para tu locale elegida.

Puedes obtener la lista de todas las locales soportadas por Glibc ejecutando el siguiente comando:

locale -a

Las locales pueden tener una serie de sinónimos, por ejemplo “ISO-8859-15” se referencia también como “iso8859-15” y “iso885915”. Algunas aplicaciones no pueden manejar correctamente los diversos sinónimos, por lo que es más seguro elegir el nombre canónico de la locale. Para determinar el nombre canónico, en el que [nombre de la locale] es la salida mostrada por locale -a para tu locale preferida (“es_ES.iso885915” en nuestro ejemplo).

LC_ALL=[nombre de la locale] locale charmap

Para la locale “es_ES.iso885915”, el anterior comando mostrará:

ISO-8859-15

Esto resulta en un ajuste final para la locale de “es_ES.ISO-8859-15”.

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

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

export LANG=[ll]_[CC].[charmap]
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 aún por el sistema LFS.