.vimrcをさらしたついでに.bashrcも

ついでなんでさらしてみた。

bashrc

# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
if [ -f ~/.bash_aliases ]; then
	. ~/.bash_aliases
fi

export PATH="/usr/local/bin:${PATH}"
export PATH="/usr/share/colorgcc/:${PATH}"
export PATH="${HOME}/bin:${PATH}"
export PATH="/usr/lib/ccache/bin/:${PATH}"
#export PATH="/usr/local/texlive/bin/:${PATH}"
#export PATH="${PATH}:/usr/java/default/bin/"
#export PATH="${PATH}:/home/goth/bin/flex_sdk/bin"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/local/include"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/lib/qt3/includ"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/local/include/opencv"

export LIBRARY_PATH="${LIBRARY_PATH}:/usr/local/lib"

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"

export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}:/usr/local/lib"

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig"

export CLASSPATH=".:/usr/java/default/lib/:/usr/share/java/junit.jar"

export HC="ghc"
export HFLAGS="-Wall"
export GHCRTS=""

export RUBYOPT="rubygems"

export EDITOR="vim"

export ESC="$(echo -en '\033')"
export COLOUR_RED="$(echo -en '\033[31m')"
export COLOUR_GREEN="$(echo -en '\033[32m')"
export COLOUR_YELLOW="$(echo -en '\033[33m')"
export COLOUR_BLUE="$(echo -en '\033[34m')"
export COLOUR_CYAN="$(echo -en '\033[35m')"
export COLOUR_MAGENTA="$(echo -en '\033[36m')"
export COLOUR_WHITE="$(echo -en '\033[37m')"
export COLOUR_HIGHLIGHT_RED="$(echo -en '\033[31;1m')"
export COLOUR_HIGHLIGHT_GREEN="$(echo -en '\033[32;1m')"
export COLOUR_HIGHLIGHT_YELLOW="$(echo -en '\033[33;1m')"
export COLOUR_HIGHLIGHT_BLUE="$(echo -en '\033[34;1m')"
export COLOUR_HIGHLIGHT_CYAN="$(echo -en '\033[35;1m')"
export COLOUR_HIGHLIGHT_MAGENTA="$(echo -en '\033[36;1m')"
export COLOUR_HIGHLIGHT_WHITE="$(echo -en '\033[37;1m')"
export COLOUR_DEFAULT="$(echo -en '\033[m')"

PS_USER="\[\e[33m\]\u\[\e[0m\]"
PS_HOST="\[\e[32m\]\h\[\e[0m\]"
PS_WORK="\[\e[37;1m\]\W\[\e[0m\]"
PS_SCREEN=""
PS_SSH=""
PS_ATODE=""

if [ -n "${PARTTY_SESSION}" ] ; then
	PS_HOST="\[\e[32m\]${PARTTY_SESSION}!\[\e[0m\]"
fi
if [ -n "${WINDOW}" ] ; then
	PS_SCREEN="(\[\e[35m\]${WINDOW}\[\e[0m\])"
fi
if [ -n "${SSH_CLIENT}" ] ; then
	PS_SSH="(\[\e[36m\]`echo ${SSH_CLIENT} | sed 's/ [0-9]\+ [0-9]\+$//g'`\[\e[0m\])"
fi
if [ -f ~/.atode ]; then
	PS_ATODE="(\`cat ~/.atode | wc -l\`)"
fi
export PS1="[${PS_USER}${PS_SCREEN}@${PS_HOST}${PS_SSH}${PS_ATODE} ${PS_WORK}]\$ "

export HISTSIZE=5000

.bash_aliases

# vim: syntax=sh
LANG=UTF-8
if [ -f ~/bin/network_settings ]; then
	. ~/bin/network_settings
fi

alias cd-='cd -'
alias cd..='cd ..'
alias realcwd='cd -P .'

alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv'

