Windows Power Shell でエイリアス (Set-Alias, function)

Power Shell

Power Shell はWIndows標準の強力なコマンドラインインタフェース (CLI) です。従来のコマンドプロンプトから比べると、Power Shell は拡張性が高くLinux のターミナルのように扱うことができます。

エイリアス (Alias)

Linux を扱っていてエイリアスを利用したことがないというエンジニアはいないでしょう。最近では初期設定でエイリアスが設定されており、知らず知らずのうちに使っている方も多いです。
エイリアスとはコマンドに別名をつけることができる機能で、長いコマンドの入力を単語や短文などで書くことができます。もちろん Power Shell でもエイリアスが備わっています。

ssh コマンドのエイリアス

Power Shell のエイリアスは、

  1. Set-Alias を利用する方法
  2. function を利用する方法

の2つあります。例えば、

PS> ssh user@host

の場合は、Set-Alias が利用できますが、

PS> ssh -i hoge.pem user@host

のようにパラメータがある場合は function を利用します。具体的に見てみましょう。

プロファイルスクリプト

ここではエイリアスを永続的に利用するため、プロファイルスクリプトを作成しそこにエイリアスを記述します。
プロファイルスクリプトを作成するには、実行ポリシーを変更する必要があります。管理者権限で Power Shell を開き、次のコマンドを実行します。

PS> Set-ExecutionPolicy RemoteSigned -Force

次にプロファイルスクリプトを作成します。こちらはユーザ権限で大丈夫です。これをメモ帳で開いて編集しましょう。

PS> New-Item –type file –force $profile
PS> notepad $profile 

1. Set-Alias

一般的なエイリアスの書き方は次の通りです。

Set-Alias alias_test ssh user@xx.xx.xx.xx

上記を保存し、Power Shell を再起動してから「alias_test」を実行すると、sshで正常に接続することができます。
では、AWS EC2などに接続するときは pem ファイルをよく利用しますが、先ほどのコマンドに i オプションで
pem ファイルを指定するとどうなるでしょう。(注意: 下記コマンドはエラーが発生します)

Set-Alias alias_test ssh -i xxx.pem user@xx.xx.xx.xx 

すると次のようなエラーが発生します。

Set-Alias : パラメーター名 'i' があいまいなため、パラメーターを処理できません。一致する名前の候補は次のとおりです: -InformationAction -InformationVariable。

ではパラメータがあるときはどのように記述すればいいのでしょうか。そんなとき function を利用します。

2. function

先ほどのメモ帳に次のように function を指定します。

 function function_test() {
    ssh -i xxx.pem user@xx.xx.xx.xx
} 

上記を保存し、Power Shell を再起動してから「function_test」を実行すると、sshで正常に接続することができるようになるでしょう。

まとめ

Power Shell は非常に強力なコマンドラインインタフェースです。以前は ssh で接続するのに Tera Term などサードパーティ製ツールを利用していましたが、 Power Shell が出てきてからは専らこちらばかり利用しています。
そのエイリアスの記述方法は Linux と異なり覚えるのが大変ですが、一度書いてしまえばその後は非常に便利です。ぜひ Power Shell を敬遠せず、どんどん使ってください。