logo logo

April 08, 2019 14:12

作業効率アップのためのalias for Mac/Linux

aliasとは?

物理畑出身のぼくにとって、情報学部出身の生粋のIT魔導師の鮮やかなコマンド捌きには感銘を受けることが少なくありません。
彼らは独自調合のaliasを行っており、遅ればせながら私も調合してみようと思い立ちました。

aliasとは別名のことですが、ここではよく使うCUI呪文を短く唱えられるようにするための設定のことだと定義します。

aliasの設定

以下ではMacやLinuxなどのUNIX系OS環境を想定しますが、shellは種類いかんによらずターミナルと統一表記します。

ターミナルでaliasと打つと、現在設定されているaliasのリストを表示することができます。自分で設定した覚えがなくても、システムや誰かが設定済みのものがあるかもしれませんし、一つも表示されないかもしれません。

この設定はホームディレクトリ直下の.bashrcファイルに書かれています。

まずはこのファイルを開きましょう。

vim ~/.bashrc

どこに書いても問題ないですが、例えば以下のワンラインを書いてみましょう。iを押してinsertモードにして、

alias ..='cd ../'

と書き加えたら、esc→:wqと押して、上書き保存します。これでsource ~/.bashrcとするか、ターミナルを再起動してこの設定を反映させた後で、どこかの階層で..と打つと、これだけで一つ上の階層にいけます。超便利。

Mac環境の場合、ターミナルの再起動では上手くいかない場合があるかもしれません。そんな時は.bash_profileを同じように開き、末尾にsource ~/.bashrcを追記してみてください。こうするとターミナルの起動時には必ず~/.bashrcの設定が反映されるようになります。

ぼくのかんがえたさいきょうのエイリアス

にわか仕込みの、ぼくのエイリアス(2019.4)が下記の通り。

# personal setting
alias la='ls -a'
alias ll='ls -l'
alias mv='mv -i'
alias rm='rm -i'
alias cp='cp -i'
alias p='python'
alias de='cd ~/Desktop'
alias dcu='docker-compose up'
alias dcud='docker-compose up -d'
alias ..='cd ..'
alias tree='tree -C -N .'
alias gs='git status'
alias gl='git log'
alias dp='docker ps'
alias app_name='docker exec -it container_name bash'
alias jn='jupyter notebook'

if [ "$(uname)" = 'Darwin' ]; then
    export LSCOLORS=xbfxcxdxbxegedabagacad
    alias ls='ls -G'
else
    eval `dircolors ~/.colorrc`
    alias ls='ls --color=auto'
fi

# おまけ
dic () {
 w3m "http://ejje.weblio.jp/content/$1" | grep "主な意味"
}

初学者を想定してポイントだけ解説を加える。

  • -iオプション: cpやらmvやらrmやらの際に、確認ステップ(ほんまにやってええのん?)を挟んでくれる。rm -fでシステムを消し飛ばそうとしかけたことがあるので、セーフティーネットとして採用した
  • alias appname='docker exec -it containername bash': docker containerに潜る際によく使う割には長たらしいので、個人的に気に入っている
  • alias tree='tree -C -N .': treeはファイル構造を樹上に表示してくれるコマンドだが、-Nオプションを追加しないと日本語ファイルが文字化けする。-Cで常時カラー表示させる
  • if [ "$(uname)" = 'Darwin' ]; then: ここだけOS依存の設定。内容としてはlsにカラー表示を採用するだけのものだが、Macの際はls -Gとし、それ以外の場合はls --color=autoとする(cf. ls コマンドをカラーで)
  • dic: shell scriptの応用で、ネット上のどこかで紹介されていたもの。(掲載主の方、ソースを忘れてごめんなさい)dic hogeと入れると、weblioで当該ページの主な意味に記載の内容をgrepしてくれる。w3mは東北大の先生が開発したテキストベースのブラウザらしい。macならbrew install w3m、ubuntuだとapt install w3mでインストールできた