alias mkmkc='cp ~/.Makefiles/Makefile_c ./Makefile'
alias mkmkcc='cp ~/.Makefiles/Makefile_cc ./Makefile'
alias mkmkjava='cp ~/.Makefiles/Makefile_java ./Makefile'
alias mkmkrecursive='cp ~/.Makefiles/Makefile_recursive ./Makefile'
alias mkmkv='cp ~/.Makefiles/Makefile_v ./Makefile'
alias mkmkhs='cp ~/.Makefiles/Makefile_hs ./Makefile'

alias md='mkdir'
alias rd='rmdir'

alias cal='cal -m3'

alias ftp='ftp -i'

alias tomorrow='date -d1day'
alias yesterday='date -d1day+ago'
alias today='date'
alias date6='date +%y%m%d'
alias date8='date +%Y%m%d'
alias date6s='date +%y/%m/%d'
alias date8s='date +%Y/%m/%d'
alias time6='date +%H%M%S'
alias time6s='date +%H-%M-%S'

alias df='df -h -x supermount'
alias du='du -hc'

alias g++='g++ -Wall'
alias gcc='gcc -Wall'

alias euc2sjis='iconv -f euc-jp -t sjis'
alias euc2utf='iconv -f euc-jp -t utf-8'
alias sjis2euc='iconv -f sjis -t euc-jp'
alias sjis2utf='iconv -f sjis -t utf-8'
alias utf2euc='iconv -f utf-8 -t euc-jp'
alias utf2sjis='iconv -f utf-8 -t sjis'

alias ls1='\ls -1'
alias lsd='ls -dv */'
alias l='ls'
alias lal='ls -Falv'
alias lg='ls -Fgv'
alias lla='ls -Flav'
alias lad='ls -adv */'
alias la='ls -av'
alias lld='ls -ldv */'
alias ll='ls -lv'
alias lll='ls -lv'

alias m='make -j3'
alias mn='make clean'
alias mm='make clean;make -j3'
alias mi='make install'
alias mu='make uninstall'

alias reload='. ~/.bashrc'

alias vivimrc='vim ~/.vimrc'
alias viscreen='vim ~/.screenrc'
alias vibashrc='vim ~/.bashrc'
alias vialiases='vim ~/.bash_aliases'
alias viinputrc='vim ~/.inputrc'
alias viwgetrc='vim ~/.wgetrc'
alias vighci='vim ~/.ghci'
alias viatode='vim ~/.atode'
alias viirbrc='vim ~/.irbrc'

alias f='pushd'
alias b='popd'

alias sc='screen -U -D -RR'

export SSH_AUTH_SOCK=${HOME}/.ssh/auth.sock
alias sa='eval $(ssh-agent -a ${SSH_AUTH_SOCK}) && ssh-add'

alias sudo='sudo -p sudo'

alias Open='kfmclient exec'

alias find1f='find -maxdepth 1 -type f'
alias find1d='find -maxdepth 1 -type d ! -name .'
alias find1='find -maxdepth 1 ! -name .'

alias Clock='watch -tn 1 date +"%T" \| jabanner -w \${COLUMNS}'
alias Clock2="watch -tn 1 date -d \\\"now -\$(date -d \"now\" +\"%s\")sec -9hour\\\" +\"%T\" \| jabanner -w \${COLUMNS}"

alias xrandrVGA='xrandr --output VGA'
alias xrandrLVDS='xrandr --output LVDS'

alias imadoki='ssh -p XXX XXX'
alias nomikai='source ~/.settings/nomikai'
alias visys_partty='partty-host visys.podzone.net -s goth -w XXX -r ""'
alias local_partty='partty-host localhost -s goth -w XXX -r ""'
alias local_partty_server='cd ~/test/partty/; partty-gate >/dev/null 2>&1 & partty-server>/dev/null 2>&1 &'

alias atode?='atode -l'
alias dekita='atode -k'

alias emacs='vim'
alias nano='vim'
alias vi='vim'

bashrc

外部ファイルの読み込み
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
if [ -f ~/.bash_aliases ]; then
	. ~/.bash_aliases
fi

まぁ、これは。
よくやる手じゃないでしょうか?
/etc/bashrcはデフォで書いてあった設定。
aliasesの方は追加。

