root/dotfiles/bash/hirose31-bashrc

Revision 27, 8.8 kB (checked in by hirose31, 16 months ago)

dotfiles/bash: imported

Line 
1# -*- mode: sh; coding: euc-jp; -*-
2#
3# $Id: .bashrc,v 2.76 2007/08/02 07:16:50 hirose31 Exp hirose31 $
4#
5# bash invocation script file.
6# initialize shell variables, aliases et cetera.
7#
8# /etc/profile
9#
10# ~/.bash_profile
11#   �� ~/.bash.d/${HOST}_profile
12#   �� ~/.bashrc
13#        �� ~/.aliases_sh
14#        �� ~/.bash.d/${HOST}_rc
15#     
16
17## basic
18if [ -z "$OSNAME" ]; then
19  OSNAME=`uname -s`; export OSNAME
20  OSRELEASE=`uname -r`; export OSRELEASE
21fi
22
23my_uname=
24my_uid=-1
25my_gname=
26my_gid=-1
27case $OSNAME in
28  Linux)
29    my_uid=$(id -u)
30    my_uname=$(id -un)
31    my_gid=$(id -g)
32    my_gname=$(id -gn)
33    ;;
34  SunOS)
35    # assume SunOS 5.x (Solaris)
36    my_uid=$(/usr/xpg4/bin/id -u)
37    my_uname=$(/usr/xpg4/bin/id -un)
38    my_gid=$(/usr/xpg4/bin/id -g)
39    my_gname=$(/usr/xpg4/bin/id -gn)
40    ;;
41  CYGWIN*)
42    ;;
43  FreeBSD)
44    ;;
45esac
46
47### ========================================================================
48### bash configuration
49### ========================================================================
50
51# setprompt user host user_color{_bold} host_color{_bold} termtitle
52#           '\u' '\h' red_bold          yellow           
53setprompt() {
54  _user="$1"
55  _host="$2"
56  _color_user="$3"
57  _color_host="$4"
58  _termtitle="$5"
59
60  # \[��] ��������ʤ���
61  # �����Υ��������׳���  _colesc="\[\e["
62  # ���������׽�ü
63  _cse="\]"
64  # ���򸵤�᤹
65  _colreset="${_colesc}0m${_cse}"
66
67  for i in user host; do
68    _c=''
69    _cin=$(eval echo \$_color_$i)
70    case ${_cin} in
71      black*)   _c=30;;
72      red*)     _c=31;;
73      green*)   _c=32;;
74      yellow*)  _c=33;;
75      blue*)    _c=34;;
76      magenta*) _c=35;;
77      cyan*)    _c=36;;
78      gray*)    _c=37;;
79      *)        _c='';;
80    esac
81    if [ -n "$_c" ]; then
82      case ${_cin} in
83        *_bold)  _c="${_c};1";;
84      esac
85    fi
86    eval "_color_$i=\"${_colesc}${_c}m${_cse}\""
87  done
88
89  ### user part
90  if [ -n "${_user}" ]; then
91    if [ -n "${_color_user}" ]; then
92      PS1="${_color_user}${_user}${_colreset}@"
93    else
94      PS1="${_user}@"
95    fi
96  else
97    PS1=
98  fi
99
100  ### host part
101  if [ -n "${_color_host}" ]; then
102    PS1="${PS1}${_color_host}${_host}${_colreset}"
103  else
104    PS1="${PS1}${_host}"
105  fi
106  if [ -n "$INREC" ]; then
107    PS1="${PS1}(REC)"
108  fi
109
110  ### job# part
111  # \j ��2.04 �ʹߤ�ɬ�
112  bash_vers_major=`echo ${BASH_VERSION%%.*}`
113  if [ $bash_vers_major -ge 2 ]; then
114    if [ "${BASH_VERSION%.*}" \> "2.03" ]; then
115      PS1="${PS1}${WINDOW:+:$WINDOW\j}"
116    else
117      PS1="${PS1}${WINDOW:+:$WINDOW}"
118    fi
119  fi
120
121  ### cwd part
122  PS1="${PS1}[\w]\\$ "
123
124  # KTerm ��title ��äƤ��롣
125  #   \033[ ��������\033] �ʤΤ����
126  #   0: ������������ȥ��������󥿥��ȥ� #   1: �������󥿥��ȥ� #   2: ������������ȥ� #
127  #   o Bash-Prompt-HOWTO.txt
128  #   o Xterm-Title.txt
129  #   o rxvt ��doc/xterm.seq
130  #
131  case $TERM in
132    kterm|xterm|mlterm|cygwin|vt102)
133      if [ -z "$_termtitle" ]; then
134        _termtitle="${_host}:\w"
135      fi
136      PS1="\[\e]0;${_termtitle}\007\]${PS1}"
137      ;;
138  esac
139  export PS1
140}
141
142# check interactive shell or not
143# sh �ʤ�S1 �����������뤫����ǡ�
144# bash �ʤ�- ��i �����뤫��������Ǥ��롣
145if [ `expr "$-" : '.*i'` != 0 ]; then
146  ### interactive
147
148  ulimit -c unlimited
149
150  ### Prompt
151  if [ -e ~/.myhostname ]; then
152    _host=$(cat ~/.myhostname)
153  else
154    _host='\h'
155  fi
156  if [ $my_uid != '0' ]; then
157    setprompt '' $_host '' ''
158  else
159    setprompt 'R' $_host 'red_bold' ''
160  fi
161
162  ### bash 1.x or 2.x
163  bash_vers_major=`echo ${BASH_VERSION%%.*}`
164  # bash2 �ʤ�{BASH_VERSINFO[0]} ��major version ������� case ${bash_vers_major} in
165    2|3)
166      ## bash-2.x
167      # off: ʣ��Υ��ޥ�����history ����
168      shopt -s cmdhist
169      # OpenSSH �Υϥ󥰤�����ᡣ
170      shopt -s huponexit
171      shopt -s histappend
172
173      if [ "${BASH_VERSION%.*}" \> "2.03" ]; then
174        shopt -s extglob
175        set +o nounset
176
177        complete -A signal  kill killall killall5
178        complete -A command man eman type xargs
179        complete -A user    su id groups
180        complete -A alias   alias a unalias
181
182
183
184        [ -r ~/.bash_completion ] && . ~/.bash_completion
185      fi
186
187      if [ "${BASH_VERSION%.*}" \> "2.04" ]; then
188        # Language
189        complete -f -o default -X '!*.pl'  perl perl5
190        complete -f -o default -X '!*.sh'  sh bash
191        complete -f -o default -X '!*.rb'  ruby
192        complete -f -o default -X '!*.(class|jar)'  java
193        # Compression
194        complete -f -o default -X '*.+(zip|ZIP)'  zip
195        complete -f -o default -X '!*.+(zip|ZIP)' unzip
196        complete -f -o default -X '*.+(z|Z)'      compress
197        complete -f -o default -X '!*.+(z|Z)'     uncompress
198        # Ÿ���λ���䴰�������ʤ��ǥ����ȥ�����        # complete -f -o default -X '!*.tar.@(gz|bz2)'  tar
199        complete -f -o default -X '*.+(gz|GZ)'    gzip
200        complete -f -o default -X '!*.+(gz|GZ)'   gunzip
201        complete -f -o default -X '*.+(bz2|BZ2)'  bzip2
202        complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2
203        # Postscript,pdf,dvi.....
204        complete -f -o default -X '!*.ps'  gs ghostview ps2pdf ps2ascii
205        complete -f -o default -X '!*.dvi' dvips dvipdf xdvi dviselect dvitype
206        complete -f -o default -X '!*.pdf' acroread pdf2ps
207        complete -f -o default -X '!*.+(pdf|ps)' gv
208        complete -f -o default -X '!*.texi*' makeinfo texi2dvi texi2html texi2pdf
209        complete -f -o default -X '!*.tex' tex latex slitex
210        complete -f -o default -X '!*.lyx' lyx
211        complete -f -o default -X '!*.+(htm*|HTM*)' lynx html2ps
212        # Multimedia
213        complete -f -o default -X '!*.+(jp*g|gif|xpm|png|bmp)' xv gimp ee display
214        complete -f -o default -X '!*.+(mp3|MP3)' mpg123 mpg321
215        complete -f -o default -X '!*.+(ogg|OGG)' ogg123
216
217        # apt-*
218        complete -W 'update upgrade install remove clean' apt-get
219        complete -W 'add gencaches showpkg showsrc stats dump dumpavail unmet search show depends whatdepends ' apt-cache
220        complete -W 'update upgrade dist-upgrade download search install reinstall show remove clean purge' aptitude
221        # portage
222        complete -W '--clean --depclean --info --search --sync --unmerge' emerge
223        complete -W 'belongs check depgraph files list size uses which' equery
224        # fink
225        complete -W 'install remove purge selfupdate update-all configure list apropos describe index validate scanpackages cleanup show-deps' fink
226
227        # ���Υե�������䴰�������ʤ��Ǥ���
228        # complete -W 'asn1parse ca ciphers crl crl2pkcs7 dgst dh dhparam dsa dsaparam enc engine errstr gendh gendsa genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8 prime rand req rsa rsautl s_client s_server s_time sess_id smime speed spkac verify version x509 ' openssl
229
230        # jstart
231        complete -W 'd-dev d-trouble d-unyou intra kan kiso tech zen blog tsng' jstart
232      fi
233      ;;
234    1)
235      ## bash-1.x
236      ;;
237    *)
238      ## unknown
239      ;;
240  esac
241
242  ignoreeof=2  # n times C-d , and exit
243
244  ### fix PWD. -- ��reeBSD Ű�����  #alias oldcd='cd'  # fixme
245  #unalias cd
246  \cd
247  if [ X"$OLDPWD" = X"`pwd -P`" ]; then
248    \cd; export PWD
249  else
250    \cd $OLDPWD
251  fi
252  #alias cd='oldcd'
253  #unalias oldcd
254
255  # XON/XOFF(Ctrl+S/Ctrl+Q)����� stty -ixon erase 
256
257  if [ -n "${SSH_AUTH_SOCK}" ]; then
258    echo ${SSH_AUTH_SOCK} >  ~/.my-ssh-agent
259    echo ${DISPLAY}       >> ~/.my-ssh-agent
260  fi
261
262  case $OSNAME in
263    Linux)
264      ### for GNU ls --color option
265      if [ -r $HOME/.dir_colors ]; then
266        alias ls='ls --color=tty'
267        eval `dircolors -b ~/.dir_colors`
268      fi
269      if [ -e /etc/debian_version ]; then
270        alias man='LC_MESSAGES=ja_JP.eucJP man'
271      fi
272      ;;
273    SunOS)
274      case $OSRELEASE in
275        5.*)
276          # solaris
277          alias ups='/usr/ucb/ps'
278          ;;
279      esac
280      ;;
281  esac
282else
283  ### not interactive
284  :
285fi
286
287# private group or not/
288if [ "$my_gname" = "$my_uname" -a $my_uid -ge 100 ]; then
289  umask 0002
290fi
291
292### /bash configuration ----------------------------------------------------
293
294### ========================================================================
295### read configuration files
296### ========================================================================
297
298if test "X$HOST" = "X"; then
299  HOST=`echo $HOSTNAME | sed 's/\..*//'`
300  if test "X$HOST" = "X"; then
301    HOST=`hostname | sed 's/\..*//'`
302  fi
303fi
304
305test -f ${HOME}/.aliases_sh          && . ${HOME}/.aliases_sh
306test -f ${HOME}/.bash.d/${DOMAIN}_rc && . ${HOME}/.bash.d/${DOMAIN}_rc
307test -f ${HOME}/.bash.d/${HOST}_rc   && . ${HOME}/.bash.d/${HOST}_rc
308
309bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
310if [ "$PS1" ] && [ $bmajor -ge 2 ] && [ $bminor \> 04 ] \
311  && [ -r ${HOME}/.bash_completion ]; then
312  export BASH_COMPLETION=~/.bash_completion
313  export BASH_COMPLETION_DIR=~/.bash_completion.d
314  . ${HOME}/.bash_completion
315fi
316
317### /read configuration files ==============================================
Note: See TracBrowser for help on using the browser.