#a3# Execute \kbd{grep-excuses}
alias ge='grep-excuses'
- # debian upgrade
- #f3# Execute \kbd{apt-get update \&\& }\\&\quad \kbd{apt-get dist-upgrade}
- upgrade() {
- emulate -L zsh
- if [[ -z $1 ]] ; then
- $SUDO apt-get update
- $SUDO apt-get -u upgrade
- else
- ssh $1 $SUDO apt-get update
- # ask before the upgrade
- local dummy
- ssh $1 $SUDO apt-get --no-act upgrade
- echo -n 'Process the upgrade?'
- read -q dummy
- if [[ $dummy == "y" ]] ; then
- ssh $1 $SUDO apt-get -u upgrade --yes
- fi
- fi
- }
-
# get a root shell as normal user in live-cd mode:
if isgrmlcd && [[ $UID -ne 0 ]] ; then
alias su="sudo su"
fi
fi
-# get_tw_cli has been renamed into get_3ware
-if check_com -c get_3ware ; then
- get_tw_cli() {
- echo 'Warning: get_tw_cli has been renamed into get_3ware. Invoking get_3ware for you.'>&2
- get_3ware
- }
-fi
-
-# I hate lacking backward compatibility, so provide an alternative therefore
-if ! check_com -c apache2-ssl-certificate ; then
-
- apache2-ssl-certificate() {
-
- print 'Debian does not ship apache2-ssl-certificate anymore (see #398520). :('
- print 'You might want to take a look at Debian the package ssl-cert as well.'
- print 'To generate a certificate for use with apache2 follow the instructions:'
-
- echo '
-
-export RANDFILE=/dev/random
-mkdir /etc/apache2/ssl/
-openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
-chmod 600 /etc/apache2/ssl/apache.pem
-
-Run "grml-tips ssl-certificate" if you need further instructions.
-'
- }
-fi
-
# Use hard limits, except for a smaller stack and no core dumps
unlimit
is425 && limit stack 8192
# shell functions
-#f1# Provide csh compatibility
-setenv() { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" } # csh compatibility
-
#f1# Reload an autoloadable function
freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done }
compdef _functions freload
done
}
-# fast manual access
-if check_com qma ; then
- #f1# View the zsh manual
- manzsh() { qma zshall "$1" }
- compdef _man qma
-else
- manzsh() { /usr/bin/man zshall | vim -c "se ft=man| se hlsearch" +/"$1" - ; }
-fi
-
# TODO: Is it supported to use pager settings like this?
# PAGER='less -Mr' - If so, the use of $PAGER here needs fixing
# with respect to wordsplitting. (ie. ${=PAGER})
#k# display help for keybindings and ZLE (cycle pages with consecutive use)
zle -N help-zle && bindkey '^Xz' help-zle
-check_com -c qma && alias ?='qma zshall'
-
# grep for running process, like: 'any vim'
any() {
emulate -L zsh
print 'Finished, running "swapoff -a; swapon -a" may also be useful.'
}
-# print hex value of a number
-hex() {
- emulate -L zsh
- [[ -n "$1" ]] && printf "%x\n" $1 || { print 'Usage: hex <number-to-convert>' ; return 1 }
-}
-
-# calculate (or eval at all ;-)) with perl => p[erl-]eval
-# hint: also take a look at zcalc -> 'autoload zcalc' -> 'man zshmodules | less -p MATHFUNC'
-peval() {
- [[ -n "$1" ]] && CALC="$*" || print "Usage: calc [expression]"
- perl -e "print eval($CALC),\"\n\";"
-}
-functions peval &>/dev/null && alias calc=peval
-
-# just press 'asdf' keys to toggle between dvorak and us keyboard layout
-aoeu() {
- echo -n 'Switching to us keyboard layout: '
- [[ -z "$DISPLAY" ]] && $SUDO loadkeys us &>/dev/null || setxkbmap us &>/dev/null
- echo 'Done'
-}
-asdf() {
- echo -n 'Switching to dvorak keyboard layout: '
- [[ -z "$DISPLAY" ]] && $SUDO loadkeys dvorak &>/dev/null || setxkbmap dvorak &>/dev/null
- echo 'Done'
-}
-# just press 'asdf' key to toggle from neon layout to us keyboard layout
-uiae() {
- echo -n 'Switching to us keyboard layout: '
- setxkbmap us && echo 'Done' || echo 'Failed'
-}
-
-# set up an ipv6 tunnel
-ipv6-tunnel() {
- emulate -L zsh
- case $1 in
- start)
- if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then
- print 'ipv6 tunnel already set up, nothing to be done.'
- print 'execute: "ifconfig sit1 down ; ifconfig sit0 down" to remove ipv6-tunnel.' ; return 1
- else
- [[ -n "$PUBLIC_IP" ]] || \
- local PUBLIC_IP=$(ifconfig $(route -n | awk '/^0\.0\.0\.0/{print $8; exit}') | \
- awk '/inet addr:/ {print $2}' | tr -d 'addr:')
-
- [[ -n "$PUBLIC_IP" ]] || { print 'No $PUBLIC_IP set and could not determine default one.' ; return 1 }
- local IPV6ADDR=$(printf "2002:%02x%02x:%02x%02x:1::1" $(print ${PUBLIC_IP//./ }))
- print -n "Setting up ipv6 tunnel $IPV6ADDR via ${PUBLIC_IP}: "
- ifconfig sit0 tunnel ::192.88.99.1 up
- ifconfig sit1 add "$IPV6ADDR" && print done || print failed
- fi
- ;;
- status)
- if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then
- print 'ipv6 tunnel available' ; return 0
- else
- print 'ipv6 tunnel not available' ; return 1
- fi
- ;;
- stop)
- if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then
- print -n 'Stopping ipv6 tunnel (sit0 + sit1): '
- ifconfig sit1 down ; ifconfig sit0 down && print done || print failed
- else
- print 'No ipv6 tunnel found, nothing to be done.' ; return 1
- fi
- ;;
- *)
- print "Usage: ipv6-tunnel [start|stop|status]">&2 ; return 1
- ;;
- esac
-}
-
-# run dhclient for wireless device
-iwclient() {
- sudo dhclient "$(wavemon -d | awk '/device/{print $3}')"
-}
-
-# spawn a minimally set up mksh - useful if you want to umount /usr/.
-minimal-shell() {
- emulate -L zsh
- local shell="/bin/mksh"
-
- if [[ ! -x ${shell} ]]; then
- printf '`%s'\'' not available, giving up.\n' ${shell} >&2
- return 1
- fi
-
- exec env -i ENV="/etc/minimal-shellrc" HOME="$HOME" TERM="$TERM" ${shell}
-}
-
# a wrapper for vim, that deals with title setting
# VIM_OPTIONS
# set this array to a set of options to vim you always want
}
#f5# Create Directoy and \kbd{cd} to it
-mcd() {
+mkcd() {
mkdir -p "$@" && cd "$@"
}
+
#f5# Create temporary directory and \kbd{cd} to it
cdt() {
local t
#k# mkdir -p <dir> from string under cursor or marked area
zle -N inplaceMkDirs && bindkey '^XM' inplaceMkDirs
-# Function Usage: doc packagename
-#f5# \kbd{cd} to /usr/share/doc/\textit{package}
-doc() {
- emulate -L zsh
- cd /usr/share/doc/$1 && ls
-}
-_doc() { _files -W /usr/share/doc -/ }
-check_com compdef && compdef _doc doc
-
-#f5# Make screenshot
-sshot() {
- [[ ! -d ~/shots ]] && mkdir ~/shots
- #cd ~/shots ; sleep 5 ; import -window root -depth 8 -quality 80 `date "+%Y-%m-%d--%H:%M:%S"`.png
- cd ~/shots ; sleep 5; import -window root shot_`date --iso-8601=m`.jpg
-}
-
#f5# List files which have been accessed within the last {\it n} days, {\it n} defaults to 1
accessed() {
emulate -L zsh