]> git.pld-linux.org Git - projects/setup.git/blobdiff - etc/profile
- more kbd stuff for ksh93
[projects/setup.git] / etc / profile
index 9fb5dc9ca8b21139455156f4c361e17d62cbde2e..61e83e5c9c18dbea4ce9fa7d37c18c3ffa340ef3 100644 (file)
@@ -1,10 +1,11 @@
 # /etc/profile
+# $Id$
 
 # System wide environment and startup programs
-# Functions and aliases go in /etc/bashrc
+# Functions and aliases go into the shells dependent startup files
 
-PATH="$PATH:/usr/X11R6/bin"
-PS1="[\u@\h \W]\\$ "
+[ "`echo $PATH | grep -q /usr/X11R6/bin`" = "" ] && PATH="$PATH:/usr/X11R6/bin"
+[ "`echo $PATH | grep -q "$HOME/bin"`" = "" ] && PATH="$PATH:$HOME/bin"
 
 if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
        umask 002
@@ -14,12 +15,130 @@ fi
 
 USER=`id -un`
 LOGNAME=$USER
-MAIL="/var/spool/mail/$USER"
+MAIL="/var/mail/$USER"
 
 HOSTNAME=`/bin/hostname`
+HISTFILE="$HOME/.history"
 HISTSIZE=1000
 HISTFILESIZE=1000
-export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL
+
+#
+# Setup the environment for varius shells
+#
+
+if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then
+ TERM=linux
+fi
+
+SH="${0#\-}"
+SH="${SH#/bin/}"
+if [ "$SH" = "sh" ]; then
+       if [ -n "$KSH_VERSION" ]; then
+               SH=ksh
+       elif [ -n "$ZSH_VERSION" ]; then
+               SH=zsh
+       elif [ -n "$BASH_VERSION" ]; then
+               SH=bash
+       fi
+fi
+
+case "$SH" in
+  bash)
+       PS1="[\u@\h \W]\\$ "
+       ;;
+  ksh|pdksh)
+       if [ `id -u` -eq 0 ]; then
+               PS1='[${LOGNAME-$USER}@${HOSTNAME} `
+                       if [ "$PWD" = "/${PWD##*/}" ]; then
+                               echo $PWD;
+                       else
+                               echo ${PWD##*/};
+               fi`]# '
+       else
+               PS1='[${LOGNAME-$USER}@${HOSTNAME} `
+                       if [ "$PWD" = "/${PWD##*/}" ]; then
+                               echo $PWD;
+                       else
+                               echo ${PWD##*/};
+               fi`]$ '
+       fi
+       PS2='> '
+       set -o emacs
+       bind '^I'=complete >/dev/null 2>&1
+       bind '^[^I'=complete-list >/dev/null 2>&1
+       #
+       # Setup some of the most basic editing functions
+       # to work properly under different termnal emulators.
+       #
+       case $TERM in
+       nxterm|xterm|xterm-color|rxvt)
+               bind '^[[H'=beginning-of-line >/dev/null 2>&1
+               bind '^[[F'=end-of-line >/dev/null 2>&1
+               ;;
+       linux)
+               bind '^[1~'=beginning-of-line >/dev/null 2>&1
+               bind '^[4~'=end-of-line >/dev/null 2>&1
+               ;;
+       esac
+       ;;
+  ksh93)
+       if [ `id -u` -eq 0 ]; then
+               PS1='[${LOGNAME-$USER}@${HOSTNAME} `
+                       if [ "$PWD" = "/${PWD##*/}" ]; then
+                               echo $PWD;
+                       else
+                               echo ${PWD##*/};
+               fi`]# '
+       else
+               PS1='[${LOGNAME-$USER}@${HOSTNAME} `
+                       if [ "$PWD" = "/${PWD##*/}" ]; then
+                               echo $PWD;
+                       else
+                               echo ${PWD##*/};
+               fi`]$ '
+       fi
+       PS2='> '
+       set -o nolog
+       set -o emacs
+       case $TERM in
+       nxterm|xterm|xterm-color|rxvt)
+               trap 'case ${.sh.edchar} in  "\e[F") .sh.edchar="\ 5" ;; "\e[H") .sh.edchar="\ 1" ;; esac' KEYBD
+               ;;
+       linux)
+               trap 'case ${.sh.edchar} in  "\e[4~") .sh.edchar="\ 5" ;; "\e[1~") .sh.edchar="\ 1" ;; esac' KEYBD
+               ;;
+       esac
+       ;;
+  zsh)
+       PS1='[%n@%m %~]%(!.#.%\$) '
+
+       # Setup key bindings
+       bindkey -e >/dev/null 2>&1
+       bindkey "^[[1~" beginning-of-line >/dev/null 2>&1
+       bindkey "^[[H" beginning-of-line >/dev/null 2>&1
+       bindkey "^[[4~" end-of-line >/dev/null 2>&1
+       bindkey "^[[F" end-of-line >/dev/null 2>&1
+       bindkey "^[[3~" delete-char >/dev/null 2>&1
+       bindkey "^[[5~" history-search-backward >/dev/null 2>&1
+       bindkey "^[[6~" history-search-forward >/dev/null 2>&1
+
+       case "$TERM" in
+       aterm)
+               bindkey '^[[A' up-line-or-history >/dev/null 2>&1
+               bindkey '^[[B' down-line-or-history >/dev/null 2>&1
+               bindkey '^[[D' backward-char >/dev/null 2>&1
+               bindkey '^[[C' forward-char >/dev/null 2>&1
+               ;;
+       esac
+       # other HISTFILE, zsh uses diffrent fmt
+       HISTFILE=~/.historyz
+       # w/o this hist file wont get saved !
+       SAVEHIST=$HISTSIZE
+       ;;
+esac
+
+unset SH
+export PATH PS1 PS2 HOSTNAME HISTFILE HISTSIZE HISTFILESIZE USER LOGNAME MAIL
 
 for i in /etc/profile.d/*.sh ; do
        if [ -x $i ]; then
@@ -28,3 +147,5 @@ for i in /etc/profile.d/*.sh ; do
 done
 
 unset i
+
+# vi:syntax=sh
This page took 0.122847 seconds and 4 git commands to generate.