自己搜藏的.bashrc文件

#! /bin/bash
#===============================================================
 #
 # 个人的$HOME/.bashrc文件, 基于bash-2.05a(或更高版本)
 #
 # 最后更新日期: 星期2 4月15 20:32:34 CEST 2003
 #
 # 这个文件(一般情况下)被只会被交互式shell读取.
 # 这里可以定义你的别名, 函数,
 # 和其他的一些交互式特征, 比如你的提示符.
 #
 # 这个文件(开始时)是为Solaris设计的,
 # 但是基于Redhat的默认.bashrc文件
 # --> 为Linux修改.
 # 在这里看到的大部分代码都是从网上找来的
 # 
 # 这仅仅是个例子而已. 可按照自己的需求进行裁减.
 #
 #
 #===============================================================


 # --> 注释由HOWTO的作者添加.
 # --> 然后又被ER编辑了一下 :-)


 #--------------------------------------
 # 如果有源代码的全局定义, 请在此处定义.
 #--------------------------------------


 if [ -f /etc/bashrc ]; then
 . /etc/bashrc # --> 读取/etc/bashrc, 如果存在的话.
 fi


 #-------------------------------------------------------------
 # $DISPLAY的自动设置 (如果还没设置的话)
 # 这用于linux - 可能运行的结果不同....
 # 问题是不同的终端种类对于'who am i'来说,
 # 将会给出不同的答案......
 # 我还没发现一种'通用'方法
 #-------------------------------------------------------------


 function get_xserver ()
 {
 case $TERM in
 xterm )
 XSERVER=$(who am i | awk '{print $NF}' | tr -d ')''(' )
 # Ane-Pieter Wieringa建议使用下面这种方式:
 # I_AM=$(who am i)
 # SERVER=${I_AM#*(}
 # SERVER=${SERVER%*)}


 XSERVER=${XSERVER%%:*}
 ;;
 aterm | rxvt)
 # 找出一些运行在这里的代码.....
 ;;
 esac
 }


 if [ -z ${DISPLAY:=""} ]; then
 get_xserver
 if [[ -z ${XSERVER} || ${XSERVER} == $(hostname) || ${XSERVER} == "unix" ]]; then
 DISPLAY=":0.0" # 在本地主机上显示
 else
 DISPLAY=${XSERVER}:0.0 # 在远端主机上显示
 fi
 fi


 export DISPLAY


 #----------
 # 一些设置
 #----------


 ulimit -S -c 0 # 不需要任何coredump
 set -o notify

 set -o noclobber #禁止重定向时覆盖文件

#set +o noclobber #重定向时可以覆盖已有文件

 set -o ignoreeof
 set -o nounset
 #set -o xtrace # 对于调试来说非常有用


 # 使能选项:
 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






 #-----------------------
 # 问候, 问侯报文等等...
 #-----------------------


 # 先定义一些颜色:
 red='\e[0;31m'
 RED='\e[1;31m'
 blue='\e[0;34m'
 BLUE='\e[1;34m'
 cyan='\e[0;36m'
 CYAN='\e[1;36m'
 NC='\e[0m' # 没有颜色
 # --> 很好. 与使用"ansi.sys"的DOS效果相同.


 # 在黑色背景下看起来非常好.....
 echo -e "${CYAN}This is BASH ${RED}${BASH_VERSION%.*}${CYAN} - DISPLAY on ${RED}$DISPLAY${NC}\n"
 date
 if [ -x /usr/games/fortune ]; then
 /usr/games/fortune -s # 让我们的每天充满乐趣.... :-)
 fi


 function _exit() # 在退出shell时运行的函数
 {
 echo -e "${RED}Hasta la vista, baby${NC}"
 }
 trap _exit EXIT


 #---------------
 # Shell提示符
 #---------------


 if [[ "${DISPLAY#$HOST}" != ":0.0" && "${DISPLAY}" != ":0" ]]; then
 HILIT=${red} # 远端主机: 提示符为红
 else
 HILIT=${cyan} # 本地主机: 提示符为青色
 fi


 # --> 下面提示符函数中\W和\w的替换实例,
 #+ --> 用来获得完整路径名的显示.


 function fastprompt()
 {
 unset PROMPT_COMMAND
 case $TERM in
 *term | rxvt )
 PS1="${HILIT}[\h]$NC \W > \[\033]0;\${TERM} [\u@\h] \w\007\]" ;;
 linux )
 PS1="${HILIT}[\h]$NC \W > " ;;
 *)
 PS1="[\h] \W > " ;;
 esac
 }


 function powerprompt()
 {
 _powerprompt()
 {
 LOAD=$(uptime|sed -e "s/.*: \([^,]*\).*/\1/" -e "s/ //g")
 }


 PROMPT_COMMAND=_powerprompt
 case $TERM in
 *term | rxvt )
 PS1="${HILIT}[\A \$LOAD]$NC\n[\h \#] \W > \
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值