source: chapter07/profile.xml@ a734e03

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since a734e03 was a734e03, checked in by Alexander E. Patrakov <alexander@…>, 20 years ago

Fixed a typo

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3867 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
3 <!ENTITY % general-entities SYSTEM "../general.ent">
4 %general-entities;
5]>
6<sect1 id="ch-scripts-profile">
7<title>The Bash Shell Startup Files</title>
8<?dbhtml filename="profile.html"?>
9
10<indexterm zone="ch-scripts-profile"><primary sortas="e-/etc/profile">/etc/profile</primary></indexterm>
11
12<para>The shell program <command>/bin/bash</command> (hereafter
13referred to as just <quote>the shell</quote>) uses a collection of startup files to
14help create an environment to run in. Each file has a specific use and
15may affect login and interactive environments differently. The files in
16the <filename class="directory">/etc</filename> directory generally provide global
17settings. If an equivalent file exists in your home directory it may
18override the global settings.
19</para>
20
21<para>An interactive login shell is started after a successful login, using
22<command>/bin/login</command>, by reading the
23<filename>/etc/passwd</filename> file. An
24interactive non-login shell is started at the command-line (e.g.,
25<prompt>[prompt]$</prompt><command>/bin/bash</command>). A non-interactive
26shell is usually present when a shell script is running. It is non-interactive
27because it is processing a script and not waiting for user input between
28commands.</para>
29
30<para>For more information see <command>info bash</command> --
31<emphasis role="strong">Nodes: Bash Startup Files and Interactive
32Shells.</emphasis></para>
33
34<para>The files <filename>/etc/profile</filename> and
35<filename>~/.bash_profile</filename> are read when the shell is invoked
36as an interactive login shell.</para>
37
38<para>A base <filename>/etc/profile</filename> created below sets some
39environment variables necessary for native language support. By setting them
40properly, you get:
41</para>
42<itemizedlist>
43<listitem><para>the output of programs translated into your native
44language;</para></listitem>
45<listitem><para>correct classification of characters into letters, digits and
46other classes - this is necessary for Bash to accept non-ASCII characters
47in command lines properly in non-English locales;</para></listitem>
48<listitem><para>the alphabetical sorting order correct for your
49country;</para></listitem>
50<listitem><para>good default paper size;</para></listitem>
51<listitem><para>correct formatting of monetary, time and date
52values.</para></listitem>
53</itemizedlist>
54
55<para>This script also sets the INPUTRC environment variable that makes
56<application>Bash</application> and <application>Readline</application> use
57the <filename>/etc/inputrc</filename> file we created earlier.</para>
58
59<para>Replace <replaceable>[ll]</replaceable> below with the
60two-letter code for your language (e.g., <quote>en</quote>) and
61<replaceable>[CC]</replaceable> with the two-letter code for your country
62(e.g., <quote>GB</quote>). Also you may need to specify
63(and this is actually the preferred form) your
64character encoding (e.g. <quote>iso8859-1</quote>) after a dot
65(so that the result is <quote>en_GB.iso8859-1</quote>).
66Issue the following command for more information:</para>
67
68<screen><userinput>man 3 setlocale</userinput></screen>
69
70<para>The list of all locales supported by Glibc can be obtained by running
71the following command:</para>
72
73<screen><userinput>locale -a</userinput></screen>
74
75<para>Now, when you are sure about your locale settings, create the
76<filename>/etc/profile</filename> file:</para>
77
78<screen><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
79# Begin /etc/profile
80
81export LC_ALL=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>
82export LANG=<replaceable>[ll]</replaceable>_<replaceable>[CC]</replaceable>
83export INPUTRC=/etc/inputrc
84
85# End /etc/profile
86EOF</userinput></screen>
87
88<note><para>The <quote>C</quote> (default) and <quote>en_US</quote>
89(the recommended one for US English users) locales are
90different.</para></note>
91
92<para>Setting the keyboard layout,
93the screen font and the locale-related environment variables
94are the only internationalization steps needed to support
95locales that use ordinary single-byte encodings and left-to-right
96writing direction. More complex cases (including UTF-8 based locales)
97require additional steps and additional patches because many applications
98tend to break in such conditions. Because of too little educational
99value for a typical reader, these steps and patches are not included
100in the LFS book and such locales are not supported by LFS in any way.
101</para>
102</sect1>
Note: See TracBrowser for help on using the repository browser.