PowerShellの設定
PowerShellの設定
WSLが使えない現場で、bashに似たコンソールはないかと調べてたらPowerShellに行き当たった。
コマンドプロンプトよりもかなり使いやすく、いじればbashにかなり近い使い方ができた。
今回は、そのPowerShellの設定方法をメモしておく。
実行ポリシーの変更
スクリプトなどを実行できるように、実行ポリシーの変更を行う。
管理者権限で実行する必要がある。管理者権限での呼び出し方はいくつかあるけど、ここでは以下の2つを示しておく。
監視者権限での実行(1)
- [Windows] + r
- 出てきた入力欄に
powershell
と入力する - Shift + Ctrl + Enterで実行
監視者権限での実行(2)
- [Windows] + x, a
実行スクリプト
# 初期ではRestrictedになっている。 > Get-ExecutionPolicy Restricted # 実行ポリシーを変更 > Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y > Get-ExecutionPolicy RemoteSigned > exit
余談だけど、ネットから落としてきたスクリプトなどなZoneID
が付与されて、ローカルのスクリプトと区別されるらしい。
https://www.atmarkit.co.jp/ait/articles/0805/16/news139.html
bashっぽくする
PowerShellの拡張機能を提供していたPSReadLineモジュールというのがある。
最近のPowerShellでは、このモジュールがバンドルされている。
このPSReadLineの設定をすることで、bashっぽい動作が可能になる。
# PSReadLineOptionにはEmacsというものがあるので、これを設定する > Set-PSReadLineOption -EditMode Emacs # C+iにTabの動作(Complete)を割り当てる > Set-PSReadLineKeyHandler Ctrl+i Complete
https://dev.classmethod.jp/articles/powershell-core-6-psreadline/
-EditMode
は、他にもviモードがあるらしい。
詳細は公式ドキュメント
Profileの設定
上でやったbashっぽくするフローでbashっぽく使えるようになったけど、毎回同じことをしないといけない。
なので、.bashrc/bash_profileみたいなやつを設定する。
そのために、 Microsoft.PowerShell_profile.ps1
というファイルを用意する
> New-Item -Path $profile -Type file -Force
用意した Microsoft.PowerShell_profile.ps1
というファイル編集する。
Set-PSReadLineOption -EditMode Emacs Set-PSReadLineKeyHandler Ctrl+i Complete # Prompt変更 # https://qiita.com/endo_hizumi/items/c5a44036227d1f408aa5 を参考 # llを作成 # http://suyamasoft.blue.coocan.jp/PowerShell/Tips/File/GetChildItem/index.html#GetChildItemwを参考
そもそもこのProfileの意味論的立ち位置がよくわかってないので、何を記載して何を記載すべきでないかもよくわかってない。
これでbashがなくてもそれっぽく使えるコンソール環境を手に入れた。
QOLがちょっぴり上がった。