將您的 JavaScript 開發遷移到 Windows 上的 Bash
已發表: 2022-03-10我是那些沒有 Bash 終端就活不下去的人之一。 這個唯一的事實使我很難在 Windows 上進行前端工作。 我在微軟工作,我在 Mac 上。 直到幾年前新的 Surface 硬件系列問世,我才意識到:我必須擁有其中一個。
所以我得到了一個。 確切地說,是運行 Windows 10 的 Surface Book 2。 我現在正在起草這篇文章。 我的甜美的 Bash 提示符呢? 嗯,當然是我隨身帶了。
在本文中,我將深入了解 Windows 10 中的新技術如何使您能夠在 Windows 上運行完整的 Linux 終端。 我還將向您展示我驚人的終端設置(被“我”稱為“有史以來最好的”)以及如何設置您自己的 Windows/Linux 開發機器。
如果您一直渴望某些 Surface 硬件,但又離不開 Linux 終端,那麼您來對地方了。
注意:在撰寫本文時,本文中的許多項目將要求您使用或切換到各種項目的“預覽”或“內部人員”版本,包括 Windows。 這些東西中的大部分將在未來的某個時候出現在主要的 Windows 版本中。
適用於 Linux 的 Windows 子系統 (WSL)
適用於 Linux 的 Windows 子系統或“WSL”使您能夠在 Windows 上運行 Linux。 但這種瘋狂的科學究竟是什麼?
WSL 目前的化身是將 Linux 系統調用轉換為 Windows 系統調用的轉換層。 Linux 在 WSL 之上運行。 這意味著為了在 Windows 上安裝 Linux,您需要做三件事:
- 啟用 WSL,
- 安裝Linux,
- 始終在列表中包含三個項目。
事實證明,翻譯層有點慢——有點像我試圖記住我是否需要splice
或slice
。 當 WSL 讀取和寫入文件系統時尤其如此。 這對 Web 開發人員來說是個大問題,因為任何正確的npm install
都會將數千個文件複製到您的機器上。 我的意思是,我不了解你,但我不會留下自己的弦樂。
WSL 的第 2 版是另一回事。 它比當前版本快得多,因為它利用了 Windows 中的虛擬化核心,而不是使用轉換層。 當我說它“相當快”時,我的意思是快得多。 像我一樣快谷歌搜索“拼接與切片”。
出於這個原因,我將展示如何安裝 WSL 2。在撰寫本文時,這將要求您使用 Windows 的“Insider”版本。
首先要做的事情:按照此簡短指南在 Windows 10 上啟用 WSL 並檢查您的 Windows 版本號。
安裝完成後,點擊 Windows 鍵並輸入“windows Insider”。 然後選擇“Windows Insider 程序設置”。
對於要使用的“環”,您將有幾個不同的選擇。 我認識的很多人都在快圈上。 不過,我是個謹慎的人。 當我還是個孩子的時候,我會在操場上滑下滑梯,肚子撐著兩邊。 這就是為什麼我留在慢環上。 我已經使用它幾個月了,我發現它並不比普通 Windows 更具破壞性或不穩定。
如果您想要 WSL 2,這是一個不錯的選擇,但您不想死在幻燈片上。
注意:發表這篇文章後,我了解到 WSL 2 實際上並不在慢環上。 您需要在快速環上才能獲得它。 在寫這篇文章的過程中,我一定在某個時刻處於快速狀態。 這麼快的鈴聲。 祝你在幻燈片上好運!
接下來,您需要在 Windows 中啟用“虛擬機平台”功能,這是 WSL 版本 2 所要求的。要進入此屏幕,請按 Windows 鍵並鍵入“windows features”。 然後選擇“打開或關閉 Windows 功能”。 選擇“虛擬機平台”。 “Linux 的 Windows 子系統”選項應該已經啟用。
現在 WSL 已啟用,您可以安裝 Linux。 具有諷刺意味的是,您直接從 Windows 應用商店執行此操作。 只有在 2019 年,我才會建議你“從 Windows 商店安裝 Linux”。
有幾種不同的發行版可供選擇,但 Ubuntu 將成為我們稍後將配置的所有工具(包括 VS Code)中最受支持的發行版。 從這裡開始的所有說明都假設安裝了 Ubuntu。 如果您安裝不同的發行版,則所有賭注都將取消。
從 Windows 應用商店搜索“Ubuntu”。 將有三個可供選擇:Ubuntu、Ubuntu 18.04 和 Ubuntu 16.04。 Ubuntu 真的很喜歡 04 次要版本號,不是嗎?
“Ubuntu” 發行版(此屏幕截圖中的第一個)是“元版本”,或者更確切地說是一個僅指向最新版本的佔位符。 截至目前,那是 18.04。
我選擇了元版本,因為稍後我將向您展示如何使用 Windows 資源管理器瀏覽 Linux 文件系統,將“Ubuntu 18.04”作為驅動器名稱與“Ubuntu”相比有點混亂。
此安裝速度非常快,具體取決於您的 Internet 連接。 它只有大約 215 兆字節,但我在這裡使用的是千兆連接,你怎麼知道有人在使用千兆連接? 別擔心,他們會告訴你的。
安裝後,您現在將在開始菜單中擁有一個“Ubuntu”應用程序。
如果你點擊它,你會得到一個 Bash 終端!
花點時間沉浸在科技的奇蹟中。
默認情況下,您將在 WSL 版本 1 中運行。要升級到版本 2,您需要打開 PowerShell 終端並運行命令。
點擊“Windows”鍵並輸入“Powershell”。
在 PowerShell 終端中,您可以通過執行wsl --list --verbose
查看您擁有的 WSL 版本。
如果您顯示的是版本 1,則需要執行--set-version
命令並指定實例的名稱 (Ubuntu) 和您想要的版本 (2)。
wsl --set-version Ubuntu 2
這將需要一些時間,具體取決於您的機器有多少肉。 我花了“幾分鐘”給予或接受。 完成後,您將使用最新最好的 WSL 版本。
在 Linux 上是你的大腦……在 Windows 上。
Linux 不是 Windows。 WSL 不是 Windows 操作系統之上的 bash 提示符。 它本身就是一個完整的操作系統,具有自己的文件夾結構和已安裝的應用程序。 如果您使用 Windows 安裝程序安裝 Node,在 Linux 中鍵入node
將失敗,因為 Node 未安裝在 Linux 中。 它安裝在 Windows 上。
然而,WSL 的真正魔力在於它無縫連接 Windows 和 Linux 的方式,以便它們在您的機器上顯示為一個文件系統。
文件和文件夾導航
默認情況下,Ubuntu 終端會將您放入 Linux 主目錄(或/home/your-user-name
)。 您可以轉到/mnt/c
移動到 Windows 端。
請注意,此處拒絕了某些權限。 我必須右鍵單擊 Ubuntu 圖標並單擊“以管理員身份運行”才能訪問這些文件。 這就是 Windows 提升權限的方式。 Windows 上沒有 sudo。
啟動應用程序
您可以從 Ubuntu 終端啟動任何 Windows 應用程序。 例如,我可以從 Unbuntu 終端打開 Windows Explorer。
這也適用於相反的情況。 您可以執行安裝在 Linux 端的任何應用程序。 在這裡,我正在從 Windows 命令行執行安裝在 Linux 中的“財富”。 (因為如果沒有隨機的、毫無意義的運氣,它就不是一個正確的 Linux 安裝。)
兩種不同的操作系統。 兩種不同的文件系統。 兩組不同的已安裝應用程序。 看看這怎麼會讓人困惑?
為了保持一切順利,我建議您將所有 JavaScript 開發文件和工具都安裝在 Linux 端。 也就是說,在 Windows 和 Linux 之間移動並從兩個系統訪問文件的能力是 WSL 的核心魔力。 不要忘記它,因為它使整個設置比標準的 Linux 機器更好。
設置您的開發環境
從現在開始,我將為您列出一些我認為在 Windows 上設置殺手級 Linux 的自以為是的項目。 請記住:我的意見就是這樣。 意見。 就像我所有的意見一樣,它們是 100% 正確的。
獲得更好的終端
是的,當你安裝 Ubuntu 時,你有一個終端。 它實際上是連接到您的 Linux 發行版的 Windows 控制台。 這不是一個糟糕的控制台。 您可以調整它的大小,打開復制/粘貼(在設置中)。 但是您不能執行選項卡或打開新窗口之類的操作。 就像很多人在 Mac 上使用替代終端程序(我使用 Hyper)一樣,Windows 也有其他選項。 Github 上的 Awesome WSL 列表包含一個非常詳盡的列表。
這些都是很好的模擬器,但是有一個新選項是由非常了解 Windows 的人構建的。
微軟一直在開發一個名為“Windows Terminal”的新應用程序。
Windows 終端可以從 Windows 應用商店安裝,目前處於預覽模式。 我已經使用了很長一段時間了,它有足夠的功能並且足夠穩定,足以讓我給它一個全力支持。
新的 Windows 終端具有完整的選項卡界面、複製/粘貼、多個配置文件、透明背景、背景圖像——甚至是透明背景圖像。 如果你想定制你的終端,這是一個野外日,我來贏得這場麻袋比賽。
這是我當前的終端。 我們將在這裡進行一些重要的調整。
Windows 終端是完全可定制的。 單擊左上角的“ ⌄ ”箭頭(“ + ”符號旁邊)可以訪問“設置”。 這將打開一個 JSON 文件。
綁定複製/粘貼
文件頂部是所有鍵綁定。 我做的第一件事是將“複製”映射到Ctrl + C並粘貼到Ctrl + V 。 我還要如何從 Stack Overflow 複製和粘貼我不理解的命令?
{ "command": "copy", "keys": ["ctrl+c"] }, { "command": "paste", "keys": ["ctrl+v"] },
問題是Ctrl + C已經映射到 SIGINT 或 Linux 上的 Interrupt/kill 命令。 有很多 Windows 終端可以通過將復制/粘貼分別映射到Ctrl + Shift + C和Ctrl + Shift + V來處理這個問題。 問題是複制/粘貼是Ctrl + C / Ctrl + V在 Windows 中每隔一個地方。 我只是在終端中一遍又一遍地按Ctrl + C試圖複製東西。 我無法停止這樣做。
Windows 終端以不同方式處理此問題。 如果突出顯示文本並按Ctrl + C ,它將復製文本。 如果有一個正在運行的進程,它仍然會向下發送 SIGINT 命令併中斷它。 這意味著您可以安全地將Ctrl + C / Ctrl + V映射到 Windows 終端中的複制/粘貼,並且不會干擾您中斷進程的能力。
誰想到復制/粘貼會引起如此多的心痛?
更改默認配置文件
默認配置文件是打開新選項卡時出現的內容。 默認情況下,這是 Powershell。 您需要向下滾動並找到 Linux 配置文件。 這是打開wsl.exe -d Ubuntu
的那個。 複製其 GUID 並將其粘貼到defaultProfile
設置中。
我已經移動了這兩個設置,因此它們彼此相鄰以便更容易查看:
設置背景
我喜歡我的背景是深色的純色,右上角有一個扁平的標誌。 我這樣做是因為我希望徽標明亮可見,但不妨礙文本。 這是我自己製作的,但在 Simple Desktops 中有大量平面圖像可供選擇。
背景是用backgroundImage
屬性設置的:
"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
您還會注意到一個名為“亞克力”的設置。 這使您可以調整背景的不透明度。 如果您有純色背景色,這非常簡單。
"background": "#336699", "useAcrylic": true, "acrylicOpacity": 0.5
您也可以通過將arcylicOpacity
設置與backgroundImageOpacity
相結合來使用背景圖像來實現這一點:
"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png", "useAcrylic": true, "acrylicOpacity": 0.5
對於我的主題,透明度使一切看起來都很安靜,所以我將useAcrylic
設置為false
。
更改字體
構建 Windows 終端的團隊也在開發一種名為“Cascadia Code”的新字體。 在撰寫本文時它不可用,因此您可以使用默認的 Windows 字體。
Windows 終端中的默認字體是“Consolas”。 這與 Windows 命令行使用的字體相同。 如果你想要真正的 Ubuntu 感覺,Chris Hoffman 指出瞭如何安裝官方的 Ubuntu Mono 字體。
這是之前和之後,因此您可以看到差異:
"fontFace": "Ubuntu Mono"
它們看起來很相似; 主要區別在於 Ubuntu Mono 的間距,這使得終端更加緊湊和清潔。
顏色方案
顏色方案都位於設置文件的底部。 我複制了“坎貝爾”配色方案作為基線。 我嘗試將顏色與他們的名字相匹配,但我也不怕流氓。 我會將“#ffffff”映射到“blue”——我什至不在乎。
如果你喜歡這個我命名為“地球”的特殊方案,我已經把這個要點放在一起,這樣你就不必從屏幕截圖中手動複製所有這些亂七八糟的東西。
注意:顏色預覽來自 VS Code 的“Color Highlight”擴展。
更改默認起始目錄
默認情況下,WSL 配置文件會將您放入 Windows 端的主目錄。 根據我在本文中推薦的設置,最好將其放到您的 Linux home
文件夾中。 為此,請更改“Ubuntu”配置文件中的startingDirectory
設置:
"startingDirectory": "\\\\wsl$\\Ubuntu\\home\\burkeholland"
注意那裡的路徑。 您可以使用此路徑(減去額外的轉義斜杠)從 Windows 命令行訪問 WSL。
安裝 Zsh/Oh-My-Zsh
如果您以前從未使用過 Zsh 和 Oh-My-Zsh,那麼您將獲得真正的享受。 Zsh(或“Z Shell”)是 Linux 的替代 shell。 它擴展了 Bash 的基本功能,包括隱含的目錄切換(無需鍵入cd
)、更好的主題支持、更好的提示等等。
要安裝 Zsh,請使用 apt 包管理器來獲取它,它隨 Linux 安裝開箱即用:
sudo apt install zsh
使用 curl 安裝 oh-my-zsh。 Oh-my-zsh 是一組 zsh 配置,可通過插件、主題和無數鍵盤快捷鍵進一步改善 shell 體驗。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
然後它會詢問您是否要將默認 shell 更改為 Zsh。 你這樣做了,所以回答是肯定的,你現在可以使用 Zsh 和 Oh-My-Zsh 運行。
您會注意到提示現在乾淨多了。 您可以通過更改~/.zshrc
文件中的主題來更改該提示的外觀。
用nano
打開它,有點像 VIM,但你可以編輯內容並在需要時退出。
nano ~/.zshrc
更改設置主題的行。 上面有一個帶有完整主題列表的 URL。 我認為“雲”那個很好。 而且很可愛。
要獲取對.zshrc
的更改,您需要獲取它:
source ~/.zshrc
注意:如果你選擇像“agnoster”這樣需要字形的主題,你需要一個電力線注入版本的 Ubuntu Mono,它有……字形。 否則,您的終端將充滿奇怪的字符,就像您在鍵盤上搗碎自己的臉一樣。 Nerd Fonts 提供了一種看起來效果很好的字體。
現在,您只需輸入目錄名稱即可執行更改目錄等操作。 無需cd
。 想備份目錄嗎? 做一個..
您甚至不必輸入整個目錄名稱,只需輸入前幾個字母並按 Tab。 Zsh 將為您提供與您的搜索匹配的所有文件/目錄的列表,您可以通過它們進行選項卡。
安裝節點
作為一名 Web 開發人員,您可能想要安裝 Node.js。 我想你不必安裝 Node 來進行 Web 開發,但在 2019 年感覺確實如此!
您的第一直覺可能是使用apt
安裝節點,您可以這樣做,但您會因為兩個原因而後悔:
- apt 上的 Node 版本已經過時了;
- 您應該使用版本管理器安裝 Node,以免遇到權限問題。
解決這兩個問題的最佳方法是安裝 nvm(節點版本管理器)。 因為你已經安裝了zsh
,你可以在你的 zshrc 文件中添加 nvm 插件,zsh 會處理剩下的事情。
首先,通過在zsh-nvm
庫中克隆來安裝插件。 (別擔心,Git 是 Ubuntu 安裝的標準配置。)
git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm
然後將其作為插件添加到~/.zshrc
文件中。
`nano ~/.zshrc` plugins (zsh-nvm git)
請記住使用source ~/.zshrc
.zshrc 再次獲取 zshrc 文件,您將看到 nvm 正在安裝。
現在您可以使用 nvm 安裝節點。 它可以輕鬆安裝多個並排版本的節點,並輕鬆地在它們之間切換。 此外,進行全局 npm 安裝時不會出現權限錯誤!
nvm install --lts
我推薦這個而不是標準的 nvm 安裝,因為該插件使您能夠輕鬆升級 nvm。 這對於標準的“curl”安裝來說是一種痛苦。 這是插件的一個命令。
nvm upgrade
利用自動建議
我最喜歡的 zsh 插件之一是 zsh-autosuggestions。 它會記住您之前在終端中輸入的內容,然後在您再次開始輸入時識別它們,並“自動建議”您可能需要的行。 這個插件派上用場的次數比我記得的要多——特別是當涉及到我過去使用過但不記得的長 CLI 命令時。
將 repo 克隆到 zsh 擴展文件夾中:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
然後將其添加到您的 zsh 插件並獲取 zshrc 文件:
nano ~/.zshrc # In the .zshrc file plugins(zsh-nvm zsh-autosuggestions git) source ~/.zshrc
該插件會讀取您的 zsh 歷史記錄,因此請開始輸入您之前輸入的一些命令並觀看魔術。 嘗試輸入上面那個長克隆命令的第一部分。
如果你點擊↹ ,它將自動完成命令。 如果您繼續按↹ ,它將循環遍歷您歷史記錄中可能匹配的任何命令。
重要的鍵盤快捷鍵
我一直在使用一些終端快捷方式。 我在我所有的工具中都發現了這一點——包括 VS Code。 試圖學習所有的快捷方式是浪費時間,因為你不會使用它們來記住它們。
以下是我經常使用的一些:
終端快捷方式 | 它有什麼作用? |
---|---|
Ctrl + L | 這將清除終端並讓您回到頂部。 這相當於輸入“clear”。 |
Ctrl + U | 這僅清除當前行。 |
Ctrl + A | 將光標發送到命令行的開頭。 |
Ctrl + E | 移動到行尾。 |
Ctrl + K | 刪除光標後的所有字符。 |
而已! 其他一切我可能已經學過然後忘記了,因為它從來沒有任何用處。
配置 Git(Hub/Lab/Whatevs)
Git 來自 Ubuntu,因此不需要安裝。 您可以按照您選擇的源代碼控制主機上的說明來創建您的 ssh 密鑰並使其正常工作。
請注意,在 Github 說明中,它告訴您使用“複製”實用程序來複製您的 ssh 密鑰。 Ubuntu 有“xcopy”命令,但它在這裡不起作用,因為就剪貼板而言,Linux 和 Windows 之間沒有互操作性。
相反,您可以只使用 Windows 剪貼板可執行文件並直接從終端調用它。 您需要先使用cat
獲取文本,然後將其通過管道傳輸到 Windows 剪貼板。
cat ~/.ssh/id_rsa.pub | clip.exe
Github 文檔告訴您確保ssh-agent
正在運行。 它不是。 當您嘗試將密鑰添加到代理時,您會看到:
您可以啟動代理,但下次重新啟動 Windows 或 WSL 停止時,您必須重新啟動它。 這是因為 WSL 中沒有初始化系統。 當 WSL 啟動時,沒有systemd
或其他進程會啟動您的所有服務。 WSL 仍處於預覽階段,團隊正在為此制定解決方案。
與此同時,不管你信不信,也有一個 zsh 插件。 它被稱為ssh-agent
,它與 oh-my-zsh 一起安裝,所以你需要做的就是在.zshrc
文件中引用它。
zsh-nvm zsh-autosuggestions ssh-agent git
如果您第一次啟動 WSL 時它沒有運行,這將自動啟動 ssh-agent。 不利的一面是,每次 WSL 重新啟動時,它都會詢問您的密碼。 這意味著基本上只要您重新啟動計算機。
VS 代碼和 WSL
WSL 沒有 GUI,因此您無法安裝 VS Code 之類的可視化工具。 這需要安裝在 Windows 端。 這會帶來一個問題,因為您有一個在 Windows 端運行的程序訪問 Linux 端的文件,這可能會導致各種怪癖和“權限被拒絕”問題。 作為一般經驗法則, Microsoft 建議您不要使用 Windows 程序更改 WSL 端的文件。
為了解決這個問題,VS Code 有一個名為“Remote WSL”的擴展。 此擴展由 Microsoft 製作,允許您在 WSL 中進行開發,但可以從 VS Code 內部進行。
安裝擴展後,您可以通過打開命令面板(
這會打開一個新的 VS Code 實例,讓您可以像完全在 Linux 方面一樣工作。 執行“文件/打開”瀏覽 Ubuntu 文件系統而不是 Windows 文件系統。
VS Code 中的集成終端打開您精美定制的 zsh 設置。 當您安裝了遠程 WSL 擴展時,一切都“正常工作”。
如果您使用 code 從終端打開code .
, VS Code 會自動檢測到它是從 WSL 打開的,並會自動附加遠程 WSL 擴展。
帶有遠程 WSL 的 VS 代碼擴展
VS Code 的遠程 WSL 擴展通過在 Linux 端設置一個小服務器,然後在 Windows 端從 VS Code 連接到該服務器來工作。 在這種情況下,當您從 WSL 打開項目時,您在 VS Code 中安裝的擴展不會自動顯示。
例如,我在 VS Code 中打開了一個 Vue 項目。 儘管我為語法高亮、格式化等安裝了所有正確的 Vue 擴展,但 VS Code 的行為就像以前從未見過.vue
文件一樣。
您已安裝的所有擴展都可以在 WSL 中啟用。 只需在 WSL 中找到您想要的擴展,然後單擊“Install in WSL”按鈕。
WSL 中安裝的所有擴展都將顯示在 Extensions Explorer 視圖中它們自己的部分中。 如果你有很多擴展,單獨安裝每個擴展可能會有點煩人。 如果您只想安裝 WSL 中的每個擴展,請單擊“本地 - 已安裝”部分頂部的小雲下載圖標。
如何設置你的開發目錄
這已經是一篇固執己見的文章,所以這是一篇關於我認為應該如何在文件系統上構建項目的你並沒有問到的文章。
我將所有項目都放在 Linux 端。 我不會將我的項目放在“我的文檔”中,然後嘗試從 WSL 中使用它們。 我的大腦處理不了。
我創建了一個名為/dev
的文件夾,我將它放在 Linux 中/home
文件夾的根目錄中。 在該文件夾中,我創建了另一個與我的 Github 存儲庫同名的文件夾: /burkeholland
。 該文件夾是我所有項目所在的位置——即使是那些未推送到 Github 的項目。
如果我從不同的 Github 帳戶(例如“microsoft”)克隆 repo,我將在“dev”中創建一個名為/microsoft
的新文件夾。 然後我將 repo 克隆到其中的一個文件夾中。
基本上,我在模仿與本地機器上的源代碼控制相同的結構。 我發現僅僅憑藉它們的位置來推斷項目在哪里以及它們附加到哪些存儲庫要容易得多。 這很簡單,但在幫助我保持一切井井有條方面非常有效。 我需要我能得到的所有幫助。
從 Windows 資源管理器瀏覽文件
有時您需要從 Windows 端獲取 Linux 中的文件。 WSL 的美妙之處在於您仍然可以做到這一點。
一種方法是像訪問映射驅動器一樣訪問 WSL。 直接從資源管理器欄中使用\\wsl$
訪問它:
\\wsl$
出於多種不同的原因,您可能會這樣做。 例如,就在今天,我需要一個不在網上商店中的 Chrome 擴展程序。 所以我在 WSL 中克隆了 repo,然後將它作為“解壓擴展”導航到它,並將其加載到 Edge 中。
我在 Linux 中經常做的一件事是直接從終端打開包含文件的目錄。 您也可以通過直接調用explorer.exe
在 WSL 中執行此操作。 例如,此命令在 Windows 資源管理器中打開當前目錄。
$ explorer.exe .
這個命令雖然有點麻煩。 在 Linux 上,它只是open .
. 我們可以通過在~/.zshrc
中創建別名來實現同樣的魔力。
alias open="explorer.exe"
碼頭工人
當我說所有工具都應該在 Linux 端時,我的意思是。 這包括 Docker。
這是橡膠真正開始與道路相遇的地方。 我們這裡需要的是 Docker,在 Linux 內部運行,在 Windows 內部運行。 當您在博客文章中寫下它時,它有點像俄羅斯嵌套娃娃。 實際上,這很簡單。
您需要適用於 Windows 的正確版本的 Docker。 在撰寫本文時,這就是 WSL 2 技術預覽版。
當您運行安裝程序時,它會詢問您是否要使用 Windows 容器而不是 Linux 容器。 你肯定會的。 否則,您將無法選擇在 WSL 中運行 Docker。
您現在可以通過單擊系統托盤中的項目並選擇“WSL 2 Tech Preview”來在 WSL 中啟用 Docker:
啟動服務後,您可以在 WSL 中使用 Docker,就像您期望的那樣。 在 WSL 中運行 Docker 提供了相當大的性能提升,以及容器冷啟動時間的提升。
我是否還建議您為 VS Code 安裝 Docker 擴展? 它為您的 Docker 設置提供了一個可視化界面,通常只是讓使用 Docker 變得更容易,因為您不必記住所有這些命令行標誌和選項。
在 Windows 上獲得更多 Bash
至此,您應該了解如何在 Windows 上安裝 Bash,以及在安裝後它是如何工作的。 您可以無休止地自定義終端,並且可以添加各種 rad 程序來執行諸如自動設置 PATH 變量、創建別名、在終端中獲取 ASCII 牛等操作。
在 Windows 上運行 Bash 為我打開了一個全新的世界。 我能夠將我喜歡用於生產力方面的 Windows 和我作為開發人員依賴的 Linux 結合起來。 最重要的是,我現在可以用一台機器為兩個平台構建應用程序。
延伸閱讀
您可以在此處閱讀有關 Windows 上的 Bash 的更多信息:
- “適用於 Windows 10 的 Linux 安裝指南的 Windows 子系統”,Microsoft Docs
- “如何在 Windows 10 上安裝和使用 Bash Shell”,Chris Hoffman,How-To Geek
- “與 WSL 共享 SSH”,Drew Wilson
- “讓 Linux 的 Window 子系統變得瘋狂”,Brian Ketelsen
- “使用 Windows 10 的新 Bash Shell 可以做的一切”,Chris Hoffman,How-To Geek
特別感謝 Brian Ketelsen、Matt Hernandez、Rich Turner 和 Craig Loewen 對本文的耐心、幫助和指導。