首页 最近更新 网站讯息 页面索引 这是什么?

BashConfiguration

对bash一知半解,却要在三个平台(fedora, ubuntu和cygwin)上面配置,因为每个平台提供的缺省配置不同,所以不太好写一个可移植配置文件,尤其是对我这样的菜鸟来说。

所以,下面的配置并不能直接拿来用,可能需要调整,取决于在哪个平台上。但目的只有一个,高效地使用bash。

内容

  1. Shopt
  2. Alias
  3. History
  4. Prompt

Shopt

  shopt -s checkwinsize

Alias

将两个经常一起使用的命令组合成一个,参见What's in your bash history?

  function cdls () {
     if [ $# = 0 ]; then
        cd && ls -l
     else
        cd "$*" && ls -l
     fi
  }

  alias lc="cdls"

以下两段参见Perl Hacks

“一键”添加、删除别名[1]

  alias realias='vi ~/.aliases; source ~/.aliases'

神奇的Perl命令行

  alias reperl='perl -de0'
  alias pmver="perl -le '\$m = shift; eval qq(require \$m)
     or die qq(module \"\$m\" is not installed\\n); print \$m->VERSION'"

History

历史是宝贵的财富,参见Power Shell Usage: Bash Tips & Tricks

  shopt -s histappend
  export HISTCONTROL=ignoredups
  export HISTIGNORE="[   ]*:&:bg:fg:exit"
  
  HISTFILESIZE=1000000000
  HISTSIZE=1000000
  
  case "$TERM" in
  screen*|xterm*|rxvt*)
      # for fedora: PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
      PROMPT_COMMAND='history -a; echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
      ;;
  *)
      PROMPT_COMMAND='history -a'
      ;;
  esac

别忘了在.inputrc里面添加如下内容

  "\e[A": history-search-backward
  "\e[B": history-search-forward

Prompt

只有ubuntu里需要以下配置,参见Colors and Prompts in BASH或者Tip: Prompt magic

  case "$TERM" in
  screen*|xterm*|rxvt*)
      PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
      ;;
  *)
      PS1='\u@\h:\w\$ '
      ;;
  esac