windows 10 中包含了乙個 wsl(windows subsystem for linux)子系統,我們可以在其中執行未經修改過的原生 linux elf 可執行檔案。利用它我們可以做很多事情,對開發人員和普通使用者都是如此。當然對開發人員的吸引力更大一些,因為這意味著在一些情況,不再需要使用 linux 虛擬機器、雙系統、cygwin/msys2 了。
在wsl裡我們可以直接訪問本地檔案系統,例如你電腦有3個分割槽c:,d:,e:,在wsl裡的路徑分別為/mnt/c,/mnt/d,/mnt/e
通常使用方法是:win + r 輸入 bash 直接進入,但系統自帶的bash使用體驗很差,主要有如下問題:
不能輸入中文
中文的檔名/目錄名會重疊或截斷
複製貼上麻煩
只支援16種顏色
可定製性差
目前比較好的替代方案是使用 wsl-terminal,它是專門為 wsl 準備的終端模擬器,主體是 mintty,另外整合了一些工具,使用起來非常方便,也是目前使用者體驗最好的,大小也只有 1m 多。
使用方法見官方主頁:
實現方面,它是由在 wsl 裡啟動 sshd,然後使用 ssh 客戶端登入的方法改進的。它的執行機制和 ssh 有很大的的區別。mintty 會執行 wslbridge,wslbridge 包含兩個程式,wslbridge.exe 和 wslbridge-backend。從檔名可以看出來,前者是 windows 程式,後者是 linux 程式。wslbridge.exe 會在乙個隱藏視窗執行 bash.exe 進入 wsl 環境,在其中執行相同目錄下的 wslbridge-backend。wslbridge.exe 和 wslbridge-backend 之間會建立三個 tcp 連線,也就是將 stdin、stdout、stderr 分別通過三個 tcp 連線聯絡起來,連線建立後就不再監聽任何埠了。而 mintty 就是乙個終端模擬器,對它來說 wslbridge 和 ssh 沒有什麼區別。
效能上,在我這裡用 wslbridge 和 ssh 執行命令的速度是差不多的,前者稍微快一點,不明顯。資源占用上,前者佔優。
使用的方便程度上,明顯 wslbridge 佔優。不再需要啟動 sshd,配置信任關係等。另外 wslbridge 會自動將當前路徑傳遞進去,不需要自己轉換路徑然後拼接 cd 命令,這樣方便了許多。而且可以直接通過引數傳遞環境變數。我之前寫的幾個指令碼減少了數十行。
推薦一款好用的WSL終端模擬器
windows 10 中包含了乙個 wsl windows subsystem for linux 子系統,我們可以在其中執行未經修改過的原生 linux elf 可執行檔案。利用它我們可以做很多事情,對開發人員和普通使用者都是如此。當然對開發人員的吸引力更大一些,因為這意味著在一些情況,不再需要使...
推薦一款超好用的工具cmder
一款windows環境下非常簡潔美觀易用的cmd替代者,它支援了大部分的linux命令。支援ssh連線linux,使用起來非常方便。比起cmd powershell conemu,其介面美觀簡潔,功能強大。下面來看看效果 上面演示了linux下的ls l vi,以及vi編輯中的刪除行,複製 貼上,跳...
推薦一款超好用的工具cmder
一款windows環境下非常簡潔美觀易用的cmd替代者,它支援了大部分的linux命令。支援ssh連線linux,使用起來非常方便。比起cmd powershell conemu,其介面美觀簡潔,功能強大。提取碼 0i7z 可以通過ctrl 滑鼠滾輪調整字型大小 以管理員身份開啟cmder.exe,...