Windows Subsystem for Linux,WSL,也就是Windows Linux子系統,可以在windows内使用linux, 類似于一台Linux虛拟機,但是,這并非是真的Linux虛拟機。
微軟對于WSL的一些說明比如半角?号,在linux裡面作為文件名沒問題,但windows不行,告訴你說名稱不正确。另外,\/:?*<>|都不行。
大小寫問題
我在開發中就遇到過,因為windows不區分文件及目錄名稱大小寫,造成開發的服務器程序無法運行。有補救的辦法,但挺煩人的。如果你遇到了wsl大小寫問題,可以用下面的辦法來解決:
啟用NTFS區分大小寫功能
fsutil.exe file SetCaseSensitiveInfo 文件夾名稱 enable
fsutil.exe file SetCaseSensitiveInfo 文件夾名稱 disable
注意,必須在安裝WSL之後,上面的命令才會有作用!
奇怪的互操作問題你在windows裡面直接操作WSL創造的文件,然後再回去WSL操作時可能會出現奇怪的毛病!有時候明明文件删除了,但在Linux裡面還是無法創建同名的文件,在重啟電腦後又正常。
網絡不可靠WSL中的網絡還是通過Windows實現的, 這與真實的Linux虛拟機不同,也就是說,你在Windows裡面對于網絡的設置會影響到WSL,如果你在進行Linux方面的網絡編程,那麼可能會出現一些意想不到的怪異問題。
内存占用當你退出WSL中的應用程序以及Docker,這些占用的内存仍然會被WSL保留。你可以在PowerShell中通過
wsl --showdown
來完全關閉WSL,以便清空其占用内存。
總結如果你想要開發運行于Linux環境的應用程序、後台服務,那麼請不要使用WSL。有可能出現各種奇怪的問題,而這些問題在虛拟機的Linux裡面根本不會出現!雖然虛拟機的Linux塊頭大一點兒,多占用一些資源,但與真實的服務器環境99%的類似,除了物理位置不同之外,各種運行環境可以保持100%的一緻!看似一開始安裝虛拟機、配置會浪費一些時間,但其實在開發及部署的時候會更方便。
所以,請使用最接近生産環境的虛拟機Linux來進行軟件開發, 而不要使用windows的WSL。
WSL隻适合于用于非生産負載環境和一些快速簡單的任務。我個人在體驗過WSL沒多久就又回到了虛拟機的Linux環境,在VS Code中使用遠程管理服務器文件之後,一切就和本地開發啥區别了。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!