Windows(WSL2)でガンガンプログラミングをやっていくためのメモ

WSL2の出来が良いのでMacからWindowsに乗り換えた時、どう付き合ってゆくか(随時更新)

WSL2上の端末時刻がズレてる

どうやらサスペンドから復帰した時に正常に時刻同期が行われないようで、awsコマンドやTOTPでトークンをやり取りする系のコマンドが死ぬため少し困る。 /usr/sbin/hwclock -s で一発で解決できる。

.bashrcに仕込んでターミナル開いたタイミングで修正されるよう、sudo不要になるようにvisudoを変更
$ sudo visudo
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/hwclock -s #この行を追加
参考:https://qiita.com/whim0321/items/ed76b490daaec152dc69

※これは既知の問題として報告されており、Windows Insider Build版では2021/4月頃に修正されたようです。Stableに落ちてくればこの対応は要らなくなる
https://github.com/microsoft/WSL/issues/5324

WSLユーザーのホームディレクトリをWindowsユーザーのディレクトリに変更しても良い?

パッと見素晴らしいソリューションなのですが /mnt/ 以下のファイルはパーミッションの概念が無いため、 .ssh 等のパーミッションが居るファイルがディレクトリ配下に居ると死ぬので推奨できない。

IntelliJからターミナルをWSL2に変更したり、WSL上の実行環境でデバッグしたり

多分公式のヘルプが一番新しいです。めちゃ便利。
https://pleiades.io/help/idea/how-to-use-wsl-development-environment-in-product.html

/etc/hosts 打ちたい

PowerShellでWindowsのホストをnotepadで編集するエイリアスを組めばOK。
https://qiita.com/mu_sette/items/3954759daee8ae9ad26f

※WSLからvimで開きたい場合は /mnt/c/Windows/System32/drivers/etc/hosts にどこかでエイリアスを振ればOK
幸いhostsの構文は同じなので /etc/hosts がWindows上のhostsを見るようにしてもいいかも?