WSL で有効なコマンドの alias を巧く張る方法のメモ
↓こんな感じで alias を仕込むと WSL 環境でのみ alias を張れます:
if [[ $(grep -i Microsoft /proc/version) ]]; then alias code="/mnt/c/Users/usagi/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code" alias display.blank="/mnt/c/Windows/System32/scrnsave.scr /s" alias power.sleep="/mnt/c/Users/usagi/app/PSTools/psshutdown.exe -d -t 0 -accepteula" alias power.hibernate="/mnt/c/Windows/System32/shutdown.exe /h" alias power.reboot="/mnt/c/Windows/System32/shutdown.exe /r" alias power.logoff="/mnt/c/Windows/System32/shutdown.exe /l" alias power.shutdown="/mnt/c/Windows/System32/shutdown.exe /s" fi
↑の例では:
/proc/version
を見て WSL を判定して$HOME
の環境を複数のPC、異なるOSで共有している人には管理コストをひとまとめにして分岐を書くのも便利な方法の1つと思います
code
(VSCode)を host 側で起動する (ホストWindows環境のパスを継承する設定で使っている場合は要らないやつです)display.blank
はブランクスクリーンのスクリーンセーバーを起動する事で、画面を一時的にすべて黒くしたい時に使うコマンドです- note: 写真撮影するときに画面が映り込んだり色が狂うのが嫌な時に便利です
power.*
系のコマンドは電源制御のお馴染みのコマンド群です。寝る前はたいていpower.sleep
/proc/version
WSL だと↓のように microsoft
が入るので判定に使用できています:
Linux version 4.19.84-microsoft-standard (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Nov 13 11:44:37 UTC 2019
WSLの判定方法は他にも複数思いつきます。わりとなんでもよいと思います。