PATHとかの設定。
export PATH="/usr/local/bin:${PATH}"
export PATH="/usr/share/colorgcc/:${PATH}"
export PATH="${HOME}/bin:${PATH}"
export PATH="/usr/lib/ccache/bin/:${PATH}"
#export PATH="/usr/local/texlive/bin/:${PATH}"
#export PATH="${PATH}:/usr/java/default/bin/"
#export PATH="${PATH}:/home/goth/bin/flex_sdk/bin"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/local/include"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/lib/qt3/includ"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:/usr/local/include/opencv"

export LIBRARY_PATH="${LIBRARY_PATH}:/usr/local/lib"

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"

export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}:/usr/local/lib"

export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig"

export CLASSPATH=".:/usr/java/default/lib/:/usr/share/java/junit.jar"

まぁ、色々と。

ghcの設定。
export HC="ghc"
export HFLAGS="-Wall"
export GHCRTS=""

Makefileで使おうかと思ったのだが使ってないや。

テキトーに書いた設定。とか。
export RUBYOPT="rubygems"

export EDITOR="vim"

export HISTSIZE=5000

テキトー。

色。
export ESC="$(echo -en '\033')"
export COLOUR_RED="$(echo -en '\033[31m')"
export COLOUR_GREEN="$(echo -en '\033[32m')"
export COLOUR_YELLOW="$(echo -en '\033[33m')"
export COLOUR_BLUE="$(echo -en '\033[34m')"
export COLOUR_CYAN="$(echo -en '\033[35m')"
export COLOUR_MAGENTA="$(echo -en '\033[36m')"
export COLOUR_WHITE="$(echo -en '\033[37m')"
export COLOUR_HIGHLIGHT_RED="$(echo -en '\033[31;1m')"
export COLOUR_HIGHLIGHT_GREEN="$(echo -en '\033[32;1m')"
export COLOUR_HIGHLIGHT_YELLOW="$(echo -en '\033[33;1m')"
export COLOUR_HIGHLIGHT_BLUE="$(echo -en '\033[34;1m')"
export COLOUR_HIGHLIGHT_CYAN="$(echo -en '\033[35;1m')"
export COLOUR_HIGHLIGHT_MAGENTA="$(echo -en '\033[36;1m')"
export COLOUR_HIGHLIGHT_WHITE="$(echo -en '\033[37;1m')"
export COLOUR_DEFAULT="$(echo -en '\033[m')"

時々欲しくなる変数。
英国英語なのは仕様。

PSの設定。
PS_USER="\[\e[33m\]\u\[\e[0m\]"
PS_HOST="\[\e[32m\]\h\[\e[0m\]"
PS_WORK="\[\e[37;1m\]\W\[\e[0m\]"
PS_SCREEN=""
PS_SSH=""
PS_ATODE=""

if [ -n "${PARTTY_SESSION}" ] ; then
	PS_HOST="\[\e[32m\]${PARTTY_SESSION}!\[\e[0m\]"
fi
if [ -n "${WINDOW}" ] ; then
	PS_SCREEN="(\[\e[35m\]${WINDOW}\[\e[0m\])"
fi
if [ -n "${SSH_CLIENT}" ] ; then
	PS_SSH="(\[\e[36m\]`echo ${SSH_CLIENT} | sed 's/ [0-9]\+ [0-9]\+$//g'`\[\e[0m\])"
fi
if [ -f ~/.atode ]; then
	PS_ATODE="(\`cat ~/.atode | wc -l\`)"
fi
export PS1="[${PS_USER}${PS_SCREEN}@${PS_HOST}${PS_SSH}${PS_ATODE} ${PS_WORK}]\$ "

じつは一番気合入れて書いた部分。
PS1をパーツ毎にバラしているので結構綺麗に書けてる気がする。
PS_SCREENはscreen張った時のWindow番号。
PS_SSHsshで入ったときのアクセス元IP。
PS_ATODEはatodeの件数。
PS_HOSTはpartty!している最中にはエクスクラメーションマークつけてる。

.bash_aliases

で、.bashrcから読み込まれているaliasをまとめたファイル。

