bashの使い方その2
いくつか「.bashrc」の設定も増えてきたのでまとめ。
.baskrc
$e ~/.bashrc alias la='ls -alg --color=auto' alias e='sudo nano' alias s='sudo' alias scr='screen -UxR' alias pathlist='echo -e ${PATH//:/\\n}' # PATHのリスト表示 alias rmi='rm -i' # 削除確認 alias mvi='mv -i' # 上書き確認 alias cpi='cp -i' # 上書き確認 alias lh='ls -lh --color=auto' # ファイルサイズを見やすく表示 alias ka='killall' # 短縮 HISTSIZE=99999 # 保存数 0で無効 HISTFILESIZE=99999999 # ファイルへの記録数 0で無効 HISTCONTROL=ignoreboth # スペースorタブの開始行、前と重複する行は記録しない set -o notify # バックグラウンドのジョブが終了したらその時点で通知 set -o noclobber # リダイレクト(>, >&, <>)で既存ファイルを上書きしない shopt -s cdspell # directory移動時の小さなtypoを修正 shopt -s checkhash # ハッシュ表にあるコマンドについて実際に存在するかを確認 shopt -s checkwinsize # 端末のウィンドウサイズを${COLUMNS}と${LINES}に反映 shopt -s cmdhist # 複数行のコマンドの全ての行を1つの履歴エントリに保存 shopt -s histappend # 履歴を上書きせず追加のみ行う(手元の環境ではデフォルト) shopt -s no_empty_cmd_completion # 入力が空の状態では補完・PATH検索をしない shopt -s nocaseglob # 「*」などのパス名展開で大文字小文字を区別しない shopt -u sourcepath unset MAILCHECK # メールチェックはしない ## 新しく作られたファイルのパーミッションがつねに 644 になるようにする umask 022 ## core ファイルを作らせないようにする ulimit -c 0 export PAGER=less export LESS='-X -i -P ?f%f:(stdin). ?lb%lb?L/%L.. [?eEOF:?pb%pb\%..]' export LESSOPEN="| $HOME/bin/lesspipe.sh %s" if "$PS1" ; then # EOF (Ctrl-D) 入力は 10回まで許可。 IGNOREEOF=10 # "!"をつかって履歴上のコマンドを実行するとき、実行前に必ず展開結果を確認 shopt -s histverify # 履歴の置換に失敗したときやり直せるようにする。 shopt -s histreedit # "@" のあとにホスト名を補完させない。 shopt -u hostcomplete # つねにパス名のテーブルをチェックする。 shopt -s checkhash # なにも入力してないときはコマンド名を補完しない。 shopt -s no_empty_cmd_completion # i: 直前の履歴 30件を表示する。引数がある場合は過去 1000件を検索 function i { if [ "$1" ]; then history 1000 | grep "$@"; else history 30; fi } # I: 直前の履歴 30件を表示する。引数がある場合は過去のすべてを検索 function I { if [ "$1" ]; then history | grep "$@"; else history 30; fi } # GNU screen 用のコマンド。引数を screen のステータス行に表示。 function dispstatus { if "$STY" ; then echo -en "\033k$1\033\134"; fi } # つねに直前のコマンドの終了状態をチェックさせる。 # もし異常終了した場合は、その状態(数値)を表示する。 function showexit { local s=$? dispstatus "${PWD/\/home\/yusuke/~}" if $s -eq 0 ; then return; fi echo "exit $s" } PROMPT_COMMAND=showexit # px: 長いプロンプトと短いプロンプトを切り換える。 function px { local tmp=$PS1; PS1=$PS0; PS0=$tmp; } # h: csh における which と同じ。 function h { command -v $1; } # wi: whatis の略。指定されたコマンドの実体を表示。 function wi { case `type -t "$1"` in alias|function) type "$1";; file) L `command -v "$1"`;; function) type "$1";; esac } # 現在実行中のジョブを表示。 function j { jobs -l; } # Perl のワンライナー補助。 function P { perl -e 'sub f{'"$*"';}print &f(@ARGV),"\n";'; } alias grp='grep -ir' alias 644='chmod 644' alias 755='chmod 755' alias ls='ls -F' alias ..='cd ..' function mkrails { if [ "$1" ]; then mkdir /home/www/$@ mkdir /home/www/$@/public mkdir /home/www/$@/log mkdir /home/www/$@/cgi-bin mkdir /home/www/$@/config else echo "ドメイン名を指定してください(ex. 2.5-55.jp)" fi } fi
historyコマンド
これは超便利。↑でひとつずつ表示していってて面倒臭いなぁと思っていたので、iコマンドには感動。
$i 'sudo rm -rf' 11 sudo rm -rf /home/svn/hoge.rails 61 sudo rm -rf hoge.rails 412 sudo rm -rf /home/test 423 sudo rm -rf work 424 sudo rm -rf test 565 i 'sudo rm -rf'
実行するときは、!+番号で。いったんコマンドラインに表示されるので確認したり修正できて楽チン。
$!412 $sudo rm -rf /home/test
参考
こちら(→my bashrc)の「.bashrc」を全面的に参考にさせていただきました。感謝です。