alias一覧を表示する関数を登録して「aliasなんだったっけなー」を解決する

シェル

こんにちは。Enjoy IT Life管理人の仁科(@nishina555)です。

aliasはコマンドベースの作業を効率化してくれる便利な機能です。
特に、長くなりがちなdockerコマンドや、利用頻度の高いgitコマンドに関するaliasを設定している方は多いのではないでしょうか。

しかし、aliasを作りすぎたり、しばらくaliasを利用していなかったりすると「このコマンドのaliasってどんなの作ったっけなー」と忘れてしまう時があります。

そんな時のために『alias一覧を表示する関数』というものを用意しておくと便利です。
今回は『alias一覧を表示する関数』の作成方法について紹介します。

alias一覧を表示する関数の作成方法

例えば以下のシェルコマンドを実行すると、dockerという単語が含まれているaliasの一覧が抽出できます。
コマンドは『自分的Docker用エイリアス』を参考にしました。

$ alias | grep 'docker' | sed "s/^\([^=]*\)='\(.*\)'/\1    => \2/"| sed "s/'\\\'//g";

これを例えばdaliasという関数名でシェルの設定ファイルに登録すれば、daliasとコマンドを叩くだけでdockerコマンドに関するalias一覧が取得できます。

.zshrc

dalias() { alias | grep 'docker' | sed "s/^\([^=]*\)='\(.*\)'/\1    => \2/"| sed "s/'\\\'//g"; }

実行結果は以下のようになります。

$ dalias

dcm    => docker commit
dex    => docker exec
dimg    => docker images
dka    => docker attach
dps    => docker ps
dpsa    => docker ps -a
drmif    => docker rmi -f
dru    => docker run
dvl    => docker volume ls
figb    => docker-compose build
figk    => docker-compose kill
figr    => docker-compose run
figrm    => docker-compose rm
figu    => docker-compose up

同様に、以下のようにすればgaliasとコマンドを叩くだけでgitコマンドに関するalias一覧が取得できます。

.zshrc

galias() { alias | grep 'git' | sed "s/^\([^=]*\)='\(.*\)'/\1    => \2/"| sed "s/'\\\'//g"; }

実行結果は以下のようになります。

$ galias

ga    => git add
gaa    => git add --all
gac    => git add . && git commit
gaca    => git add . && git commit --amend
gacm    => git add . && git commit -m
gba    => git branch -a
gbd    => git branch -d
gbr    => git branch
gbrr    => git branch --remote
gc    => git commit
gca    => git commit --amend
gcam    => git commit -a -m
gch    => git checkout
gchb    => git checkout -b
gcm    => git commit -m
gdf    => git diff
gf    => git fetch
gigupdate    => git rm -r --cached . && git add .
glg    => git log
glgg    => git log --graph
glgo    => git log --oneline
gph    => git push heroku
gplm    => git pull origin master
gpo    => git push origin HEAD
gst    => git status

aliasをたくさん登録している方はぜひ活用してみてはいかがでしょうか。

この記事がいいなと思いましたらTwitter(@nishina555)のフォローもよろしくお願いします!