MacでPowerShellを使う

PowerShell 7
他に素晴らしいツールはたくさんあるだろうとは思うのですが、よほどの差がない限りは慣れたツールが一番良いんじゃないかと思いました






デフォルトの設定のままでターミナルを使ってました

貸与されたMacBook Proで開発を行うようになってしばらく経ちますが、その間ずっとデフォルト設定のままのターミナル(シェルはzsh)を使って作業をしていました。デフォルトのターミナルも使いづらくはないのですが(シンプルだし割と気に入ってます)、機能的には最低限です。めちゃくちゃ機能豊富でなくても良いけどもうちょっとだけ入力が楽になってほしい。

何か代わりのものをインストールしようかなと思ってMacで使えるオススメのターミナルで検索してみたこともあるのですけど、プロジェクトの性質上あんまり自由にアプリケーションをインストール出来ないんですよね。なので仕方なくデフォルトのターミナルを使い続けていたわけです。


で、あるときふと思ったんですよ。

PowerShell入れられないかな



アプリケーションを入れるってなると割と大ごとなんですけど(更新を制限されている領域が結構広い)、ターミナルで使うShellを変えるぐらいならたぶん大丈夫。







八木に電流走る



インストールと起動

というわけでこちらを参考にインストール。


macOS への PowerShell のインストール – PowerShell | Microsoft Learn


貸与PCへのインストールでは途中でパスワードの入力を求められましたが、ログインパスワードでクリアでき(改変箇所によっては管理者権限が必要になる)、無事インストールが完了しました。PowerShellの使用法はターミナルを立ち上げて、


$ pwsh


と打ち込んでシェルを切り替えるだけ。


PowerShellっていつの間にかオープンソースになってたんですね。素敵。しかもWindowsでもLinuxでもmacOSでも動きます。なんかMicrosoft製とは思えない。Microsoftも変わったなあ……



PowerShellのどこが気に入っているのか?

「もうちょっとだけ入力が楽になってほしい」と書いたとおり、PowerShellで一番気に入っていることは入力中に履歴を検索して補完してくれるところです。



PowerShell https://learn.microsoft.com/ja-jp/powershell/scripting/learn/shell/using-predictors?view=powershell-7.3



これをうるさいと感じる人は上級者を中心に少なくないだろうとは思いますが、長いコマンドや長いパスを入力するときにこの補完が動いてくれるとものすごく便利なのです。ターミナル立ち上げてプロジェクトディレクトリに移動するとか、Dockerコンテナにオプション付きで入るとか、そういういつもやってることをやる時にすごくありがたい。

同じようなことが出来るアプリケーションは他にもあるだろうとは思うんですけど、現時点ではこれに一番慣れているので今のところはこれで満足しています。



おまけ:macOSで検索結果を遡るには?

Windowsでは入力した文字による検索結果を、F8 キーで遡っていくことが出来ます。でもmacOSの場合できません。F8 を推しても全然何も起こらない。

macOSでは他のキーに割り当てられてるのかなと思って色々調べてみたんですけどわからなくて、半ば諦めていましたが、こちらの情報によると自分で設定してやれば例えば で検索候補を移動出来るようになるらしいです。


Add this to your ~/.inputrc:

# ↑
"\e[A":history-search-backward
# ↓
"\e[B":history-search-forward 
# Try to stay at the same the cursor position when moving through the history.
set history-preserve-point on

The way this operation works is you first type your partial command prefix and begin pressing and arrows to begin cycling in reverse and forward respectively through the command history matches to your typed prefix.

terminal – Mac Equivalent to Windows CMD f8 – Ask Different


この記事をWindowsで書いている時に見つけたのでまだ試していないのですが、そのうち試してみます。これが出来るようになったら(個人的に)最強だなあ。