+### aliases
+alias h="history -25"
+alias j="jobs -l"
+alias l="ls -AF"
+if [[ "$OSTYPE" =~ '^(free|net)bsd' ]] {
+ alias ll="ls -lAFho"
+} else {
+ alias ll="ls -lAFh"
+}
+## ps
+local p=""
+if { which pstree >/dev/null 2>&1 && [[ ! "$(readlink -f $(which pstree))" =~ "/busybox" ]] } {
+ p="pstree -wg3"
+} elif [[ "$OSTYPE" =~ '^freebsd' ]] {
+ p="ps -aSdfxwwouser=USR -ogroup=GRP -opid,nice=NI \
+ -o%cpu,%mem,tty,stat,start=START -oetime,command"
+} elif [[ "$(readlink -f $(which ps))" =~ "/busybox" ]] {
+ # busybox compatible
+ p="ps -eouser='USR ' -ogroup='GRP ' \
+ -opid=' PID' -onice=' NI' -ovsz=' MEM' \
+ -otty,stat,etime,comm"
+} else {
+ # XXX: untested, posix
+ # TODO: support gnu ps
+ p="ps -eouser=USR -ogroup=GRP -opid,nice=NI \
+ -opcpu=CPU -ovsz=MEM -otty,stat,etime,comm"
+}
+p="$p | ${PAGER:-more} -Se"
+alias pa="$p"
+alias spa="sudo $p"
+unset p
+## py venv
+alias va="source bin/activate"
+alias vd="deactivate"
+## be paranoid
+alias cp='cp -ip'
+alias mv='mv -i'
+if [[ "$OSTYPE" =~ '^freebsd' ]] {
+ # don't confirm if only a few files are deleted
+ alias rm='rm -I'
+} else {
+ # TODO: similar behavior for non-freebsd
+ alias rm='rm -i'
+}
+
+### prompt