外部ファイルの読み込み。
if [ -f ~/bin/network_settings ]; then
	. ~/bin/network_settings
fi

sshしたりフォワーディングしたりしてる。
個人的なもんなんでパス。

cd
alias cd-='cd -'
alias cd..='cd ..'
alias realcwd='cd -P .'

上二つ単にスペース入れ忘れを許容するだけ。
realcwdは結構便利。
シンボリックリンクとかたどりまくってpwdがカオスってきた時とか有効。
物理パスに移動する。
うちの場合授業毎のディレクトリが

lrwxrwxrwx  1 goth goth   19 2008-05-12 10:22 1Fr4 -> 情報科学実験I/
lrwxrwxrwx  1 goth goth   19 2008-05-14 21:01 1Fr5 -> 情報科学実験I/
lrwxrwxrwx  1 goth goth   19 2008-04-14 10:21 L412503 -> 情報科学実験I/
drwxr-xr-x  7 goth goth 4096 2008-05-15 18:09 情報科学実験I/

という感じで科目番号やら"(学期)(曜日)(時限)"でアクセスできたり、とかしててシンボリックリンク地獄なんで時々使う。
まぁ、あればあるで便利だと思う。

cp/mv/rm

alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -iv'

問い合わせ+詳細
デフォです。

makefiles

alias mkmkc='cp ~/.Makefiles/Makefile_c ./Makefile'
alias mkmkcc='cp ~/.Makefiles/Makefile_cc ./Makefile'
alias mkmkjava='cp ~/.Makefiles/Makefile_java ./Makefile'
alias mkmkrecursive='cp ~/.Makefiles/Makefile_recursive ./Makefile'
alias mkmkv='cp ~/.Makefiles/Makefile_v ./Makefile'
alias mkmkhs='cp ~/.Makefiles/Makefile_hs ./Makefile'

