1 | <?xml version="1.0" encoding="ISO-8859-1"?>
|
---|
2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
---|
3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
---|
4 | <!ENTITY % general-entities SYSTEM "../../general.ent">
|
---|
5 | %general-entities;
|
---|
6 | ]>
|
---|
7 |
|
---|
8 | <sect1 id="ch-config-profile">
|
---|
9 | <title>The Bash Shell Startup Files</title>
|
---|
10 | <?dbhtml filename="profile.html"?>
|
---|
11 |
|
---|
12 | <indexterm zone="ch-config-profile">
|
---|
13 | <primary sortas="e-/etc/profile">/etc/profile</primary>
|
---|
14 | </indexterm>
|
---|
15 |
|
---|
16 | <para>The shell program <command>/bin/bash</command> (hereafter
|
---|
17 | referred to as <quote>the shell</quote>) uses a collection of startup
|
---|
18 | files to help create an environment to run in. Each file has a
|
---|
19 | specific use and may affect login and interactive environments
|
---|
20 | differently. The files in the <filename class="directory">/etc</filename>
|
---|
21 | directory provide global settings. If an equivalent file exists in the
|
---|
22 | home directory, it may override the global settings.</para>
|
---|
23 |
|
---|
24 | <para>An interactive login shell is started after a successful login,
|
---|
25 | using <command>/bin/login</command>, by reading the
|
---|
26 | <filename>/etc/passwd</filename> file. An interactive non-login shell
|
---|
27 | is started at the command-line (e.g.,
|
---|
28 | <prompt>[prompt]$</prompt><command>/bin/bash</command>). A
|
---|
29 | non-interactive shell is usually present when a shell script is
|
---|
30 | running. It is non-interactive because it is processing a script and
|
---|
31 | not waiting for user input between commands.</para>
|
---|
32 |
|
---|
33 | <para>For more information, see <command>info bash</command> under the
|
---|
34 | <emphasis>Bash Startup Files and Interactive Shells</emphasis> section,
|
---|
35 | and <ulink url="&cblfs-root;index.php/Bash_Startup_Files">Bash Startup
|
---|
36 | Files</ulink> in CBLFS.</para>
|
---|
37 |
|
---|
38 | <para>The files <filename>/etc/profile</filename> and
|
---|
39 | <filename>~/.bash_profile</filename> are read when the shell is
|
---|
40 | invoked as an interactive login shell. Create a base
|
---|
41 | <filename>/etc/profile</filename> that will load any Bash auto completion
|
---|
42 | files that may be on the system, and set the <envar>INPUTRC</envar>
|
---|
43 | environment variable that makes Bash and Readline use
|
---|
44 | <filename>/etc/inputrc</filename>:</para>
|
---|
45 |
|
---|
46 | <screen><userinput>cat > /etc/profile << "EOF"
|
---|
47 | <literal># Begin /etc/profile
|
---|
48 |
|
---|
49 | for f in /etc/bash_completion.d/*
|
---|
50 | do
|
---|
51 | if [ -e ${f} ]; then source ${f}; fi
|
---|
52 | done
|
---|
53 | unset f
|
---|
54 |
|
---|
55 | export INPUTRC=/etc/inputrc</literal>
|
---|
56 | EOF</userinput></screen>
|
---|
57 |
|
---|
58 | </sect1>
|
---|