# $HOME/.shellrc
#
-OPS1="$OPS1\\$"
-PS1="$OPS1 "
-
-
-case "$SHELL" in
-*/bash)
- [ "`type -t ls`" = alias ] && unalias ls
- [ "`type -t ll`" = alias ] && unalias ll
- [ "`type -t mc`" = alias ] && unalias mc
+# If not running interactively, don't do anything
+case $- in
+ *i*) ;;
+ *) return ;;
+esac
- back() { cd - ${1:+"$@"}; }
- clo() { clear; logout; }
- eval 'functions() { typeset -f ${1:+"$@"}; }'
- j() { jobs; }
+# Stop if non-interactive shell
+[ -z "$PS1" ] && return
+
+#if [ -x /usr/bin/dircolors ]; then
+# # I don't like these aliases - they work only in command line
+# # but not in scripts I run from command line.
+# # Color parameters must be passed via environment.
+# # So instead I put them in shell scripts in ~/bin.
+# alias ls='ls --color=auto'
+# alias dir='dir --color=auto'
+# alias vdir='vdir --color=auto'
+#
+# alias grep='grep --color=auto'
+# alias fgrep='fgrep --color=auto'
+# alias egrep='egrep --color=auto'
+#
+# alias dmesg='dmesg --human'
+#fi
- complete -A command -o default builtin cgmem_nice command dbus-launch exec \
- nice nohup pidof pidOf KillAll pgrep pkill psg pswg su sudo time \
- whence whereis which xargs
- if [ -z "$BASH_COMPLETION_COMPAT_DIR" ]; then
- complete -A command -o default man
- fi
- complete -A hostname dig host nslookup nc netcat nmap p ping ping6 socat \
- telnet t tt \
- tcptraceroute tcptraceroute6 tracert tracert6 traceroute traceroute6 \
- whois wget wget-m wget-wrapper ww
- complete -A hostname -o default distribute ftp lftp r rsync \
- s scp ssh smbclient tcpdump tshark wireshark
- complete -A job bg fg j jobs wait
- complete -A variable unset
-
- if [ -d "$HOME/lib/config" ]; then
- complete -W "`cd \"$HOME/lib/config\" && echo *`" include
- fi
- complete -W "`echo $BROWSER | sed 's/:/ /g'`" start-browser
- ;;
-*/ksh)
- back() { cd - ${1:+"$@"}; }
- clo() { clear; exit; }
- j() { jobs; }
- ;;
-
-*/sh)
- clo() { clear; exit; }
+case "$HOME" in
+ /home/*)
+ if [ -L /home ]; then
+ START_DIR="`pwd`" &&
+ cd "$HOME" &&
+ HOME="`pwd`" &&
+ cd "$START_DIR"
+ fi
;;
esac
+if test -n "$KSH_VERSION" -o -n "$FCEDIT"; then
+ back() { cd - "$@"; }
+ j() { jobs; }
+fi
-# clear history, clear screen and logout
-#chlo() { cd; unset HISTFILE; rm -f .*history*; clo; }
-
-
-#Pwd() { pwd | sed "s/.*\/\(.*\)\/\(.*\)\/\(.*\)\/\(.*\)/...\/\2\/\3\/\4/"; }
-#PWd() { pwd | sed "s/.*\/\(.*\)\/\(.*\)/...\/\2/"; }
-
-
-psg() { ps auxw | grep -i ${1:+"$@"} | grep -v '\(ps auxw\|grep\)'; }
-pswg() { ps auxwww | grep -i ${1:+"$@"} | grep -v '\(ps auxw\|grep\)'; }
-
-# Like pgrep -f
-pidOf() { ps auxwww | grep -i ${1:+"$@"} | grep -v '\(ps auxw\|grep\|pidOf\|KillAll\)' | awk '{print $2}'; }
-
-# A kind of pkill
-KillAll() {
- if [ -z "$2" ]; then
- kill `pidOf "$1"`
+if test -n "$BASH_VERSION"; then
+ if [ -r "$HOME"/admin/prog/bash_prompt ]; then
+ . "$HOME"/admin/prog/bash_prompt
+ set_prompts
+ unset set_prompts
else
- kill "$1" `pidOf "$2"`
+ PS1="${debian_chroot:+($debian_chroot)}\u@\h:\W \$SHLVL\\$ "
fi
-}
+fi
+# clear screen and history, logout
+chlo() { clear; cd; >$HISTFILE; unset HISTFILE; history -c; logout || exit; }
-x() { exit; }
-X() { startx >> .Xserver.log 2>&1; cyr; }
-
-include()
-{
+include() {
cfg="$1"
+ shift
if [ -f "./$cfg" -a -r "./$cfg" ]; then
echo "Reading config file \`$cfg'" 1>&2
- . "./$cfg"
+ . "./$cfg" "$@"
elif [ -f "$HOME/lib/config/$cfg" -a -r "$HOME/lib/config/$cfg" ]; then
echo "Reading config file \`$HOME/lib/config/$cfg'" 1>&2
- . "$HOME/lib/config/$cfg"
+ . "$HOME/lib/config/$cfg" "$@"
else
echo "Cannot find config file \`$cfg'" 1>&2
fi
}
+[ "`type -t mc`" = alias ] && unalias mc
mc() {
if [ -n "$SLOWTERM" ]; then
MC_SLOW="--slow"
case "$TERM" in
screen*) # screen, screen.rxvt
- if [ "$TERM" = screen.rxvt ]; then
- MC_SAVE_TERM="$TERM"
- TERM=rxvt
- fi
MC_XTERM="-x"
;;
esac
mc_type="`mc_type.py $mc`"
if [ "$mc_type" = old ]; then
$mc -P $MC_SLOW $MC_XTERM "$@" > "$MC_PWD_FILE"
- rc=$?
- MC_FOUND=YES
elif [ "$mc_type" = new ]; then
$mc -P "$MC_PWD_FILE" $MC_SLOW $MC_XTERM "$@"
- rc=$?
- MC_FOUND=YES
else
continue
fi
+ rc=$?
+ MC_FOUND=YES
cd "`cat \"$MC_PWD_FILE\"`" && /bin/rm "$MC_PWD_FILE"
break
fi
rc=1
fi
- [ -n "$MC_SAVE_TERM" ] && TERM="$MC_SAVE_TERM"
- unset MC_FOUND MC_PWD_FILE MC_SAVE_TERM MC_SLOW MC_TMP_DIR MC_XTERM
+ unset MC_FOUND MC_PWD_FILE MC_SLOW MC_TMP_DIR MC_XTERM
+
return $rc
}
+
+
+mkcd() {
+ if [ $# -ne 1 ]; then
+ echo "Usage: mkcd directory_name" >&2
+ elif [ -d "$1" ]; then
+ cd "$1"
+ elif [ -e "$1" ]; then
+ echo "Error: $1 is a file" >&2
+ else
+ mkdir -p "$1" && cd "$1"
+ fi
+}
+
+
+if which tmux >/dev/null 2>&1; then
+ tmux() {
+ case "$TERM" in
+ rxvt)
+ TERM=rxvt-unicode command tmux "$@"
+ ;;
+
+ *)
+ command tmux "$@"
+ ;;
+ esac
+ }
+fi
+
+
+if [ "$SHLVL" -eq 1 ] && which startx >/dev/null 2>&1; then
+ X() { startx >> .Xserver.log 2>&1; cyr; rm -f .Xauthority; }
+fi
+
+x() { exit; }