makefileの雛形をカレントディレクトリにコピーする。
なんか.vとかもう使わねーようなaliasも...(д
雛形とか言ったけど正確には汎用makefileを置いておいてある。

CFLAGS=-Wall

SRCS=$(wildcard *.c)
OBJS=$(SRCS:.c=.o)
BINS=$(SRCS:.c=)

.PHONY: all clean
all: $(BINS)

clean:
	$(RM) $(OBJS) $(BINS)

ってな感じで1ソース1バイナリな汎用Makefile
授業レベルならこれでok

mkdir/rmdir
alias md='mkdir'
alias rd='rmdir'

略称。
でも使ってないや、これ。

cal
alias cal='cal -m3'

特に他意はない

ftp

alias ftp='ftp -i'

書いただけ。

date
alias tomorrow='date -d1day'
alias yesterday='date -d1day+ago'
alias today='date'
alias date6='date +%y%m%d'
alias date8='date +%Y%m%d'
alias date6s='date +%y/%m/%d'
alias date8s='date +%Y/%m/%d'
alias time6='date +%H%M%S'
alias time6s='date +%H-%M-%S'

前者3つはタダのギャグ。便利ちゃー便利だけど。
で、あとのは時々使うかな?とか思って書いたもの。

$ rpm -qa > $(date8).packages

みたく時々rpmパッケージのログ取ったりするとき便利。

df/du
alias df='df -h -x supermount'
alias du='du -hc'

なんかこれはMandrivaのデフォだった気がする。

gcc/g++
alias g++='g++ -Wall'
alias gcc='gcc -Wall'

まぁ、-Wallはデフォだよね。

iconv
alias euc2sjis='iconv -f euc-jp -t sjis'
alias euc2utf='iconv -f euc-jp -t utf-8'
alias sjis2euc='iconv -f sjis -t euc-jp'
alias sjis2utf='iconv -f sjis -t utf-8'
alias utf2euc='iconv -f utf-8 -t euc-jp'
alias utf2sjis='iconv -f utf-8 -t sjis'

よく使う。
Windowsデュアルブートしている定め。

ls
alias ls1='\ls -1'
alias lsd='ls -dv */'
alias l='ls'
alias lal='ls -Falv'
alias lg='ls -Fgv'
alias lla='ls -Flav'
alias lad='ls -adv */'
alias la='ls -av'
alias lld='ls -ldv */'
alias ll='ls -lv'
alias lll='ls -lv'

どこぞの誰かのlsのaliasに比べればマシ。
どこぞの誰かさんはlsのtypoする度にaliasに追加するらしい。
何やってもls。
sl叩いてもls。
つまらん。

make
alias m='make -j3'
alias mn='make clean'
alias mm='make clean;make -j3'
alias mi='make install'
alias mu='make uninstall'

makeのalias
mmはよく叩く。
あとmi。
便利そうで以外に使わない。
大体make installするときはsudoなんでrootのaliasに加えないと使えない...(д

設定ファイルいじったり。
alias reload='. ~/.bashrc'

alias vivimrc='vim ~/.vimrc'
alias viscreen='vim ~/.screenrc'
alias vibashrc='vim ~/.bashrc'
alias vialiases='vim ~/.bash_aliases'
alias viinputrc='vim ~/.inputrc'
alias viwgetrc='vim ~/.wgetrc'
alias vighci='vim ~/.ghci'
alias viatode='vim ~/.atode'
alias viirbrc='vim ~/.irbrc'

visudoのノリ。
書いておくと便利。
vibashしてvialiasesして、reloadして...。よくある流れ。

pusd/popd
alias f='pushd'
alias b='popd'

あ、これ使ったことねぇや。

screen
alias sc='screen -U -D -RR'

オプションが覚えられないのでaliasにした。

ssh-agent
export SSH_AUTH_SOCK=${HOME}/.ssh/auth.sock
alias sa='eval $(ssh-agent -a ${SSH_AUTH_SOCK}) && ssh-add'

keycain使えって話か?
まぁいいや。

sudo
alias sudo='sudo -p sudo'

sudoのプロンプトを変える。
時々sshのパスワード入れるのかsudoのパスワードを入れるのかで悩む時があるので。

open
alias Open='kfmclient exec'

KDEユーザなら書いておくべし。
macのopenみたいに抵当に開くアプリケーション選んでくれる。

find
alias find1f='find -maxdepth 1 -type f'
alias find1d='find -maxdepth 1 -type d ! -name .'
alias find1='find -maxdepth 1 ! -name .'

よく使う組み合わせとか。
具体的には-maxdepthって打つの面度だけ。

jabanner
alias Clock='watch -tn 1 date +"%T" \| jabanner -w \${COLUMNS}'
alias Clock2="watch -tn 1 date -d \\\"now -\$(date -d \"now\" +\"%s\")sec -9hour\\\" +\"%T\" \| jabanner -w \${COLUMNS}"

カップラーメンのタイマーにどうぞ。
jabannerのデモで時々使う。
地味に便利であったりする。

xrandr
alias xrandrVGA='xrandr --output VGA'
alias xrandrLVDS='xrandr --output LVDS'

そういやxrandrって以外に知られていない?
ウチのまわりだとよく「Linuxでデュアルディスプレどうすんの」的な質問が時々。
まぁ、そのへん。

ssh/partty
alias imadoki='ssh -p XXX XXX'
alias nomikai='source ~/.settings/nomikai'
alias visys_partty='partty-host visys.podzone.net -s goth -w XXX -r ""'
alias local_partty='partty-host localhost -s goth -w XXX -r ""'
alias local_partty_server='cd ~/test/partty/; partty-gate >/dev/null 2>&1 & partty-server>/dev/null 2>&1 &'

imadokiはとあるサーバーへのssh
ってあれ?もうあのサーバー死んでたっけ?
nomikaiはpartty様aliasやらなんやら。
parttyしたらnomikaiだぜ。
まぁ、あとはparttyに繋いだり立てたり。

atode
alias atode?='atode -l'
alias dekita='atode -k'

atode推奨のalias。

タダのギャグ。
alias emacs='vim'
alias nano='vim'
alias vi='vim'

...他意はございません。
タダのギャグであって、その他のエディタを愚弄するとか、そういうのじゃないとです。


こんな感じ