PowerShell Core入門 - 基本コマンドの使い方
PowerShellをインタラクティブシェルとして使う場合、コマンドやコマンドレットの入力をいかに短縮するかが操作効率化の要の一つとなる。その方法として、これまで2回に渡り、エイリアスを利用する方法を紹介した。エイリアスはコマンドやコマンドレットに別名を当てるものだ。より短い名前を割り当てれば、その分だけ入力を短くすることができる。
PowerShellのエイリアスは実にシンプルだが、効果的な機能だ。例えば、PowerShellからアプリケーションを起動する際、場合によっては長いパスを入力しなければならない。入力補完機能が動作するとはいえ、面倒な作業だ。しかし、エイリアスを設定しておけば短い入力でこれを実現することができる。
次のエイリアスは、Google Chromeに対して設定したものだ。この設定で「edge」というコマンド(エイリアス)でGoogle Chromeを起動することができるようになる。フルパスを入力する手間と比べれば雲泥の差だ。
Set-Alias -Name edge -Value "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
ただし、PowerShellのエイリアスは名前だけを置き換えるものだ。エイリアスにオプションを含ませたり、引数を持たせるといったことはできない。しかし、実際にはオプションや引数も含めて別のコマンド(エイリアス)に割り当てたい。そんな場合に使うのが、「関数」だ。
関数で入力をもっと簡単に
関数の使い方については、本連載でもかつて数回に渡って取り上げている。詳しくはそちらを見ていただくとして、本稿ではおさらい程度に使い方を説明しておく。簡単な関数の利用だけでも、インタラクティブシェルとしてのPowerShellの利便性を引き上げることができるはずだ。
LinuxやmacOSではエイリアスが最初から用意されていることが多い。LinuxやmacOSで使われるシェルのエイリアスは、オプションや引数も含めて設定できるため、任意の文字列を割り当てることができるのだが、PowerShellで同じことをするなら関数を使うことになる。
次の関数で、「ll」によって「Get-ChildItem -Force」を実行することができる。PowerShellのエイリアスにはオプションを含めることができないので、こうしたコマンドのエイリアス化を実現するには関数を使うしかないわけだ。
function ll {
Get-ChildItem -Force
}
次の例は「tree」というコマンドを実際には「wsl tree」で実行するためのものだ。Linux環境にインストールされているtreeコマンドを呼び出して使うことを意味する。
function tree {
wsl tree
}
これだけの簡単な関数だが、かなり便利になるはずだ。PowerShellに対する批判の一つにコマンドレットの名前の長さやオプションの長さから来る「覚えにくさ」がある。関数を使えば、これらを短い名前に置き換えることができる。
今回はもう一歩進んだ例として、パイプラインと連動する方法も取り上げておこう。LinuxやmacOSでよく使われるコマンドの一つに「grep」がある。全文検索のコマンドで、これを使うといろいろなデータ検索が可能になる。当然、Windows 10からもこのコマンドが使いたい。
次のような関数を用意しておけば、このgrepコマンドを使用できるようになる。
function grep {
$input | wsl grep $args
}
上記のような感じで関数を用意しておけば「ll | grep キーワード」のようにしてコマンドを実行することができるようになる。まるでmacOSやLinuxでコマンドを実行しているようだ。こうしたコマンドの短縮が可能になれば、PowerShellを使う際のストレスをかなり低減できるだろう。
PowerShellとWSLとのシームレスな連動は、半年または1年おきに提供されるフィーチャーアップデート版で随時改善が進む可能性があり、いずれは上記のような関数を使わずとも利用できるようになる可能性があるが、それまでは自分で関数を定義して使うことになりそうだ。
関数を使えば、もっと複雑な方法もいける
PowerShellの関数はそれだけで強力な機能だ。この機能をフルに発揮すれば、もっと複雑なことも可能になる。しかし、今回紹介したようなシンプルな使い方だけでもPowerShellをインタラクティブシェルとして使う際の作業効率を引き上げられる。使うと使わないのとでは、大きな違いがある。
PowerShellをインタラクティブシェルとして利用していく際のポイントは、使いながら細かくエイリアスや関数を調整していくことだ。便利だと思ったらすぐに追加し、使わないと思ったらサクッと削除するかコメントアウトしておく。こうした調整を繰り返していくことで、自分にとって使いやすいとインタラクティブシェルへ仕上げていくことができる。
※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。
連載目次
もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン
AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。
関連リンク
ダウンロードBOXに入れる
記事をダウンロードBOXに追加します。よろしいですか?
ブックマーク
記事をブックマークに追加します。よろしいですか?
-
[2021/03/05 08:00] サーバ/ストレージ
-
[2021/03/04 08:00] クラウド
-
$side_seminar_count = $i+1; ?>
-
2021年3月12日(金) 13:00 ~ 17:00 【第1部】13:00~13:50(基調講演) 【第2部】14:00~16:15 計12セッション 【ASK THE SPEAKER】16:30~17:00(講演者への質問コーナー)
KDDI SOLUTION DAY 2021 ~不確実性の高い時代のビジネス共創とDX~
$side_seminar_count = $i+1; ?>
-
2021年3月12日 金曜日 13:00 – 14:50
DXでさらに企業進化を AI+自動化でビジネスをパワーアップ
$side_seminar_count = $i+1; ?>
-
2021年3月15日(月)0:00~2021年3月31日(水)23:59
KDDI まとめてオフィスの学校向けオンラインセミナー ~これからの教育ICT推進に向けて~
$side_seminar_count = $i+1; ?>
-
2021年 3月 18日 (木) 13:00~18:20
マイナビニュース スペシャルセミナー 2021年の脅威に対峙する
$side_seminar_count = $i+1; ?>
-
2021年3月18日(木)15:00~16:00
5G時代のCDNに!コスト削減と顧客体験向上を両立させるCDNとは?
今注目のIT用語の意味を事典でチェック!