Difference between revisions of "Bash Startup Files"

From CBLFS
Jump to navigationJump to search
(/etc/bashrc)
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== /etc/bashrc ==
 
 
cat > /etc/bashrc << "EOF"
 
# Begin /etc/bashrc
 
 
source /etc/profile
 
 
# End /etc/bashrc
 
EOF
 
 
 
== /etc/profile ==
 
== /etc/profile ==
  
 
  cat > /etc/profile << "EOF"
 
  cat > /etc/profile << "EOF"
 
  # Begin /etc/profile
 
  # Begin /etc/profile
# Based on the profile scripts in BLFS http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html
 
 
   
 
   
 
  for script in /etc/profile.d/*.sh
 
  for script in /etc/profile.d/*.sh
Line 21: Line 10:
 
  unset script
 
  unset script
 
   
 
   
  # End /etc/profile.d
+
  # End /etc/profile
 
  EOF
 
  EOF
  
Line 31: Line 20:
 
  # Begin /etc/profile.d/05-i18n.sh
 
  # Begin /etc/profile.d/05-i18n.sh
 
   
 
   
  export LANG=[ll]_[CC].[locale]
+
  export LANG=[ll]_[CC].[charset]
export LC_ALL=[ll]_[CC]
 
 
  export G_FILENAME_ENCODING=@locale
 
  export G_FILENAME_ENCODING=@locale
 
    
 
    
Line 81: Line 69:
 
   
 
   
 
  export XDG_DATA_DIRS="/usr/share"
 
  export XDG_DATA_DIRS="/usr/share"
  export XDG_CONFIG_DIRS="/usr/share"
+
  export XDG_CONFIG_DIRS="/etc/xdg:/usr/share"
 
   
 
   
 
  # End /etc/profild.d/10-xdg.sh
 
  # End /etc/profild.d/10-xdg.sh
Line 88: Line 76:
 
=== 15-xorg.sh ===
 
=== 15-xorg.sh ===
  
Change ''XORG_PREFIX'' to wherever you are going to install Xorg to. Even if you are going to install Xorg6 or XFree86 make sure that ''XORG_PREFIX'' is still set to the appropriate value.
+
Change ''XORG_PREFIX'' to wherever you are going to install Xorg to. Even if you are going to install [[Xorg6]] make sure that ''XORG_PREFIX'' is still set to the appropriate value.
  
 
==== Non-Multilib 15-xorg.sh ====
 
==== Non-Multilib 15-xorg.sh ====
Line 161: Line 149:
 
   export PS1="\[\e]2;\u@\H :: \w\a\]$PS1"
 
   export PS1="\[\e]2;\u@\H :: \w\a\]$PS1"
 
  fi
 
  fi
 +
 +
shopt -s checkwinsize
 
   
 
   
 
  # End /etc/profile.d/50-prompt.sh
 
  # End /etc/profile.d/50-prompt.sh
Line 166: Line 156:
  
 
If you're after a colorful PS1 try using '''<nowiki>\[\e[1;32m\]\u\[\e[1;33m\]@\[\e[1;31m\]\H \[\e[1;34m\]\w \[\e[1;32m\]\$ \[\e[0;0m\]</nowiki>'''
 
If you're after a colorful PS1 try using '''<nowiki>\[\e[1;32m\]\u\[\e[1;33m\]@\[\e[1;31m\]\H \[\e[1;34m\]\w \[\e[1;32m\]\$ \[\e[0;0m\]</nowiki>'''
 +
 +
'''checkwinsize''' forces bash to check the size of the window at the end of each command. This is useful if you resized your terminal while a command was running.
 +
 +
For a more comprehensive treatment of the Bash prompt, refer to the [http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/ Bash Prompt HOWTO]
  
 
=== 50-readline.sh ===
 
=== 50-readline.sh ===
Line 208: Line 202:
 
  export BUILD32="-m32"
 
  export BUILD32="-m32"
 
  export BUILD64="-m64"
 
  export BUILD64="-m64"
 +
 +
export CLFS_TARGET32="i686-pc-linux-gnu"
 
   
 
   
 
  export LD_BUILD32="-m elf_i386"
 
  export LD_BUILD32="-m elf_i386"
Line 214: Line 210:
 
  # End /etc/profile.d/50-multilib.sh
 
  # End /etc/profile.d/50-multilib.sh
 
  EOF
 
  EOF
 +
 +
'''Adjust CLFS_TARGET32 to be the same as what was placed in ~clfs/.bashrc while building CLFS.'''
  
 
'''Adjust elf_i386 and elf_x86_64 accordingly for your architecture. If you're unsure what to set the value to see the output of:'''
 
'''Adjust elf_i386 and elf_x86_64 accordingly for your architecture. If you're unsure what to set the value to see the output of:'''

Latest revision as of 18:11, 12 January 2009

/etc/profile

cat > /etc/profile << "EOF"
# Begin /etc/profile

for script in /etc/profile.d/*.sh
do
  source $script
done
unset script

# End /etc/profile
EOF
install -d -m755 /etc/profile.d

05-i18n.sh

cat > /etc/profile.d/05-i18n.sh << "EOF"
# Begin /etc/profile.d/05-i18n.sh

export LANG=[ll]_[CC].[charset]
export G_FILENAME_ENCODING=@locale
 
# End /etc/profile.d/05-i18n.sh
EOF

10-path.sh

cat > /etc/profile.d/10-path.sh << "EOF"
# Begin /etc/profile.d/10-path.sh

if [ "$EUID" -eq 0 ]; then
  export PATH="/sbin:/bin:/usr/sbin:/usr/bin"
  if [ -d "/usr/local/sbin" ]; then
    export PATH="$PATH:/usr/local/sbin"
  fi
else
  export PATH="/bin:/usr/bin"
fi

if [ -d "/usr/local/bin" ]; then
  export PATH="$PATH:/usr/local/bin"
fi

if [ -d "$HOME/bin" ]; then
  export PATH="$HOME/bin:$PATH"
fi

# End /etc/profile.d/10-path.sh
EOF

10-pkg_config_path.sh (Multilib Only)

cat > /etc/profile.d/10-pkg_config_path.sh << "EOF"
# Begin /etc/profile.d/10-pkg_config_path.sh

export PKG_CONFIG_PATH32="/usr/lib/pkgconfig"
export PKG_CONFIG_PATHN32="/usr/lib32/pkgconfig"
export PKG_CONFIG_PATH64="/usr/lib64/pkgconfig"

# End /etc/profile.d/10-pkg_config_path.sh
EOF

10-xdg.sh

cat > /etc/profile.d/10-xdg.sh << "EOF"
# Begin /etc/profild.d/10-xdg.sh

export XDG_DATA_DIRS="/usr/share"
export XDG_CONFIG_DIRS="/etc/xdg:/usr/share"

# End /etc/profild.d/10-xdg.sh
EOF

15-xorg.sh

Change XORG_PREFIX to wherever you are going to install Xorg to. Even if you are going to install Xorg6 make sure that XORG_PREFIX is still set to the appropriate value.

Non-Multilib 15-xorg.sh

cat > /etc/profile.d/15-xorg.sh << "EOF"
# Begin /etc/profile.d/15-xorg.sh

export XORG_PREFIX=/usr/X11R7

export PATH="${PATH}:${XORG_PREFIX}/bin"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}${PKG_CONFIG_PATH+:}${XORG_PREFIX}/lib/pkgconfig"
export ACLOCAL="aclocal -I $XORG_PREFIX/share/aclocal"

# End /etc/profile.d/15-xorg.sh
EOF

Multilib 15-xorg.sh

cat > /etc/profile.d/15-xorg.sh << "EOF"
# Begin /etc/profile.d/15-xorg.sh

export XORG_PREFIX=/usr/X11R7

export PATH="${PATH}:${XORG_PREFIX}/bin"
export PKG_CONFIG_PATH32="${PKG_CONFIG_PATH32}${PKG_CONFIG_PATH32+:}${XORG_PREFIX}/lib/pkgconfig"
export PKG_CONFIG_PATHN32="${PKG_CONFIG_PATHN32}${PKG_CONFIG_PATHN32+:}${XORG_PREFIX}/lib32/pkgconfig"
export PKG_CONFIG_PATH64="${PKG_CONFIG_PATH64}${PKG_CONFIG_PATH64+:}${XORG_PREFIX}/lib64/pkgconfig"
export ACLOCAL="aclocal -I $XORG_PREFIX/share/aclocal"

# End /etc/profile.d/15-xorg.sh
EOF

50-dircolors.sh

cat > /etc/profile.d/50-dircolors.sh << "EOF"
# Begin /etc/profile.d/50-dircolors.sh

alias ls='ls --color=auto'
if [ -f "$HOME/.dircolors" ]; then
  eval `dircolors -b "$HOME/.dircolors"`
else
  if [ -f "/etc/dircolors" ]; then
    eval `dircolors -b "/etc/dircolors"`
  fi
fi

# End /etc/profile.d/50-dircolors.sh
EOF

To create /etc/dircolors run the following command:

dircolors -p > /etc/dircolors

50-history.sh

cat > /etc/profile.d/50-history.sh << "EOF"
# Begin /etc/profile.d/50-history.sh

export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"

# End /etc/profile.d/50-history.sh
EOF

50-prompt.sh

cat > /etc/profile.d/50-prompt.sh << "EOF"
# Begin /etc/profile.d/50-prompt.sh

export PS1="\u:\w\$ "
if [ "${TERM:0:5}" = "xterm" ]; then
  export PS1="\[\e]2;\u@\H :: \w\a\]$PS1"
fi

shopt -s checkwinsize

# End /etc/profile.d/50-prompt.sh
EOF

If you're after a colorful PS1 try using \[\e[1;32m\]\u\[\e[1;33m\]@\[\e[1;31m\]\H \[\e[1;34m\]\w \[\e[1;32m\]\$ \[\e[0;0m\]

checkwinsize forces bash to check the size of the window at the end of each command. This is useful if you resized your terminal while a command was running.

For a more comprehensive treatment of the Bash prompt, refer to the Bash Prompt HOWTO

50-readline.sh

cat > /etc/profile.d/50-readline.sh << "EOF"
# Begin /etc/profile.d/50-readline.sh

if [ -z "$INPUTRC" ]; then
  if [ -f "$HOME/.inputrc" ]; then
    export INPUTRC="$HOME/.inputrc"
  else
    if [ -f "/etc/inputrc" ]; then
      export INPUTRC="/etc/inputrc"
    fi
  fi
fi

# End /etc/profile.d/50-readline.sh
EOF

50-umask.sh

cat > /etc/profile.d/50-umask.sh << "EOF"
# Begin /etc/profile.d/50-umask.sh

if [ "`id -un`" = "`id -gn`" -a $EUID -gt 99 ]; then
  umask 002
else
  umask 022
fi

# End /etc/profile.d/50-umask.sh
EOF

50-multilib.sh (For Multilib Only)

Non-Mips

cat > /etc/profile.d/50-multilib.sh << "EOF"
# Begin /etc/profile.d/50-multilib.sh

export BUILD32="-m32"
export BUILD64="-m64"

export CLFS_TARGET32="i686-pc-linux-gnu"

export LD_BUILD32="-m elf_i386"
export LD_BUILD64="-m elf_x86_64"

# End /etc/profile.d/50-multilib.sh
EOF

Adjust CLFS_TARGET32 to be the same as what was placed in ~clfs/.bashrc while building CLFS.

Adjust elf_i386 and elf_x86_64 accordingly for your architecture. If you're unsure what to set the value to see the output of:

ld --help | grep emulations

Mips

cat > /etc/profile.d/50-multilib.sh << "EOF"
# Begin /etc/profile.d/50-multilib.sh

export BUILD32="-mabi=32"
export BUILDN32="-mabi=n32"
export BUILD64="-mabi=64"

export LD_BUILD32=""
export LD_BUILDN32=""
export LD_BUILD64=""

# End /etc/profile.d/50-multilib.sh
EOF