クリエイター手抜きプロジェクト[628]シェル・コマンド編 MacにPowerShellを入れてみる
── 古籏一浩 ──

投稿:  著者:



今回は、MacにPowerShell(パワーシェル)を入れてみます。

PowerShellは、Windows 10には標準で入っているシェルの一つです。コマンドラインインターフェース(Windows TerminalやCommand)を使ってコマンドを入力し、Windowsを制御することができます。

PowerShellはWindows 7の頃からありましたが、思ったほど人気がなく、なかなか微妙な状態かもしれません。そのせいかマイクロソフト社は、Windows上でUNIX系のOSが動くように方針を変えてきています。





プログラム系でないと聞き慣れないかもしれませんが、WindowsでUNIX系OSなどを動かすための仕組みがWindows Sub Layer(WSL)というものです。仮想化技術を利用したもので、現在はさらに更新されWindows Sub Layer 2(WSL2)になっています。

ここらへんもCPUのパワーが上がり(コア数が増えた)、メモリも16GBや64GBなどたくさん搭載できるようになったので、実用レベルになったとも言えます。(15年くらい前だと、まあ何とか使えるかな程度でしたが)

WSLを使えばWindowsでLinuxなどが動かせます。Ubuntuのイメージデータはダウンロードできるので、それをインストールしてやればすぐに使うことができます。興味のある方はチャレンジしてみてください。

話がそれたので元に戻します。今回のチャレンジは、MacでPowerShellです。まあ、MacにPowerShellを入れる意味があるのか? というと凄い疑問符が付くのですが、ものは試しに入れてみます。

まず、以下のページにアクセスします。

https://github.com/PowerShell/PowerShell/releases/tag/v7.0.0


画面の下の方に行くと

powershell-7.0.0-osx-x64.pkg

というリンク文字があります。これをクリックします。ダウンロードが始まるので待ちます。ダウンロードが完了したら、ダブルクリックしてファイルを開きます。インストーラーが表示されますので、PowerShellをインストールします。なお、10.13以降のバージョンでないとインストールできません。

インストールされたPowerShellは、アプリケーションフォルダの中にあります。アプリケーション名は、そのままPowerShell.appです。ダブルクリックすると起動します。

PowerShellが起動すると、ターミナル.appも起動します。PowerShellはシェルなのでターミナル.app上で動作します。ターミナルで起動するシェルが標準のbash、zshでなくPowerShellになった、というだけです。

PowerShellの場合、プロンプト(入力できる行の一番左側に表示される文字)がPSになります。これでPowerShellが使えます。

せっかくのPowerShellなので、デスクトップにtestというフォルダを作って、その中に連番フォルダを作成してみます。

まず、デスクトップに移動します。フォルダに移動するには、Set-Locationコマンドを使います。以下のように途中まで入力します。~の後は半角バックスペースです。(メールマガジンの発行システムの都合で、円記号になっているかもしれません)

Set-Location ~\Desk

ここでタブキーを押します。以下のように自動的に補完され、フルパスに修正されます。dgcrはユーザー名です。

Set-Location /Users/dgcr/Desktop/

ここでリターンキーを押すと、デスクトップに移動します。次にtestフォルダを作成します。New-Itemコマンドを入力し、オプションのItemTypeでフォルダ(ディレクトリ)を指定します。以下のように入力すると、testフォルダが作成されます。

New-Item test -ItemType Directory

作成したらtestフォルダに移動します。Set-Locationを使えばよいのですが、こんな長い文字を入力するのは面倒です。都合のよいことに、UNIX系のシェルと同じように、cdコマンドがエイリアスで定義されています。つまり、以下のように入力するとtestフォルダに移動します。

cd test

1から10までの連番フォルダを作成する場合は、以下のように入力します。

1..10 | %{New-Item $_ -ItemType Directory}

1..10を0..10にすると、0から10までの連番ファイルが作成されます。それにしても、こんなに長いフォルダ作成コマンドを入力するのは大変です。補完機能があるにせよ面倒です。

それで、ここでもUNIX系のシェルと同じように、mkdirというフォルダ(ディレクトリ)を作成するコマンドが、エイリアスで定義されています。つまり、以下のように入力しても連番フォルダが作成されます。

1..10 | %{mkdir $_}

ここまでで、PowerShellがイマイチ使われないという理由も、分かってきた人もいるかもしれません。緊急時にこんな冗長なコマンドの入力では困ってしまいます。

が、もしかしたら何かメリットがあるかもしれないので、もう少しMacでPowerShellを探索してみようかなと思ってます。でもまあ、MacもCatalina以降はzshというシェルになっているので、そっちを勉強した方がメリットは大きいんじゃないかなと……。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


MacにPowerShellを入れる意味があるのか? というのは、MacはUNIX系OSで既にbash、zshなど多くのシェルが最初から入っていて、過去の資産(コードやノウハウ)もあり、さらにMacならではの機能も使えるからです。つまりよほどのメリットがないと、PowerShellを入れる必要がないということになります。

ただ、Windows 10の場合は、PowerShellが標準で入っているので、何か処理したいなら、やはりPowerShellに依存することになります。

正直なところ、PowerShell設計側の気持ちは分かるんだけど、使う側としてはいろいろ難しいなあと思います。オブジェクト指向でこうすればいいじゃん、ってのはわかるんですが……。

コマンド名があまりに冗長すぎる、というのもあります。なのでUNIXのシェル(sh, bash)と同じコマンド名のエイリアスを用意してあるのかもしれませんが……。

でもまあ、気に入らなければ自分でシェルを作るという方法もあります。「なければ作る」これぞプログラマーf(^^;


・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/