%general-entities; ]> The Bash Shell Startup Files /etc/profile The shell program /bin/bash (hereafter referred to as just the shell) uses a collection of startup files to help create an environment to run in. Each file has a specific use and may affect login and interactive environments differently. The files in the /etc directory generally provide global settings. If an equivalent file exists in your home directory it may override the global settings. An interactive login shell is started after a successful login, using /bin/login, by reading the /etc/passwd file. An interactive non-login shell is started at the command-line (e.g., [prompt]$/bin/bash). A non-interactive shell is usually present when a shell script is running. It is non-interactive because it is processing a script and not waiting for user input between commands. For more information see info bash -- Nodes: Bash Startup Files and Interactive Shells. The files /etc/profile and ~/.bash_profile are read when the shell is invoked as an interactive login shell. A base /etc/profile created below sets some environment variables necessary for native language support. By setting them properly, you get: the output of programs translated into your native language; correct classification of characters into letters, digits and other classes - this is necessary for Bash to accept non-ASCII characters in command lines properly in non-English locales; the alphabetical sorting order correct for your country; good default paper size; correct formatting of monetary, time and date values. This script also sets the INPUTRC environment variable that makes Bash and Readline use the /etc/inputrc file we created earlier. Replace [ll] below with the two-letter code for your language (e.g., en) and [CC] with the two-letter code for your country (e.g., GB). Also you may need to specify (and this is actually the preferred form) your character encoding (e.g. iso8859-1) after a dot (so that the result is en_GB.iso8859-1). Issue the following command for more information: man 3 setlocale The list of all locales supported by Glibc can be obtained by running the following command: locale -a Now, when you are sure about your locale settings, create the /etc/profile file: cat > /etc/profile << "EOF" # Begin /etc/profile export LC_ALL=[ll]_[CC] export LANG=[ll]_[CC] export INPUTRC=/etc/inputrc # End /etc/profile EOF The C (default) and en_US (the recommended one for US English users) locales are different. Setting the keyboard layout, the screen font and the locale-related environment variables are the only internationalization steps needed to support locales that use ordinary single-byte encodings and left-to-right writing direction. More complex cases (including UTF-8 based locales) require additional steps and additional patches because many applications tend to break in such conditions. Because of too little educational value for a typical reader, these steps and patches are not included in the LFS book and such locales are not supported by LFS in any way.