本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「PowerShellを”いい子”にして、WSLから”推し変”した」を再編集したものです。
WSLを使ってCドライブ上のファイルを実行するとどうしても遅くなってしまうことを知り、PowerShellに”推し変”しようと決意しました。とはいえ、デフォルトのPowerShellは個人的には使いづらく感じてしまい推せる気がしなかったので、PowerShellを自分好みの”いい子”にして推す方法を選びました。
目次
想定している対象読者
とりあえず環境構築
PowerShell再起動後、”このシステムではスクリプトの実行が無効になっているため、…”と出る場合
インストールしたツールの紹介
Windows Terminal
gsudo
vim
PowerLine
設定した内容の紹介
Ctrl+dでExit
bash風tab補完
蛇足
想定している対象読者
・WSLと最近うまくいっていない方
・PowerShellと仲良くなれない方
・PowerShellと仲は良いけど、もっと仲良くなりたい方
とりあえず環境構築
1.Windows Terminalのインストール
インストールはこちらから
2.必要なフォントのインストール
こちらからCascadia Code PLまたはCascadia Mono PLをインストールして、Windows Terminalのフォントとして設定する必要があります。設定はWindows Terminalを起動して「⋁」の部分をクリックした後、「設定」をクリックするとエディタが起動するのでこちらから設定します。
3.下記コマンドをPowerShellで実行
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') # scoop のインストール
scoop install git # git のインストール
scoop install gsudo # gsudo のインストール
scoop install vim # vim のインストール
# PowerLineのインストール
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
4.$PROFILE.CurrentUserAllHosts(おそらくC:\Users\{{ ユーザー名 }}\Documents\WindowsPowerShell\profile.ps1)に下記を追記
# Ctrl + d で Exit
Import-Module PSReadLine
Set-PSReadlineKeyHandler -Key ctrl+d -Function DeleteCharOrExit
# bash風のtab補完
Set-PSReadLineKeyHandler -Key Tab -Function Complete
# PowerShellでPowerLineを適用するための設定
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
5.Windows Terminalを起動or再起動
PowerShell再起動後、”このシステムではスクリプトの実行が無効になっているため、…”と出る場合
自分はWindows Terminal起動後に下記のエラーが出ました。
. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\{{ ユーザー名 }}\Documents\WindowsPowerShell\profile.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:3
+ . 'C:\Users\{{ ユーザー名 }}\Documents\WindowsPowerShell\profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
これはPowerShellの実行ポリシーに起因するエラーらしいです。(詳しく知りたい人はググって下さい…)
実行ポリシーを変更することで解決するので、下記コマンドを実行しました。
gsudo PowerShell Set-ExecutionPolicy RemoteSigned
インストールしたツールの紹介
Windows Terminal
タブを複製でき、PowerShellは勿論のこと、コマンドプロンプトもWSLも扱える便利な便利なターミナルソフト。UIも良くて好き。
Ctrl+tabでタブ移動、Ctrl+Shift+Tで新規タブを開く、といったキーボードショートカットもあって優秀。
gsudo
管理者権限でコマンドを実行するコマンド。UNIXのコマンドでいうsudoとsuを混ぜた感じ。使い方は下記。
gsudo # sudo su と同等
gsudo {{ コマンド }} # sudo {{ コマンド }} と同等
vim
言わずと知れたエディタ。管理者権限でファイルをいじるときに、CLIで使えるエディタがあると便利だと思ったのでインストール。emacsやほかのエディタでもいいと思うけど、僕はvim派なのでvimをインストールしました。
ちなみに.vimrcは$VIM(おそらくC:\Users\{{ ユーザー名 }}\)配下に格納すれば設定が反映されます。
PowerLine
ターミナルの表示をかっちょよくするやつ。実際に入れると下記画像みたいにディレクトリ・gitのブランチを表示して、改行されたところからコマンドを打つ感じになります。
設定した内容の紹介
Ctrl+dでExit
ExitできるキーバインドがあるとPowershell終了するときやgsudoで管理者権限になった後に抜けるときにも便利だと思ったので設定しました。Ctrl+dなのはLinux系でこのキーバインドだからです。
bash風tab補完
PowerShellのtab補完が苦手なのでbash風のtab補完にしました。ここは慣れてる補完を使ったほうが良いと思うので、好みに合わせたほうが良いと思います。ちなみにzsh風にするには下記のように記載します。
# zsh風のtab補完
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
蛇足
人生で初めて推し変をして、下2つのことを痛感しました。
・推し変するに至るまでには色々な葛藤がある
・未練があると推し変をした後でも推しのことを考えてしまう
こんな思いはもう2度としたくないので、推し変するかもしれないような存在を推すことはせず、今の推しを全力で推そうと改めて思いました。
三上 柊悟/FIXER
cloud.config Div所属の三上 柊悟です。好きな食べ物はメロンパンです。