現象
Windows PowerShellからsshで接続後、lsすると全く文字が見えない。
オプションで背景色や一部の文字色を変更可能だが、細かく設定できない上に
変更できない文字色がクソ配色なせいで、どんな色にしても何かの文字が見えなくなる。
解決方法
MicrosoftがPowerShellの色変更ツールを提供している。
GitHubからzipファイルがダウンロードできる。
zipの中身はexeファイルとschemesフォルダ(配色セットのファイルが格納されている)。
zipを適当な場所に解凍し、PowerShellで下記コマンドを実行。
$ .\path\to\ColorTool.exe -b campbell.ini
設定後の配色はこんな感じ。PowerShellウィンドウを閉じると、設定はクリアされるため注意。
永続化について
PowerShell起動時に実行されるファイル(.bashrcみたいなもの)で前述のコマンドを実行すれば
起動するたびに自動で設定反映することができる。
以下、作業手順。
-
起動時に実行されるファイルを調べる
下記コマンドで調べられる。$ $profile C:\Users\xxxxxxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
-
格納フォルダを作成
自分の環境にはWindowsPowerShellフォルダが存在しなかったため、フォルダを新規作成。 -
ps1ファイルを作成
ひとまず空のテキストファイルでMicrosoft.PowerShell_profile.ps1を作成。 -
ColorToolを配置
C:\Users\xxxxxxx\Documents\WindowsPowerShell\ColorTool\ColorTool.exe に配置。
schemesフォルダもzipの構成のまま配置した。
ColorToolはどこに置いてもよいが、ps1ファイルと一緒に置くのがよいと判断した。 -
ps1ファイルを記述
C:\Users\xxxxxxx\Documents\WindowsPowerShell\ColorTool\ColorTool.exe -b campbell.ini
-
ps1ファイルの実行権限を付ける
Linuxみたいにファイルに付けるのではなく、PowerShellがps1ファイルを実行する・しないを設定する。
管理者モードでPowerShellを起動し、下記コマンドを実行する。Set-ExecutionPolicy RemoteSigned
-
動作確認する
新たにPowerShellを起動し、ColorToolが自動で動けば成功。
フォルダ構成まとめ
C:\Users\xxxxxxx\Documents\WindowsPowerShell
├───Microsoft.PowerShell_profile.ps1
└───ColorTool
├───ColorTool.exe
└───schemes
├───campbell.ini
├─── :
├───