home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / etc / bash.bashrc < prev    next >
Text File  |  2006-11-29  |  7KB  |  303 lines

  1. # /etc/bash.bashrc for SuSE Linux
  2. #
  3. # PLEASE DO NOT CHANGE /etc/bash.bashrc There are chances that your changes
  4. # will be lost during system upgrades.  Instead use /etc/bash.bashrc.local
  5. # for your local settings, favourite global aliases, VISUAL and EDITOR
  6. # variables, etc ...
  7.  
  8. #
  9. # Check which shell is reading this file
  10. #
  11. if test -z "$is" ; then
  12.  if test -f /proc/mounts ; then
  13.   case "`ls --color=never -l /proc/$$/exe`" in
  14.     */bash)    is=bash ;;
  15.     */rbash)    is=bash ;;
  16.     */ash)    is=ash  ;;
  17.     */ksh)    is=ksh  ;;
  18.     */pdksh)    is=ksh  ;;
  19.     */zsh)    is=zsh  ;;
  20.     */*)    is=sh   ;;
  21.   esac
  22.  else
  23.   is=sh
  24.  fi
  25. fi
  26.  
  27. #
  28. # ksh/ash soemtimes do not know
  29. #
  30. test -z "$UID"  && readonly  UID=`id -ur 2> /dev/null`
  31. test -z "$EUID" && readonly EUID=`id -u  2> /dev/null`
  32.  
  33. #
  34. # Colored file listings
  35. #
  36. if test -x /usr/bin/dircolors ; then
  37.     #
  38.     # set up the color-ls environment variables:
  39.     #
  40.     if test -f $HOME/.dir_colors ; then
  41.     eval "`dircolors -b $HOME/.dir_colors`"
  42.     elif test -f /etc/DIR_COLORS ; then
  43.     eval "`dircolors -b /etc/DIR_COLORS`"
  44.     fi
  45. fi
  46.  
  47. #
  48. # ls color option depends on the terminal
  49. # If LS_COLROS is set but empty, the terminal has no colors.
  50. #
  51. if test "${LS_COLORS+empty}" = "${LS_COLORS:+empty}" ; then
  52.     LS_OPTIONS=--color=tty
  53. else
  54.     LS_OPTIONS=--color=none
  55. fi
  56. if test "$UID" = 0 ; then
  57.     LS_OPTIONS="-A -N $LS_OPTIONS -T 0"
  58. else
  59.     LS_OPTIONS="-N $LS_OPTIONS -T 0"
  60. fi
  61.  
  62. #
  63. # Avoid trouble with Emacs shell mode
  64. #
  65. if test "$EMACS" = "t" ; then
  66.     LS_OPTIONS='-N --color=none -T 0';
  67.     tset -I -Q
  68.     stty cooked pass8 dec nl -echo
  69. fi
  70. export LS_OPTIONS
  71.  
  72. #
  73. # Set prompt and aliases to something useful for an interactive shell
  74. #
  75. case "$-" in
  76. *i*)
  77.     #
  78.     # Some useful functions
  79.     #
  80.     startx  () {
  81.     test -x /usr/bin/startx || {
  82.         echo "No startx installed" 1>&2
  83.         return 1;
  84.     }
  85.     /usr/bin/startx ${1+"$@"} 2>&1 | tee $HOME/.xsession-errors
  86.     }
  87.  
  88.     remount () { /bin/mount -o remount,${1+"$@"} ; }
  89.  
  90.     #
  91.     # Set prompt to something useful
  92.     #
  93.     case "$is" in
  94.     bash)
  95.     # Force a reset of the readline library
  96.     unset TERMCAP
  97.     # Returns short path (last two directories)
  98.     spwd () {
  99.       ( IFS=/
  100.         set $PWD
  101.         if test $# -le 3 ; then
  102.         echo "$PWD"
  103.         else
  104.         eval echo \"..\${$(($#-1))}/\${$#}\"
  105.         fi ) ; }
  106.     # Set xterm prompt with short path (last 18 characters)
  107.     ppwd () {
  108.         local _t="$1" _w _x _u="$USER" _h="$HOST"
  109.         test -n "$_t"    || return
  110.         test "${_t#tty}" = $_t && _t=pts/$_t
  111.         test -O /dev/$_t || return
  112.         _w="$(dirs +0)"
  113.         _x=$((${#_w}-18))
  114.         test ${#_w} -le 18 || _w="...${_w#$(printf "%.*s" $_x "$_w")}"
  115.         printf "\e]2;%s@%s:%s\007\e]1;%s\007" "$_u" "$_h" "$_w" "$_h" > /dev/$_t
  116.         }
  117.     # If set: do not follow sym links
  118.     # set -P
  119.     #
  120.     # Other prompting for root
  121.     _t=""
  122.     if test "$UID" = 0 ; then
  123.         _u="\h"
  124.         _p=" #"
  125.     else
  126.         _u="\u@\h"
  127.         _p=">"
  128.         if test \( "$TERM" = "xterm" -o "${TERM#screen}" != "$TERM" \) \
  129.             -a -z "$EMACS" -a -z "$MC_SID" -a -n "$DISPLAY"
  130.         then
  131.         _t="\$(ppwd \l)"
  132.         fi
  133.         if test "${BASH##*/}" = "rbash" ; then
  134.         _t=""
  135.         fi
  136.     fi
  137.     # With full path on prompt
  138.     PS1="${_t}${_u}:\w${_p} "
  139. #    # With short path on prompt
  140. #    PS1="${_t}${_u}:\$(spwd)${_p} "
  141. #    # With physical path even if reached over sym link
  142. #    PS1="${_t}${_u}:\$(pwd -P)${_p} "
  143.     unset _u _p _t
  144.     ;;
  145.     ash)
  146.     cd () {
  147.         local ret
  148.         command cd "$@"
  149.         ret=$?
  150.         PWD=$(pwd)
  151.         if test "$UID" = 0 ; then
  152.         PS1="${HOST}:${PWD} # "
  153.         else
  154.         PS1="${USER}@${HOST}:${PWD}> "
  155.         fi
  156.         return $ret
  157.     }
  158.     cd .
  159.     ;;
  160.     ksh)
  161.     # Some users of the ksh are not common with the usage of PS1.
  162.     # This variable should not be exported, because normally only
  163.     # interactive shells set this variable by default to ``$ ''.
  164.     if test "${PS1-\$ }" = '$ ' ; then
  165.         if test "$UID" = 0 ; then
  166.         PS1="${HOST}:"'${PWD}'" # "
  167.         else
  168.         PS1="${USER}@${HOST}:"'${PWD}'"> "
  169.         fi
  170.     fi
  171.     ;;
  172.     zsh)
  173. #    setopt chaselinks
  174.     if test "$UID" = 0; then
  175.         PS1='%n@%m:%~ # '
  176.     else
  177.         PS1='%n@%m:%~> '
  178.     fi
  179.     ;;
  180.     *)
  181. #    PS1='\u:\w\$ '
  182.     PS1='\h:\w\$ '
  183.     ;;
  184.     esac
  185.     PS2='> '
  186.  
  187.     if test "$is" = "ash" ; then
  188.     # The ash shell does not have an alias builtin in
  189.     # therefore we use functions here. This is a seperate
  190.     # file because other shells may run into trouble
  191.     # if they parse this even if they do not expand.
  192.     test -s /etc/profile.d/alias.ash && . /etc/profile.d/alias.ash
  193.     else
  194.     unalias ls 2>/dev/null
  195.         case "$is" in
  196.     bash) alias ls='ls $LS_OPTIONS'        ;;
  197.     zsh)  alias ls='/bin/ls $=LS_OPTIONS'    ;;
  198.     *)    alias ls='/bin/ls $LS_OPTIONS'    ;;
  199.     esac
  200.     alias dir='ls -l'
  201.     alias ll='ls -l'
  202.     alias la='ls -la'
  203.     alias l='ls -alF'
  204.     alias ls-l='ls -l'
  205.  
  206.     #
  207.     # Set some generic aliases
  208.     #
  209.     alias o='less'
  210.     alias ..='cd ..'
  211.     alias ...='cd ../..'
  212.     alias cd..='cd ..'
  213.     if test "$is" != "ksh" ; then
  214.         alias -- +='pushd .'
  215.         alias -- -='popd'
  216.     fi
  217.     alias rd=rmdir
  218.     alias md='mkdir -p'
  219.     if test "$is" = "bash" ; then
  220.         #
  221.         # Other shells use the which command in path (e.g. ash) or
  222.         # their own builtin for the which command (e.g. ksh and zsh).
  223.         #
  224.         _which () {
  225.         local file=$(type -p ${1+"$@"} 2>/dev/null)
  226.         if test -n "$file" -a -x "$file"; then
  227.             echo "$file"
  228.             return 0
  229.         fi
  230.         hash -r
  231.         type -P ${1+"$@"}
  232.         }
  233.         alias which=_which
  234.     fi
  235.     alias rehash='hash -r'
  236.     alias you='su - -c "/sbin/yast2 online_update"'
  237.     if test "$is" != "ksh" ; then
  238.         alias beep='echo -en "\007"' 
  239.     else
  240.         alias beep='echo -en "\x07"'
  241.     fi
  242.     alias unmount='echo "Error: Try the command: umount" 1>&2; false'
  243.     test -s $HOME/.alias && . $HOME/.alias
  244.     fi
  245.  
  246.     #
  247.     # Expert mode: if we find $HOME/.bash.expert we skip our settings
  248.     # used for interactive completion and read in the expert file.
  249.     #
  250.     if test "$is" = "bash" -a -r $HOME/.bash.expert ; then
  251.     . $HOME/.bash.expert
  252.     elif test "$is" = "bash" ; then
  253.     # Complete builtin of the bash 2.0 and higher
  254.     case "$BASH_VERSION" in
  255.     [2-9].*)
  256.         if test -e $HOME/.bash_completion ; then
  257.         . $HOME/.bash_completion
  258.         elif test -e /etc/bash_completion ; then
  259.         . /etc/bash_completion
  260.         elif test -s /etc/profile.d/complete.bash ; then
  261.         . /etc/profile.d/complete.bash
  262.         fi
  263.         for s in /etc/bash_completion.d/*.sh ; do
  264.         test -r $s && . $s
  265.         done
  266.         ;;
  267.     *)  ;;
  268.     esac
  269.     fi
  270.  
  271.     # Do not save dupes and lines starting by space in the bash history file
  272.     HISTCONTROL=ignoreboth
  273.     if test "$is" = "ksh" ; then
  274.     # Use a ksh specific history file and enable
  275.         # emacs line editor
  276.         : ${HISTFILE=$HOME/.kshrc_history}
  277.         : ${VISUAL=emacs}
  278.     case $(set -o) in
  279.     *multiline*) set -o multiline
  280.     esac
  281.     fi
  282.     ;;
  283. esac
  284.  
  285. #
  286. # Just in case the user excutes a command with ssh
  287. #
  288. if test -n "$SSH_CLIENT" -a -z "$PROFILEREAD" ; then
  289.     . /etc/profile > /dev/null 2>&1
  290. fi
  291.  
  292. if test "$is" != "ash" ; then
  293.     #
  294.     # And now let's see if there is a local bash.bashrc
  295.     # (for options defined by your sysadmin, not SuSE Linux)
  296.     #
  297.     test -s /etc/bash.bashrc.local && . /etc/bash.bashrc.local
  298. fi
  299.  
  300. #
  301. # End of /etc/bash.bashrc
  302. #
  303.