Python, web, Algorithm 技術的なメモ

技術的なメモを書いていきます.pythonistaを目指しています.

コマンドを自分で定義する方法 (bash)

ここでは,ユーザ定義型のalias,functionを書く方法とその設定を紹介する.

作業する場所が決まっていて,terminalでディレクトリを変更するとき, 毎回

cd ./hoge/foo/here

とするのは面倒である. そこで,作業するディレクトリのショートカット(alias)を作成する.

vim ~/.bashrc

で,.bashrcファイルを開き,以下の例に従うと,alias,functionが作成できる.

example 1 (alias)

この例は,pythonのドキュメントがあるディレクトリまでいく aliasである.(これを .bashrc ファイルに追加する)

alias pybook='cd ~/foo/bar/python/book'

example2 (alias)

次に,メモリを解放するaliasを作成. 同様に,bashrcに以下を追加する.

alias killmemo='du -sx / &> /dev/null & sleep 15  && kill $!'

このsleep 15でメモリの削除量が変る.

example3 (function)

引数を取るようなaliasを作りたいとき, aliasでは作れないため,functionを定義する. ここでの例は,texのコンパイル,pdfを表示するコマンドを まとめ,1つのコマンドでできるようにする. 同様に,bashrcに以下を追加する.

function easytex(){
      platex ./$1.tex
      dvipdfm ./$1.dvi
      open ./$1.pdf
  }

platex,dvipdfmtexのコマンドである.また,$1はコマンドでの第一引数となる. したがって,$easytex testとするとtest.texをコンパイルし,test.pdfを開く. ここでの第一引数はtextである.

定義したコマンドを有効にする.

これで,ユーザ定義型コマンドを定義したものの, terminalに反映するには,毎回 source ~/.bashrcを打たなければならない. それはとても面倒なので ,.bash_profileファイルを編集し,loginしたら 定義したコマンドが有効になるようにする.

 vim ~/.bash_profile

で,bash_profileファイルを開き,以下を追加する.

if [ -f ~/.bashrc ] ; then
     . ~/.bashrc
fi

これを追加する事で,定義したコマンドをいつでも使えるようになる.

参考文献:

vimの外部コマンド実行とalias

macに.bashrcを作成したときのメモ

Passing parameters to a bash function