⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bashrc

📁 BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版
💻
📖 第 1 页 / 共 2 页
字号:
#===============================================================## 个人的$HOME/.bashrc文件, 基于bash-2.05a(或更高版本)## 最后更新日期: 星期2 4月15 20:32:34 CEST 2003## 这个文件(一般情况下)被只会被交互式shell读取. # 这里可以定义你的别名, 函数, # 和其他的一些交互式特征, 比如你的提示符. ## 这个文件(开始时)是为Solaris设计的, # 但是基于Redhat的默认.bashrc文件# --> 为Linux修改. # 你在这里看到的大部分代码都是从网上找来的# (即internet). # 这个bashrc文件有点挤 - # 记住, 它仅仅是个例子而已. 按照你自己的需求进行裁减. ###===============================================================# --> 注释由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	# 在远端主机上显示    fifiexport DISPLAY#----------# 一些设置#----------ulimit -S -c 0		# 不需要任何coredumpset -o notifyset -o noclobberset -o ignoreeofset -o nounset#set -o xtrace          # 对于调试来说非常有用# 使能选项:shopt -s cdspellshopt -s cdable_varsshopt -s checkhashshopt -s checkwinsizeshopt -s mailwarnshopt -s sourcepathshopt -s no_empty_cmd_completion  # 仅限于bash>=2.04shopt -s cmdhistshopt -s histappend histreedit histverifyshopt -s extglob	# 对于complete命令(按情况补全)来说是必要的# 禁用选项:shopt -u mailwarnunset 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"dateif [ -x /usr/games/fortune ]; then    /usr/games/fortune -s     # 让我们的每天充满乐趣.... :-)fifunction _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 > \[\033]0;\${TERM} [\u@\h] \w\007\]" ;;        linux )            PS1="${HILIT}[\A - \$LOAD]$NC\n[\h \#] \w > " ;;        * )            PS1="[\A - \$LOAD]\n[\h \#] \w > " ;;    esac}powerprompt     # 这是默认提示符 - 可能比较慢                # 如果很慢的话, 可以使用fastprompt来代替....#===============================================================## 别名和函数## 事实上, 这里定义的一些函数非常大# (比如'lowercase'), 但是我的机器是512M内存, 所以 .....# 如果你想让这个文件小一点, # 可以将这些函数放到脚本中. ## 其中的许多函数来自于bash-2.04# 中的例子. ##===============================================================#-------------------# 个人的别名#-------------------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 -kTh'# 'ls'家族 (假定使用GNU ls)alias la='ls -Al'               # 显示隐藏文件alias ls='ls -hF --color'	# 为识别的文件类型添加颜色alias lx='ls -lXB'              # 按扩展名排序alias lk='ls -lSr'              # 按尺寸排序alias lc='ls -lcr'		# 按修改时间排序alias lu='ls -lur'		# 按访问时间排序alias lr='ls -lR'               # 递归lsalias lt='ls -ltr'              # 按日期排序alias lm='ls -al |more'         # 管道给'more'alias tree='tree -Csu'		# 'ls'的另一种好方法# 裁减'less'alias more='less'export PAGER=lessexport 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 xtitle (){    case "$TERM" in        *term | rxvt)            echo -n -e "\033]0;$*\007" ;;        *)  	    ;;    esac}# 别名...alias top='xtitle Processes on $HOST && top'alias make='xtitle Making $(basename $PWD) ; make'alias ncftp="xtitle ncFTP ; ncftp"# .. 和函数function man (){    for i ; do	xtitle The $(basename $1|tr -d .[:digit:]) manual	command man -F -a "$i"    done}function ll(){ ls -l "$@"| egrep "^d" ; ls -lXB "$@" 2>&-| egrep -v "^d|total "; }function te()  # xemacs/gnuserv的包装器{    if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then        gnuclient -q "$@";    else        ( xemacs "$@" &);    fi}#---------------------------# 与文件和字符串相关的函数:#---------------------------# 使用名字模式来查找文件:function ff() { find . -type f -iname '*'$*'*' -ls ; }# 使用pattern $1和Execute $2来查找文件: function fe() { find . -type f -iname '*'$1'*' -exec "${2:-file}" {} \;  ; }# 在一系列文件中找到模式, 并高亮function fstr(){    OPTIND=1    local case=""    local usage="fstr: find string in files.Usage: fstr [-i] \"pattern\" [\"filename pattern\"] "    while getopts :it opt    do        case "$opt" in        i) case="-i " ;;        *) echo "$usage"; return;;        esac    done    shift $(( $OPTIND - 1 ))    if [ "$#" -lt 1 ]; then        echo "$usage"        return;    fi    local SMSO=$(tput smso)    local RMSO=$(tput rmso)    find . -type f -name "${2:-*}" -print0 | xargs -0 grep -sn ${case} "$1" 2>&- | \sed "s/$1/${SMSO}\0${RMSO}/gI" | more}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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -