OS XでPowerShellを使うということ
Windowsではシステム管理を含む"高度な"処理が可能なPowerShellだが、OS Xではどうなのか。Macではどのように利用されるのか、実用性の観点からその機能を見てみよう。
対話的に処理を進めるCUIツール(シェル)としての役割だが、デフォルトで大量のエイリアスが定義されていることもあり、さほど苦労しないはず。bashのようにTABキーを使ったファイルやコマンドレットの入力補完も効くため、冗長な文字列を呻吟しながらタイプする必要はない。なお、外部コマンドをシームレスに利用できるWindows版同様、OS X版も/bin
や/usr/bin
にある(UNIX由来の)コマンドを実行できる。
接頭辞が「Get」で始まるコマンドレットは、システムや対象オブジェクトから情報を取得する機能を備える。カレントディレクトリのフルパスを取得する「Get-Location
」を実行すると、POSIXの流儀で「/Users/shinobu/Desktop
」などと返してくれるし、日付を取得する「Get-Date
」は「2016年8月23日火曜日 17:04:09
」のようにローカライズを行なう。実行中のプロセスを取得する「Get-Process
」も、OS Xに付属のpsコマンドとは書式が異なるものの、PIDやプロセス名を表示してくれた。なお、「Get-Command
」を実行すれば実行可能なコマンドレットを一覧できる。
UNIXシェルにないPowerShellの利点のひとつが、メソッドを利用できることだ。前述した「Get-Date
」でいえば「(Get-Date).AddDays(-1)
」とすると1日前の値を返してくれるし、「(Get-Date).AddMonths(-1)
」とすれば1ヵ月前だ。確かに、このような機能を使うスクリプトが多数あれば、他のプラットフォームで使いたくなる気持ちもわかる。
「Import-Csv
」もPowerShellらしいコマンドレットといえる。UNIX系OSにも、awkなどCSVをハンドリングできるコマンドはいくつか存在するが、このImport-Csv
は一見してわかりやすい。「Import-Csv ○○○.csv
」と実行するとCSVファイルを読み込めることはともかくとして、「Import-Csv SPEC.csv | Where-Object {$_.項目 -eq "OS"}
」などとしてWhere-Object
コマンドレットにパイプすれば、条件にあう行を抽出することなど朝飯前だ。
一方、WindowsでPowerShellの利用価値を高める要素となっているWMI(Windows Management Instrumentation)に関連したコマンドレットは、OS X版では利用できない。スクリプトの実行セキュリティポリシーや、システムを終了する「Stop-Computer
」や再起動する「Restart-Computer
」といった管理者権限が必要な機能は、基本的に実装されていないと考えていいだろう。OS Xには存在しないレジストリに関する機能も同様だ。
Microsoftの新時代に向けた取り組み
Windowsで作成したPowerShellスクリプトは、システムに依存する部分は動作しない可能性大だが、それでもif文やswitch文、論理演算など言語体系としてはほぼそのまま移植されている。.NET Frameworkが提供するクラスも利用でき、変数や型も.NETのものだ。根っからのOS Xユーザーには興味の薄い領分かもしれないが、Windowsで培ったノウハウを生かせるという意味だけでなく、Microsoftの新時代に向けた取り組みとして評価したい。

この連載の記事
-
第187回
iPhone
NFCの世界を一変させる!? iOS 11「Core NFC」の提供開始が意味するもの -
第186回
iPhone
Appleと「4K HDR」 - iOS 11で写真/動画を変える「HEIF」と「HEVC」 -
第185回
iPhone
iPhone 7搭載の「A10 Fusion」「W1」は何を変えるか -
第183回
iPhone
アップル製デバイス連携の鍵、「Continuity」とは? -
第182回
iPhone
DCI-P3準拠へと歩むiPhone/iPad - WWDC基調講演で秘められた新技術は、ここにある(2) -
第181回
iPhone
WWDC基調講演で秘められた新技術は、ここにある(1) -
第180回
iPhone
WWDC直前、買い替え前にマイMacのココをチェック -
第179回
iPhone
私がiTunesを使わなくなった5つの理由 -
第178回
iPhone
今あえてiPhone「Live Photos」を知る -
第177回
iPhone
「Windows Subsystem for Linux」はOS Xのライバルとなるか? - この連載の一覧へ