LoginSignup
7
1

More than 1 year has passed since last update.

久しぶりにコマンドのエイリアスに向き合ってみる

Last updated at Posted at 2021-12-04

ランサーズ AdventCalendar 5日目の記事です。
2ヶ月前にランサーズにJoinし、初めてランサーズのアドベントカレンダーに投稿してみることになりました。

さて、今回は皆さんも普段使っているであろうコマンドラインの「エイリアス」について、僕なりにやっていることや考え方を書いていきたいと思います。

書かないこと

aliasコマンド自体は出てきません。
特定のコマンドに別名を付与することをエイリアスと表現しています。

Wikipedia: alias (コマンド)
https://ja.wikipedia.org/wiki/Alias_(%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)

前提

筆者は普段fish shellを使っているのでサンプルは全てfishのものとなります。bash, zshは適宜読み替えていただけると幸いです。

エイリアスについて

ご存知の方も多いと思いますが、コマンドには独自の別名をつけることができます。便利な機能なので使っている方も多いと思います。

fish shellはconfig.fishに登録するので、こんな感じになります。

~/.config/fish/config.fish
alias ll='ls -lha'
❯ ll
total 152
drwxr-xr-x   4 yutaron  staff   128B Aug 16 15:18 .aws
-rw-------   1 yutaron  staff   2.7K Jul  8 18:20 .bash_history
-rw-r--r--@  1 yutaron  staff   539B Jul  3 20:37 .bash_profile
drwxr-xr-x   4 yutaron  staff   128B Apr  1  2021 .composer
drwx------   9 yutaron  staff   288B Nov  7 11:14 .config

エイリアスを使うモチベーション

さて、皆様が「エイリアスを書こう!」となるのはどのようなときでしょうか?

  • コマンドが長いから短縮登録しよう!
  • 自分が分かりやすい名前をつけよう!

というモチベーションが多いのではないかと思います。
僕も同じで、使えそうなコマンドをまとめた辞書的な使い方をしています。

エイリアス化されるコマンド群は往々にして複雑なものが多いと思いますが、

「このエイリアスに含まれているこのコマンドはこんな使い方ができる!」
みたいな感じで自分の学習にも役立っています。
エイリアス名からユースケースが目に浮かびやすくなり、より学習の助けにもなると思います。

辞書的な使い方

この考え方自体は自分のオリジナルではなく、数年前にインターネットを徘徊しているときに見つけた考え方なのですが、なるほどと思いそれ以来参考にしています。

このコマンド何やってるか今はよく分からんけど、このケースに役立つっぽい!

みたいな状況が、インターネットを彷徨っているときに結構あるのですが、そんな場合にも
とりあえずエイリアスを登録してしまって、後から暇になったときに見返すことも多いです。

以前まではメモ帳に登録するなどしていたのですが、迷子になるケースが頻発し
それ以来fish.configファイルに追記することを心がけています。

エイリアスに何を登録したらいい?

複雑なコマンドをゼロから入力しているときに、エイリアスを登録することを思いつき、その時間を取れることが一番いいと思います。

ただ、忙しかったり余裕がなかったり、後回しにしちゃって忘れる人もいるのではないでしょうか。
僕なんですが。

そこで、下記のようなコマンドを実行することでエイリアス登録した方が良さそうな操作を洗い出すことができます。

history | awk '{print $1 " " $2 " " $3}' | sort | uniq -c | sort -r | head -n 20

historyコマンドを使うことで直近の自分のコマンド操作を遡ることができます。
これを基に自分がどんなコマンドを入力したかを入力数順にソートできます。

下の例を見てみましょう。

❯ history | awk '{print $1" "$2" "$3}' | sort | uniq -c | sort -r
  48 git commit -m
  20 pbpaste | jq
  18 git checkout master
  14 curl -H "Authorization:Bearer
  13 go run main.go
  10 curl --request GET
   7 sudo easy_install -mxN
   6 git remote add

この場合だと、「git commit -m をよく入力してるな〜」っているのがよく分かります。
なので、「gcmというエイリアスをつけようかな〜」という判断ができます。

逆に、短縮登録しているものが上位表示されていたらaliasを登録したメリットを十分に活かせています。

$3 以降のどこまでをカウント対象とするかは、人によって変わってくるところになりそうです。
皆様の環境でも是非試してみると良いと思います。

いかがでしたでしょうか。
皆様のターミナル操作効率化に少しでも役立てることができれば幸いです。

明日のカレンダーは @high-g さんです。お楽しみに!

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1