source: postlfs/config/profile.xml@ 22ad473

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.4 9.0 9.1 bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 22ad473 was 1794983d, checked in by DJ Lucas <dj@…>, 5 years ago

On systemd, source /etc/locale.conf for /etc/profile.d/i18n.sh. Partial fix for #11193.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@20740 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 20.8 KB
RevLine 
[f8d632a]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[f8d632a]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
[78b3cd61]8<sect1 id="postlfs-config-profile" xreflabel="The Bash Shell Startup Files">
[2753b70b]9 <?dbhtml filename="profile.html"?>
10
11 <sect1info>
12 <othername>$LastChangedBy$</othername>
13 <date>$Date$</date>
14 </sect1info>
15
16 <title>The Bash Shell Startup Files</title>
17
18 <para>The shell program <filename>/bin/bash</filename> (hereafter
19 referred to as just "the shell") uses a collection of startup files to
20 help create an environment. Each file has a specific use and
21 may affect login and interactive environments differently. The files in
[384039a]22 the <filename class="directory">/etc</filename> directory generally provide
[2753b70b]23 global settings. If an equivalent file exists in your home directory it may
24 override the global settings.</para>
25
26 <para>An interactive login shell is started after a successful login, using
[6f36554]27 <filename>/bin/login</filename>, by reading the
28 <filename>/etc/passwd</filename> file. This shell invocation normally reads
29 <filename>/etc/profile</filename> and its private equivalent
30 <filename>~/.bash_profile</filename> (or <filename>~/.profile</filename> if
31 called as <command>/bin/sh</command>) upon startup.</para>
[2753b70b]32
33 <para>An interactive non-login shell is normally started at the command-line
[ba0deaad]34 using a shell program (e.g.,
35 <prompt>[prompt]$</prompt><command>/bin/bash</command>) or by the
[2753b70b]36 <command>/bin/su</command> command. An interactive non-login shell is also
37 started with a terminal program such as <command>xterm</command> or
38 <command>konsole</command> from within a graphical environment. This type of
39 shell invocation normally copies the parent environment and then reads the
[6f36554]40 user's <filename>~/.bashrc</filename> file for additional startup
41 configuration instructions.</para>
[2753b70b]42
43 <para>A non-interactive shell is usually present when a shell script is
44 running. It is non-interactive because it is processing a script and not
45 waiting for user input between commands. For these shell invocations, only
46 the environment inherited from the parent shell is used.</para>
47
48 <para> The file <filename>~/.bash_logout</filename> is not used for an
49 invocation of the shell. It is read and executed when a user exits from an
50 interactive login shell.</para>
51
[a05dbe6]52 <para>Many distributions use <filename>/etc/bashrc</filename> for system wide
53 initialization of non-login shells. This file is usually called from the
54 user's <filename>~/.bashrc</filename> file and is not built directly into
55 <command>bash</command> itself. This convention is followed in this
56 section.</para>
[2753b70b]57
[384039a]58 <para>For more information see <command>info bash</command> --
[2753b70b]59 <emphasis role="strong">Nodes: Bash Startup Files and Interactive
[ba0deaad]60 Shells</emphasis>.</para>
61
62 <note>
63 <para>Most of the instructions below are used to create files located in
64 the <filename class='directory'>/etc</filename> directory structure which
65 requires you to execute the commands as the
66 <systemitem class='username'>root</systemitem> user. If you elect to create
67 the files in user's home directories instead, you should run the commands
68 as an unprivileged user.</para>
69 </note>
[2753b70b]70
71 <sect2 id="etc-profile-profile">
72 <title>/etc/profile</title>
73
74 <indexterm zone="postlfs-config-profile etc-profile-profile">
75 <primary sortas="e-etc-profile">/etc/profile</primary>
76 </indexterm>
77
78 <para>Here is a base <filename>/etc/profile</filename>. This file starts by
79 setting up some helper functions and some basic parameters. It specifies some
[ba0deaad]80 <command>bash</command> history parameters and, for security purposes,
[384039a]81 disables keeping a permanent history file for the <systemitem
[2753b70b]82 class="username">root</systemitem> user. It also sets a
83 default user prompt. It then calls small, single purpose scripts in the
84 <filename class='directory'>/etc/profile.d</filename> directory to provide most
[ba0deaad]85 of the initialization.</para>
[2753b70b]86
87 <para>For more information on the escape sequences you can use for your prompt
[ba0deaad]88 (i.e., the <envar>PS1</envar> environment variable) see <command>info
[2753b70b]89 bash</command> -- <emphasis role="strong">Node: Printing a
[ba0deaad]90 Prompt</emphasis>.</para>
[2753b70b]91
[8e37798]92<screen role="root"><?dbfo keep-together="auto"?><userinput>cat &gt; /etc/profile &lt;&lt; "EOF"
[2753b70b]93<literal># Begin /etc/profile
[b554263]94# Written for Beyond Linux From Scratch
95# by James Robertson &lt;jameswrobertson@earthlink.net&gt;
[1a396398]96# modifications by Dagmar d'Surreal &lt;rivyqntzne@pbzpnfg.arg&gt;
[384039a]97
[b554263]98# System wide environment variables and startup programs.
[384039a]99
[b554263]100# System wide aliases and functions should go in /etc/bashrc. Personal
101# environment variables and startup programs should go into
102# ~/.bash_profile. Personal aliases and functions should go into
103# ~/.bashrc.
[384039a]104
[1a396398]105# Functions to help us manage paths. Second argument is the name of the
106# path variable to be modified (default: PATH)
107pathremove () {
108 local IFS=':'
109 local NEWPATH
110 local DIR
111 local PATHVARIABLE=${2:-PATH}
112 for DIR in ${!PATHVARIABLE} ; do
113 if [ "$DIR" != "$1" ] ; then
114 NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
115 fi
116 done
117 export $PATHVARIABLE="$NEWPATH"
[b554263]118}
[384039a]119
[1a396398]120pathprepend () {
121 pathremove $1 $2
122 local PATHVARIABLE=${2:-PATH}
123 export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
124}
[384039a]125
[1a396398]126pathappend () {
127 pathremove $1 $2
128 local PATHVARIABLE=${2:-PATH}
129 export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
130}
[384039a]131
[ec7940be]132export -f pathremove pathprepend pathappend
[e9ef7b5e]133
134# Set the initial path
135export PATH=/bin:/usr/bin
136
[1a396398]137if [ $EUID -eq 0 ] ; then
[e9ef7b5e]138 pathappend /sbin:/usr/sbin
[1a396398]139 unset HISTFILE
[b554263]140fi
[384039a]141
[1a396398]142# Setup some environment variables.
143export HISTSIZE=1000
144export HISTIGNORE="&amp;:[bf]g:exit"
[0d7ec6f1]145
[97c713e]146# Set some defaults for graphical systems
[caee7667]147export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share/}
148export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg/}
149export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER}
[97c713e]150
[410e228b]151# Setup a red prompt for root and a green one for users.
[0d7ec6f1]152NORMAL="\[\e[0m\]"
153RED="\[\e[1;31m\]"
154GREEN="\[\e[1;32m\]"
155if [[ $EUID == 0 ]] ; then
156 PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
157else
158 PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
159fi
[384039a]160
[1a396398]161for script in /etc/profile.d/*.sh ; do
[d3880c0]162 if [ -r $script ] ; then
[1a396398]163 . $script
164 fi
165done
[384039a]166
[f91e4b98]167unset script RED GREEN NORMAL
[dc53944]168
[2753b70b]169# End /etc/profile</literal>
170EOF</userinput></screen>
[1a396398]171
[2753b70b]172 <sect3 id="etc-profile.d">
173 <title>The /etc/profile.d Directory</title>
[99e8a229]174
[2753b70b]175 <indexterm zone="postlfs-config-profile etc-profile.d">
176 <primary sortas="e-etc-profile.d">/etc/profile.d</primary>
177 </indexterm>
[1a396398]178
[384039a]179 <para>Now create the <filename class='directory'>/etc/profile.d</filename>
[ba0deaad]180 directory, where the individual initialization scripts are placed:</para>
[1a396398]181
[2753b70b]182<screen role="root"><userinput>install --directory --mode=0755 --owner=root --group=root /etc/profile.d</userinput></screen>
[1a396398]183
[2753b70b]184 </sect3>
[1a396398]185
[931a597]186 <sect3 id="etc-profile.d-bash-completion.sh">
187 <title>/etc/profile.d/bash_completion.sh</title>
188
189 <indexterm zone="postlfs-config-profile etc-profile.d-bash-completion.sh">
190 <primary sortas="e-etc-profile.d-bash-completion.sh">/etc/profile.d/bash_completion.sh</primary>
191 </indexterm>
192
193 <para>This script imports bash completion scripts, installed by many
194 other BLFS packages, to allow TAB command line completion.</para>
195
196<screen role="root"><userinput>cat &gt; /etc/profile.d/bash_completion.sh &lt;&lt; "EOF"
197<literal># Begin /etc/profile.d/bash_completion.sh
198# Import bash completion scripts
199
200for script in /etc/bash_completion.d/*.sh ; do
201 if [ -r $script ] ; then
202 . $script
203 fi
204done
205# End /etc/profile.d/bash_completion.sh</literal>
206EOF</userinput></screen>
207
208 <para>Make sure that the directory exists:</para>
209
210<screen role="root"><userinput>install --directory --mode=0755 --owner=root --group=root /etc/bash_completion.d</userinput></screen>
211
212 </sect3>
213
214
215
[2753b70b]216 <sect3 id="etc-profile.d-dircolors.sh">
217 <title>/etc/profile.d/dircolors.sh</title>
218
219 <indexterm zone="postlfs-config-profile etc-profile.d-dircolors.sh">
220 <primary sortas="e-etc-profile.d-dircolors.sh">/etc/profile.d/dircolors.sh</primary>
221 </indexterm>
222
223 <para>This script uses the <filename>~/.dircolors</filename> and
224 <filename>/etc/dircolors</filename> files to control the colors of file names in a
225 directory listing. They control colorized output of things like <command>ls
[ba0deaad]226 --color</command>. The explanation of how to initialize these files is at the
[2753b70b]227 end of this section.</para>
228
229<screen role="root"><userinput>cat &gt; /etc/profile.d/dircolors.sh &lt;&lt; "EOF"
[b5905ae]230<literal># Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
[1a396398]231if [ -f "/etc/dircolors" ] ; then
232 eval $(dircolors -b /etc/dircolors)
[89ef45fc]233fi
[384039a]234
[89ef45fc]235if [ -f "$HOME/.dircolors" ] ; then
236 eval $(dircolors -b $HOME/.dircolors)
[b554263]237fi
[89ef45fc]238
[b5905ae]239alias ls='ls --color=auto'
240alias grep='grep --color=auto'</literal>
[2753b70b]241EOF</userinput></screen>
242
243 </sect3>
244
245 <sect3 id="extrapaths.sh">
246 <title>/etc/profile.d/extrapaths.sh</title>
247
248 <indexterm zone="postlfs-config-profile extrapaths.sh">
249 <primary sortas="e-etc-profile.d-extrapaths.sh">/etc/profile.d/extrapaths.sh</primary>
250 </indexterm>
251
[dc53944]252 <para>This script adds some useful paths to the <envar>PATH</envar> and
253 can be used to customize other PATH related environment variables
[f3429309]254 (e.g. LD_LIBRARY_PATH, etc) that may be needed for all users.</para>
[384039a]255
[2753b70b]256<screen role="root"><userinput>cat &gt; /etc/profile.d/extrapaths.sh &lt;&lt; "EOF"
257<literal>if [ -d /usr/local/lib/pkgconfig ] ; then
[1a396398]258 pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
259fi
260if [ -d /usr/local/bin ]; then
261 pathprepend /usr/local/bin
[b554263]262fi
[1a396398]263if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then
264 pathprepend /usr/local/sbin
[a4f641b]265fi
[bfa21f3]266
267# Set some defaults before other applications add to these paths.
268pathappend /usr/share/man MANPATH
[a4f641b]269pathappend /usr/share/info INFOPATH</literal>
[2753b70b]270EOF</userinput></screen>
271
272 </sect3>
273
274 <sect3 id="readline.sh">
275 <title>/etc/profile.d/readline.sh</title>
276
277 <indexterm zone="postlfs-config-profile readline.sh">
278 <primary sortas="e-etc-profile.d-readline.sh">/etc/profile.d/readline.sh</primary>
279 </indexterm>
280
[384039a]281 <para>This script sets up the default <filename>inputrc</filename>
282 configuration file. If the user does not have individual settings, it uses the
[2753b70b]283 global file.</para>
284
285<screen role="root"><userinput>cat &gt; /etc/profile.d/readline.sh &lt;&lt; "EOF"
286<literal># Setup the INPUTRC environment variable.
[b554263]287if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then
[1a396398]288 INPUTRC=/etc/inputrc
[b554263]289fi
[2753b70b]290export INPUTRC</literal>
291EOF</userinput></screen>
292
293 </sect3>
294
295 <sect3 id="umask.sh">
296 <title>/etc/profile.d/umask.sh</title>
297
298 <indexterm zone="postlfs-config-profile umask.sh">
299 <primary sortas="e-etc-profile.d-umask.sh">/etc/profile.d/umask.sh</primary>
300 </indexterm>
[384039a]301
302 <para>Setting the <command>umask</command> value is important for security.
303 Here the default group write permissions are turned off for system users and when
[2753b70b]304 the user name and group name are not the same.</para>
[b554263]305
[2753b70b]306<screen role="root"><userinput>cat &gt; /etc/profile.d/umask.sh &lt;&lt; "EOF"
[ec64d28]307<literal># By default, the umask should be set.
[1a396398]308if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then
309 umask 002
310else
311 umask 022
[2753b70b]312fi</literal>
313EOF</userinput></screen>
314
315 </sect3>
316
[be409f9a]317<!-- This is handled in the Xorg section of the book
[2753b70b]318 <sect3 id="X.sh">
319 <title>/etc/profile.d/X.sh</title>
[1a396398]320
[2753b70b]321 <indexterm zone="postlfs-config-profile X.sh">
322 <primary sortas="e-etc-profile.d-X.sh">/etc/profile.d/X.sh</primary>
323 </indexterm>
[1a396398]324
[384039a]325 <para>If <application>X</application> is installed, the <envar>PATH</envar>
[2753b70b]326 and <envar>PKG_CONFIG_PATH</envar> variables are also updated.</para>
[1a396398]327
[2753b70b]328<screen role="root"><userinput>cat &gt; /etc/profile.d/X.sh &lt;&lt; "EOF"
329<literal>if [ -x /usr/X11R6/bin/X ]; then
[1a396398]330 pathappend /usr/X11R6/bin
331fi
332if [ -d /usr/X11R6/lib/pkgconfig ] ; then
333 pathappend /usr/X11R6/lib/pkgconfig PKG_CONFIG_PATH
[2753b70b]334fi</literal>
335EOF</userinput></screen>
336
337 </sect3>
[be409f9a]338-->
[d202a49f]339 <sect3 id="i18n.sh">
340 <!-- This is handled system wide on systemd but LANG is not exported to
341 the environment, hence it's return...need to add additional text for
342 systemd only -->
[0d7ec6f1]343 <title>/etc/profile.d/i18n.sh</title>
[2753b70b]344
345 <indexterm zone="postlfs-config-profile i18n.sh">
346 <primary sortas="e-etc-profile.d-i18n.sh">/etc/profile.d/i18n.sh</primary>
347 </indexterm>
348
[0f442884]349 <para>This script sets an environment variable necessary for
350 native language support. A full discussion on determining this
351 variable can be found on the <ulink
352 url="&lfs-root;/chapter07/profile.html">LFS Bash Shell
353 Startup Files</ulink> page.</para>
[2753b70b]354
[1794983d]355<screen role="root" revision="sysv"><userinput>cat &gt; /etc/profile.d/i18n.sh &lt;&lt; "EOF"
[2753b70b]356<literal># Set up i18n variables
[0f442884]357export LANG=<replaceable>&lt;ll&gt;</replaceable>_<replaceable>&lt;CC&gt;</replaceable>.<replaceable>&lt;charmap&gt;</replaceable><replaceable>&lt;@modifiers&gt;</replaceable></literal>
[1794983d]358EOF</userinput></screen>
359
360<screen role="root" revision="systemd"><userinput>cat &gt; /etc/profile.d/i18n.sh &lt;&lt; "EOF"
361<literal># Set up i18n variables
362. /etc/locale.conf
363export LANG</literal>
[2753b70b]364EOF</userinput></screen>
365
366 </sect3>
367
368 <sect3>
369 <title>Other Initialization Values</title>
370
[384039a]371 <para>Other initialization can easily be added to the
372 <filename>profile</filename> by adding additional scripts to the
[2753b70b]373 <filename class='directory'>/etc/profile.d</filename> directory.</para>
374
375 </sect3>
376
377 </sect2>
378
379 <sect2 id="etc-bashrc-profile">
380 <title>/etc/bashrc</title>
381
382 <indexterm zone="postlfs-config-profile etc-bashrc-profile">
383 <primary sortas="e-etc-bashrc">/etc/bashrc</primary>
384 </indexterm>
385
386 <para>Here is a base <filename>/etc/bashrc</filename>. Comments in the
387 file should explain everything you need.</para>
388
389<screen role="root"><userinput>cat &gt; /etc/bashrc &lt;&lt; "EOF"
[384039a]390<literal># Begin /etc/bashrc
391# Written for Beyond Linux From Scratch
[b554263]392# by James Robertson &lt;jameswrobertson@earthlink.net&gt;
[4e88613]393# updated by Bruce Dubbs &lt;bdubbs@&lfs-domainname;&gt;
[ad33bab6]394
[b554263]395# System wide aliases and functions.
396
397# System wide environment variables and startup programs should go into
398# /etc/profile. Personal environment variables and startup programs
399# should go into ~/.bash_profile. Personal aliases and functions should
400# go into ~/.bashrc
401
[b5905ae]402# Provides colored /bin/ls and /bin/grep commands. Used in conjunction
403# with code in /etc/profile.
[1a396398]404
[b554263]405alias ls='ls --color=auto'
[b5905ae]406alias grep='grep --color=auto'
[b554263]407
[1a396398]408# Provides prompt for non-login shells, specifically shells started
[2753b70b]409# in the X environment. [Review the LFS archive thread titled
[384039a]410# PS1 Environment Variable for a great case study behind this script
[dd362e5]411# addendum.]
[1a396398]412
[0d7ec6f1]413NORMAL="\[\e[0m\]"
414RED="\[\e[1;31m\]"
415GREEN="\[\e[1;32m\]"
416if [[ $EUID == 0 ]] ; then
417 PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL"
418else
419 PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL"
420fi
[28a9992]421
[dc53944]422unset RED GREEN NORMAL
423
[2753b70b]424# End /etc/bashrc</literal>
425EOF</userinput></screen>
426
427 </sect2>
428
429 <sect2 id="bash_profile-profile">
430 <title>~/.bash_profile</title>
431
432 <indexterm zone="postlfs-config-profile bash_profile-profile">
433 <primary sortas="e-AA.bash_profile">~/.bash_profile</primary>
434 </indexterm>
435
436 <para>Here is a base <filename>~/.bash_profile</filename>. If you want each
437 new user to have this file automatically, just change the output of
438 the command to <filename>/etc/skel/.bash_profile</filename> and check the
439 permissions after the command is run. You can then copy
440 <filename>/etc/skel/.bash_profile</filename> to the home directories of already
[384039a]441 existing users, including <systemitem class="username">root</systemitem>,
[2753b70b]442 and set the owner and group appropriately.</para>
443
444<screen><userinput>cat &gt; ~/.bash_profile &lt;&lt; "EOF"
445<literal># Begin ~/.bash_profile
[b554263]446# Written for Beyond Linux From Scratch
447# by James Robertson &lt;jameswrobertson@earthlink.net&gt;
[4e88613]448# updated by Bruce Dubbs &lt;bdubbs@&lfs-domainname;&gt;
[b554263]449
[64d97b7c]450# Personal environment variables and startup programs.
[b554263]451
452# Personal aliases and functions should go in ~/.bashrc. System wide
453# environment variables and startup programs are in /etc/profile.
454# System wide aliases and functions are in /etc/bashrc.
455
456if [ -f "$HOME/.bashrc" ] ; then
[76d61ba]457 source $HOME/.bashrc
[b554263]458fi
459
460if [ -d "$HOME/bin" ] ; then
[dc53944]461 pathprepend $HOME/bin
[b554263]462fi
463
[dc53944]464# Having . in the PATH is dangerous
465#if [ $EUID -gt 99 ]; then
466# pathappend .
467#fi
[b554263]468
[2753b70b]469# End ~/.bash_profile</literal>
470EOF</userinput></screen>
471
472 </sect2>
[384039a]473
[6f36554]474 <sect2 id="dot_profile-profile">
475 <title>~/.profile</title>
476
477 <indexterm zone="postlfs-config-profile dot_profile-profile">
478 <primary sortas="e-AA.dot_profile">~/.profile</primary>
479 </indexterm>
480
481 <para>Here is a base <filename>~/.profile</filename>. The comments and
482 instructions for using <filename class="directory">/etc/skel</filename> for
483 <filename>.bash_profile</filename> above also apply here. Only the target
484 file names are different.</para>
485
486<screen><userinput>cat &gt; ~/.profile &lt;&lt; "EOF"
487<literal># Begin ~/.profile
488# Personal environment variables and startup programs.
489
490if [ -d "$HOME/bin" ] ; then
491 pathprepend $HOME/bin
492fi
493
[d202a49f]494# Set up user specific i18n variables
495#export LANG=<replaceable>&lt;ll&gt;</replaceable>_<replaceable>&lt;CC&gt;</replaceable>.<replaceable>&lt;charmap&gt;</replaceable><replaceable>&lt;@modifiers&gt;</replaceable>
496
[6f36554]497# End ~/.profile</literal>
498EOF</userinput></screen>
499
500 </sect2>
501
[2753b70b]502 <sect2 id="bashrc-profile">
503 <title>~/.bashrc</title>
504
505 <indexterm zone="postlfs-config-profile bashrc-profile">
506 <primary sortas="e-AA.bashrc">~/.bashrc</primary>
507 </indexterm>
508
[6f36554]509 <para>Here is a base <filename>~/.bashrc</filename>.</para>
[2753b70b]510
511<screen><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
512<literal># Begin ~/.bashrc
[b554263]513# Written for Beyond Linux From Scratch
514# by James Robertson &lt;jameswrobertson@earthlink.net&gt;
515
516# Personal aliases and functions.
517
518# Personal environment variables and startup programs should go in
[64d97b7c]519# ~/.bash_profile. System wide environment variables and startup
[b554263]520# programs are in /etc/profile. System wide aliases and functions are
[384039a]521# in /etc/bashrc.
[b554263]522
523if [ -f "/etc/bashrc" ] ; then
[76d61ba]524 source /etc/bashrc
[b554263]525fi
526
[d202a49f]527# Set up user specific i18n variables
528#export LANG=<replaceable>&lt;ll&gt;</replaceable>_<replaceable>&lt;CC&gt;</replaceable>.<replaceable>&lt;charmap&gt;</replaceable><replaceable>&lt;@modifiers&gt;</replaceable>
529
[2753b70b]530# End ~/.bashrc</literal>
531EOF</userinput></screen>
532
533 </sect2>
[384039a]534
535
[2753b70b]536 <sect2 id="bash_logout-profile">
537 <title>~/.bash_logout</title>
538
539 <indexterm zone="postlfs-config-profile bash_logout-profile">
540 <primary sortas="e-AA.bash_logout">~/.bash_logout</primary>
541 </indexterm>
542
543 <para>This is an empty <filename>~/.bash_logout</filename> that can be used as
544 a template. You will notice that the base <filename>~/.bash_logout</filename>
545 does not include a <userinput>clear</userinput> command. This is because the
546 clear is handled in the <filename>/etc/issue</filename> file.</para>
547
548<screen><userinput>cat &gt; ~/.bash_logout &lt;&lt; "EOF"
549<literal># Begin ~/.bash_logout
[b554263]550# Written for Beyond Linux From Scratch
551# by James Robertson &lt;jameswrobertson@earthlink.net&gt;
552
553# Personal items to perform on logout.
554
[2753b70b]555# End ~/.bash_logout</literal>
556EOF</userinput></screen>
557
558 </sect2>
[384039a]559
560
[2753b70b]561 <sect2 id="etc-dircolors-profile">
562 <title>/etc/dircolors</title>
563
564 <indexterm zone="postlfs-config-profile etc-dircolors-profile">
565 <primary sortas="e-etc-dircolors">/etc/dircolors</primary>
566 </indexterm>
567
568 <indexterm zone="postlfs-config-profile etc-dircolors-profile">
569 <primary sortas="e-AA.dircolors">~/.dircolors</primary>
570 </indexterm>
571
[6f36554]572 <para> If you want to use the <filename>dircolors</filename> capability,
573 then run the following command. The
574 <filename class="directory">/etc/skel</filename> setup steps shown above
575 also can be used here to provide a <filename>~/.dircolors</filename> file
576 when a new user is set up. As before, just change the output file name on
577 the following command and assure the permissions, owner, and group are
578 correct on the files created and/or copied.</para>
[2753b70b]579
580<screen role="root"><userinput>dircolors -p > /etc/dircolors</userinput></screen>
581
[6f36554]582 <para>If you wish to customize the colors used for different file types,
583 you can edit the <filename>/etc/dircolors</filename> file. The instructions
584 for setting the colors are embedded in the file.</para>
[2753b70b]585
586
587 <para>Finally, Ian Macdonald has written an excellent collection of tips and
588 tricks to enhance your shell environment. You can read it online at
[ba0deaad]589 <ulink url="http://www.caliban.org/bash/index.shtml"/>.</para>
[2753b70b]590
591 </sect2>
592
[b554263]593</sect1>
Note: See TracBrowser for help on using the repository browser.