「いちいち全部書かなくていい」の解放感
ターミナルに慣れてくると、同じコマンドを何度も打つ場面が増えてきます。長いオプション付きのコマンドや、いつも決まった手順を打つのは、地味にストレスです。
そこで登場するのがaliasです。長いコマンドに、短い自分だけの呼び名をつけられる仕組みです。一度設定してしまえば、あとはその短い一言を打つだけで済みます。「いちいち全部書かなくていい」——このシンプルな楽さが、思っている以上に積み上がります。
サイト管理人の実例:sshminiでいつでも母艦に
サイト管理人はMac miniを母艦(サーバのようなもの)として使っていて、外出先や別のパソコンからSSHで接続することがよくあります。本来なら、ユーザー名やアドレスを含む長い接続コマンドを毎回打つ必要があります。
そこでsshminiという一言のaliasを作りました。これを打つだけで、いつでもMac miniにアクセスできます。長いコマンドを覚える必要もなく、打ち間違える心配もありません。
実は、SSHには専用の近道がある
ここで先に言っておくべきことがあります。SSHに限っては、aliasを作らなくても短くできます。 ~/.ssh/configというファイルに接続先を登録しておくと、短い名前で呼べるようになる仕組みが最初から用意されているのです。
Host mymac
HostName 100.x.x.x
User onamae
IdentityFile ~/.ssh/id_ed25519
こう書いておけば、ssh mymacだけで繋がります。書き方はSSHの肝:configの中身にまとめてあります。SSHを短くしたいだけなら、まずこちらを使ってください。 aliasより素直で、scpなど他のコマンドからも同じ名前が使えます。
それでもaliasを使う理由
サイト管理人のsshminiが単なるsshではないのは、moshという別の道具を挟んでいるからです。moshは、通信が不安定な環境でも接続が切れにくく、打った文字がすぐ画面に表示される、SSHの代わりに使える仕組みです。
つまり、こういう二階建てになっています。
~/.ssh/config で → 長いアドレスとユーザー名を「mymac」の一言にまとめる
alias で → moshやオプションを含めた「コマンド全体」を一言にまとめる
configは「接続先」を短くする道具、aliasは「コマンド全体」を短くする道具。 役割が違うので、両方使うと一番短くなります。
書き方は、こんな感じ
alias 短い名前="本当のコマンド"と書くだけです。たとえば設定ファイルまわり。
alias vimz="vim ~/.zshrc"
alias sourcez="source ~/.zshrc"
上は「.zshrcという設定ファイルをvimで開いて編集する」、下は「編集した設定を反映させる」コマンドです。どちらも~/.zshrcという長い部分を毎回打つことになるので、vimz・sourcezという短い名前をつけてしまいます。ちょっとしたことですが、こういう小さな面倒がなくなるのは、思っている以上に積み上がります。
ほかにも、よく使うディレクトリへの移動や、よく使うGitコマンドの組み合わせなど、対象は何でもかまいません。
alias gs="git status"
「毎回同じことを打っているな」と気づいたら、alias化のサインです。
なお、こうして書いたaliasは.zshrcのような設定ファイルに書いておかないと、ターミナルを閉じた時点で消えてしまいます。書いたあとはsourcez(=source ~/.zshrc)で反映させるのを忘れずに。
まとめ
aliasは、覚えることを増やす仕組みではなく、覚えなくていいことを増やす仕組みです。一度自分専用の近道を作ってしまえば、その後の作業はずっと楽になります。使い始めのうちから、少しずつ自分の近道を増やしていくのがおすすめです。