FreeBSDç³»ç»é»è®¤çshell 为shï¼ä½¿ç¨èµ·æ¥å¾ä¸æ¹é¢ï¼æ以å®è£ å®åå°±æ¯å®è£ bash åä¿®æ¹é»è®¤shell为bash
ä½æ¯bashå¨æ²¡æç»è¿é ç½®ä¹åè¿æ¯ä¸å¤ªå¥½ç¨ï¼ä¸é¢å°±æ¯åèäºç½ä¸çé ç½®åç¡®å®ä¸æ¥ç /etc/bashrc æ件å 容
并éè¿ä¿®æ¹ homeç®å½ä¸é¢ç .bashrc æ件ï¼å å ¥
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
使ç¨æ·è½å¤å¨ç»å½æ¶èªå¨å è½½é ç½®
æ件  /etc/bashrc
#export env
export LANG=zh_CN.UTF-8
export CLICOLOR=1
export TERM=xterm-color
export LSCOLORS=Exfxcxdxbxegedabagacad
export LD_LIBRARY_PATH=/usr/local/lib
export http_proxy=http://10.0.0.2:8080
export PACKAGEROOT=http://xx.xxx.xxx
#----------
# ä¸äºè®¾ç½®
#----------
ulimit -S -c 0      # ä¸éè¦ä»»ä½coredump
set -o notify
set -o noclobber
set -o ignoreeof
set -o nounset
set -o vi           # å¨å½ä»¤è¡ä¸éè¿ESCé®è¿å ¥ç¼è¾æ¨¡å¼ï¼å¯ä½¿ç¨ä¸äºviéçå½ä»¤æ¥ç¼è¾å½åå½ä»¤è¡ï¼å¯¹äºä¸äºé¿å½ä»¤é常æ¹ä¾¿
set -o ktrace       # 对äºè°è¯æ¥è¯´é常æç¨
# 使è½é项:
shopt -s cdspell
shopt -s cdable_vars
shopt -s checkhash
shopt -s checkwinsize
shopt -s mailwarn
shopt -s sourcepath
shopt -s no_empty_cmd_completion  # ä» éäºbash>=2.04
shopt -s cmdhist
shopt -s histappend histreedit histverify
shopt -s extglob       # 对äºcompleteå½ä»¤(ææ åµè¡¥å ¨)æ¥è¯´æ¯å¿ è¦ç
# ç¦ç¨é项:
shopt -u mailwarn
unset MAILCHECK     # å½æé®ä»¶å°è¾¾æ¶, æä¸å¸ææçshellæ示æ
export TIMEFORMAT=$'\nreal %3R\tuser %3U\tsys %3S\tpcpu %P\n'
export HISTIGNORE="&:bg:fg:ll:h"
export HOSTFILE=$HOME/.hosts   # å°è¿ç«¯ä¸»æºçå表æ¾å ¥~/.hosts
#-------------------
# 个人çå«å
#-------------------
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# -> é²æ¢å¶ç¶çæ件误æä½.
alias mkdir='mkdir -p'
alias h='history'
alias j='jobs -l'
alias r='rlogin'
alias which='type -all'
alias ..='cd ..'
alias path='echo -e ${PATH//:/\\n}'
alias print='/usr/bin/lp -o nobanner -d $LPDEST'  # å设LPDEST被å®ä¹
alias pjet='enscript -h -G -fCourier9 -d $LPDEST'  # 使ç¨enscriptçæ¼äº®çæå°
alias background='xv -root -quit -max -rmode 5'   # å°ä¸å¼ å¾çä½ä¸ºèæ¯
alias du='du -kh'
alias df='df -kh'
# 'ls'家æ (åå®ä½¿ç¨GNU ls)
alias ls='ls -hF -G'      # 为è¯å«çæ件类åæ·»å é¢è²
alias la='ls -Al'         # æ¾ç¤ºéèæ件
alias lx='ls -lXB'        # ææ©å±åæåº
alias ll='ls -l'
alias lk='ls -lSr'         # æ尺寸æåº
alias lc='ls -ltcr'         # æä¿®æ¹æ¶é´æåº
alias lu='ls -ltur'        # æ访é®æ¶é´æåº
alias lr='ls -lR' Â Â Â Â Â Â Â Â Â # éå½ls
alias lt='ls -ltr'          # ææ¥ææåº
alias lld='ls -l "[email protected]"| egrep "^d" ; ls -lXB "[email protected]" 2>&-| egrep -v "^d|total "'
alias lm='ls -al |more'    # 管éç»'more'
alias tree='tree -Csu'     # 'ls'çå¦ä¸ç§å¥½æ¹æ³
alias more='more -r'
alias less='less -r'
# è£å'less'
alias more='less'
export PAGER=less
#export LESSCHARSET='latin1'
#export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-' # å¦ælesspipe.shåå¨, å°±ç¨è¿ä¸ª
#export LESS='-i -N -w  -z-4 -g -e -M -X -F -R -P%t?f%f :stdin .?pb%pb\%:?lbLine %lb:?bbByte %bb:-...'
# æ¼åé误Â
alias xs='cd'
alias vf='cd'
alias moer='more'
alias moew='more'
alias kk='ll'
function swap()     # 交æ¢ä¸¤ä¸ªæ件å
{
  local TMPFILE=tmp.$$
  mv "$1" $TMPFILE
  mv "$2" "$1"
  mv $TMPFILE "$2"
}
function cuttail() # å¨æ件ä¸åænè¡, é»è®¤ä¸º10è¡
{
  nlines=${2:-10}
  sed -n -e :a -e "1,${nlines}!{P;N;D;};N;ba" $1
}
function lowercase()  # å°æ件å转æ¢ä¸ºå°å
{
  for file ; do
    filename=${file##*/}
    case "$filename" in
    */*) dirname==${file%/*} ;;
    *) dirname=.;;
    esac
    nf=$(echo $filename | tr A-Z a-z)
    newname="${dirname}/${nf}"
    if [ "$nf" != "$filename" ]; then
      mv "$file" "$newname"
      echo "lowercase: $file --> $newname"
    else
      echo "lowercase: $file not changed."
    fi
  done
}
# æé¡¹å·¥å ·:
function repeat()    # éå¤n次çå½ä»¤
{
  local i max
  max=$1; shift;
  for ((i=1; i <= max ; i++)); do  # --> Cé£æ ¼çè¯æ³
    eval "[email protected]";
  done
}
function ask()
{
  echo -n "[email protected]" '[y/n] ' ; read ans
  case "$ans" in
    y*|Y*) return 0 ;;
    *) return 1 ;;
  esac
}
pskill()
{
    local pid
    pid=$(ps -ax | grep $1 | grep -v grep | awk '{ print $1 }')
    echo -n "killing $1 (process $pid)..."
    kill -9 $pid
    echo "slaughtered."
}