# -*- coding: euc-jp; -*- # # $Id: .bash_profile,v 2.86 2006/07/28 05:57:46 hirose31 Exp hirose31 $ # # bash invocation script file. # initialize environmental variables and execute ~/.bashrc # # /etc/profile # # ~/.bash_profile << # ├ ~/.bash.d/${HOST}_profile # └ ~/.bashrc # ├ ~/.aliases_sh # └ ~/.bash.d/${HOST}_rc # ### ======================================================================== ### environmental variables ### ======================================================================== ## basic if [ -z "$OSNAME" ]; then OSNAME=`uname -s`; export OSNAME OSRELEASE=`uname -r`; export OSRELEASE fi ## PATH -------------------------------------------------------------------- PATH=/usr/local/bin:/usr/local/sbin:$PATH [ -d /usr/irori ] && PATH=/usr/irori/bin:/usr/irori/sbin:$PATH [ -d /usr/xpg4/bin ] && PATH=/usr/xpg4/bin:$PATH if [ "X`expr "$PATH" : '.*/usr/sbin.*'`" = "X0" ]; then PATH=$PATH:/usr/sbin fi if [ "X`expr "$PATH" : '.*:/sbin.*'`" = "X0" ]; then PATH=$PATH:/sbin fi # insert to head for i in $HOME/bin ; do test -d $i && PATH=$i:$PATH done # insert to tail for i in /usr/local/app/samba/bin /usr/local/app/jdk-1.1/bin /var/qmail/bin /command; do test -d $i && PATH=$PATH:$i done export PATH ## locale ------------------------------------------------------------------ LANG='ja_JP.eucJP' LOCALE='ja_JP.eucJP' LC_COLLATE=C # for bash2 glob. LC_MESSAGES=C LC_TIME=C TZ='Asia/Tokyo' export LANG LOCALE LC_COLLATE LC_MESSAGES LC_TIME TZ ## bash misc -------------------------------------------------------------- # 起動された bash が対話モードではない場合に読み込むファイル BASH_ENV="$HOME/.bashrc" # prompt PS1='\u@\h[\w]\$ ' PS9='\u@\h[\w]\$ ' BLOCKSIZE=K #FIGNORE='~:.o:,v' HISTSIZE=512 HISTFILESIZE=512 HISTCONTROL=ignoredups # /etc/hosts の代りに補完候補として参照するファイル。IP はダミーで OK。 # C-x @: 候補の一覧, Esc-@: 補完実行 # HOSTFILE=$HOME/etc/hosts # autologout を無効にする TMOUT=0 export BASH_ENV PS1 PS2 PS3 BLOCKSIZE FIGNORE \ HISTSIZE HISTFILESIZE HISTCONTROL \ TMOUT \ PS1 PS9 ## Application ------------------------------------------------------------ # *TeX # teTeXはTEXINPUTSもTEXMFも設定しなければ、~/texmf/ptex/platex/ などを見てく # れるので設定しないことにした。 # test -d $HOME/lib/tex && TEXINPUTS="$HOME/lib/tex//:" export GS_OPTIONS='-sPAPERSIZE=a4' # perl5 no warning in setlocale PERL_BADLANG=0 if test -d $HOME/lib/perl ; then PERL5LIB="$HOME/lib/perl" fi if type -p jless >/dev/null; then alias less=jless PAGER=jless fi if type -p lessmigemo >/dev/null; then #alias less=lessmigemo #PAGER=lessmigemo if [ -e ~/share/migemo/user-dict ]; then export LESSMIGEMO='migemo -t egrep -O 1 -d /usr/share/migemo/migemo-dict -u ~/share/migemo/user-dict' fi fi if type -p less >/dev/null; then # for less+iso-patched LESSCHARSET="latin1" JLESSCHARSET="japanese-ujis" LESS="MiXRc" case "$PAGER" in jless|lessmigemo) : ;; *) PAGER=less ;; esac if type -p lesspipe.sh >/dev/null; then LESSOPEN='|lesspipe.sh %s' export LESSOPEN fi else PAGER=more fi LV='-Ia -Kej -Oej -Dej -Pej -c' HTMLLINTRC=~/.htmllintrc ARCHIE_HOST=archie.kyoto-u.ac.jp #XMODIFIERS="@im=kinput2" #XMODIFIERS="@im=_XWNMO" KEYSERVER_URL="http://pgpkeys.mit.edu:11371" export BC_ENV_ARGS=$HOME/.bcrc export ARCHIE_HOST PERL_BADLANG PERL5LIB PAGER JLESSCHARSET LESS \ LV HTMLLINTRC KEYSERVER_URL ## misc -------------------------------------------------------------------- if test "X$HOST" = "X"; then HOST=`echo $HOSTNAME | cut -d. -f1` if test "X$HOST" = "X"; then HOST=`hostname | cut -d. -f1` fi fi if type -p dnsdomainname >/dev/null 2>&1; then DOMAIN=$(dnsdomainname 2>/dev/null) else DOMAIN=$(hostname) fi case $DOMAIN in *.ac.jp|*.co.jp|*.go.jp|*.or.jp|*.ad.jp|*.ne.jp|*.gr.jp|*.ed.jp|*.lg.jp) # 地域型ドメイン (tokyo.jp) に対応していないけどまぁいいか。 DOMAIN=$(echo $DOMAIN | sed -e 's/^.*\.\([^.]*\.[^.]*\.[^.]*\)$/\1/') ;; *.org|*.com|*.net|*.jp) DOMAIN=$(echo $DOMAIN | sed -e 's/^.*\.\([^.]*\.[^.]*\)$/\1/') ;; *) DOMAIN='unknown' ;; esac SHORTHOST=$HOST export HOST SHORTHOST DOMAIN # color grep (>=2.5) if echo check|grep --color=auto check >/dev/null 2>&1; then GREP_COLOR='01;33' GREP_OPTIONS='--color=auto' export GREP_COLOR GREP_OPTIONS fi # for gcc-3.x # http://gentoo.slinky.surrey.sfu.ca/cflagcollect/ # http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html [ -e /proc/cpuinfo ] && cpumodel=$(cat /proc/cpuinfo |egrep '^model name' |head -n 1|cut -d: -f2 |sed -e 's/ //') case "$cpumodel" in 'i386') _CHOST="i386-pc-linux-gnu" _CFLAGS="'-march=i386 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=i386 -O3 -pipe -fomit-frame-pointer'" ;; 'i486') _CHOST="i486-pc-linux-gnu" _CFLAGS="'-march=i486 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=i486 -O3 -pipe -fomit-frame-pointer'" ;; 'Pentium 1') _CHOST="i586-pc-linux-gnu" _CFLAGS="'-march=pentium -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium -O3 -pipe -fomit-frame-pointer'" ;; 'Pentium MMX') _CHOST="i586-pc-linux-gnu" _CFLAGS="'-march=pentium-mmx -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium-mmx -O3 -pipe -fomit-frame-pointer'" ;; 'Pentium PRO') _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentiumpro -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentiumpro -O3 -pipe -fomit-frame-pointer'" ;; 'Pentium II') _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium2 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium2 -O3 -pipe -fomit-frame-pointer'" ;; 'Celeron (Mendocino)') _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium2 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium2 -O3 -pipe -fomit-frame-pointer'" ;; 'Celeron (Coppermine)'|'Pentium III (Coppermine)') _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" ;; *Pentium\(R\)\ III*) _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" ;; 'Celeron (Willamette)') _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" # _CFLAGS="'-march=pentium4 -O3 -pipe -fomit-frame-pointer'" # _CXXFLAGS="'-march=pentium4 -O3 -pipe -fomit-frame-pointer'" ;; *Celeron\(R\)*) _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" ;; *Pentium\(R\)\ 4*) _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" # _CFLAGS="'-march=pentium4 -O3 -pipe -fomit-frame-pointer'" # _CXXFLAGS="'-march=pentium4 -O3 -pipe -fomit-frame-pointer'" ;; *Xeon*) # ちょっと自身なし _CHOST="i686-pc-linux-gnu" _CFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" _CXXFLAGS="'-march=pentium3 -O3 -pipe -fomit-frame-pointer'" ;; # VIA, AMD, SPARC は省略 '603 (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-O3 -pipe -fsigned-char'" _CXXFLAGS="'-O3 -pipe -fsigned-char'" ;; '603e (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-O3 -pipe -fsigned-char'" _CXXFLAGS="'-O3 -pipe -fsigned-char'" ;; '604 (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-O3 -pipe -fsigned-char'" _CXXFLAGS="'-O3 -pipe -fsigned-char'" ;; '604e (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-O3 -pipe -fsigned-char'" _CXXFLAGS="'-O3 -pipe -fsigned-char'" ;; '750 aka as G3 (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt'" _CXXFLAGS="'-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt'" ;; '7400, aka G4 (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-mcpu=7400 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt'" _CXXFLAGS="'-mcpu=7400 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt'" ;; '7450, aka G4 second generation (PowerPC)') _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-mcpu=7450 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt'" _CXXFLAGS="'-mcpu=7450 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt'" ;; *PowerPC*) # If you don't know which one _CHOST="powerpc-unknown-linux-gnu" _CFLAGS="'-O3 -pipe -fsigned-char -mpowerpc-gfxopt'" _CXXFLAGS="'-O3 -pipe -fsigned-char -mpowerpc-gfxopt'" ;; *) _CHOST="'unknown-for-${cpumodel}'" _CFLAGS="'unknown-for-${cpumodel}'" _CXXFLAGS="'unknown-for-${cpumodel}'" ;; esac export _CHOST _CFLAGS _CXXFLAGS ### /environmental variables ---------------------------------------------- ### ======================================================================== ### shell depend ### ======================================================================== # ksh, ash, sh case "$0" in ksh|-ksh) VISUAL=emacs ALIAS_OK=1 export VISUAL set -o ignoreeof ;; ash|-ash) ;; sh|-sh) case $OSNAME in FreeBSD) set -E ;; CYGWIN*) [ -n "${IWD}" ] && cd `cygpath -u ${IWD}` ;; esac ;; esac ### ======================================================================== ### OS depend ### ======================================================================== case $OSNAME in Linux) # Linux CONSOLE1="/dev/tty1" if [ -L $CONSOLE1 ]; then CONSOLE1=$(readlink -f /dev/tty1) fi ;; FreeBSD) CONSOLE1="/dev/ttyv0" if [ "X`type -t jless`" = "Xfile" ]; then JLESSCHARSET="japanese-ujis" LESS="MiX" PAGER=jless alias less=jless fi case $OSRELEASE in 2.2*) # FreeBSD 2.2.x ;; 3.4*) ;; esac ;; SunOS) case $OSRELEASE in 5.*) # Solaris CONSOLE1="/dev/console" PATH=$PATH:/opt/sfw/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/dt/bin:/usr/platform/$(uname -i)/sbin MANPATH=`echo $PATH|sed -e 's/sbin/man/g' -e 's/bin/man/g'` export MANPATH [ "$TERM" = "kterm" ] && TERM=xterm LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH EDITOR=vi export EDITOR ;; 4.*) # SunOS 4.x CONSOLE1="unknown" ;; esac ;; *) # unknown... CONSOLE1="unknown" ;; esac ### /OS depend ------------------------------------------------------------- ### ======================================================================== ### read configuration files ### ======================================================================== test -f ${HOME}/.bash.d/${DOMAIN}_profile && . ${HOME}/.bash.d/${DOMAIN}_profile test -f ${HOME}/.bash.d/${HOST}_profile && . ${HOME}/.bash.d/${HOST}_profile case $0 in *bash*) # ~/.bashrc imply ~/.aliases_sh test -f ${HOME}/.bashrc && . ${HOME}/.bashrc ;; *) if [ "X${ALIAS_OK}" != "X" ]; then test -e ${HOME}/.aliases_sh && . ${HOME}/.aliases_sh unalias cd fi test -f ${HOME}/.sh.d/${HOST}_profile && . ${HOME}/.sh.d/${HOST}_profile ;; esac ### /read configuration files ---------------------------------------------- ### ======================================================================== ### console login ### ======================================================================== if [ -e $HOME/.WITH_X ]; then CLIENT_OPTS="" test -e $HOME/.xinitrc && CLIENT_OPTS="$HOME/.xinitrc" #SERVER_OPTS='-- -deferglyphs 16 ' SERVER_OPTS="" STARTX_OPTS="" #STARTX_OPTS="-deferglyphs 16" test "X${CLIENT_OPTS}" != "X" && STARTX_OPTS="${STARTX_OPTS} ${CLIENT_OPTS}" test "X${SERVER_OPTS}" != "X" && STARTX_OPTS="${STARTX_OPTS} -- ${SERVER_OPTS}" SSHAGENT=`type -p ssh-agent` if [ "`tty`" = "$CONSOLE1" ]; then SEC=3 echo -n "start after in ${SEC} seconds..." prompt.pl ${SEC} > /dev/null if [ -x ${SSHAGENT} ]; then echo "startx ${STARTX_OPTS}, with ssh-agent" exec ${SSHAGENT} startx ${STARTX_OPTS} 2> $HOME/.startx-error else echo "startx ${STARTX_OPTS}" exec startx ${STARTX_OPTS} 2> $HOME/.startx-error fi else echo "tty is ${CONSOLE1}. [FYI] xinit .Xclients.1 -- :1" fi fi ### /console login ---------------------------------------------------------