2026/10/19

AI 不會取代工程師,但工程師會淘汰工程師

AI 不會取代工程師,但工程師會淘汰工程師

我一直覺得,「AI 會不會取代工程師」根本就是一個假議題。

因為真正的問題不是 AI 能不能寫程式,而是當 AI 已經能夠完成大量的實作工作時,工程師剩下的價值是什麼?

我認為 AI 時代確實會淘汰一部分工程師,但不是因為 AI 直接取代了他們,而是那些更有創意、更懂得思考、更擅長利用 AI 的工程師,會逐漸拉開生產力差距,進而壓縮其他工程師的生存空間。

而且,這件事絕對不只發生在工程師身上。

AI 能給你答案,但你真的知道怎麼問嗎?

很多人認為,現在只要會使用 AI,即使沒有工程背景,也能開發軟體。

這句話不能說錯,但我認為它忽略了幾個很重要的問題。

首先,沒有足夠的工程背景與實務經驗,你可能連問題應該怎麼問都不知道。

你可以告訴 AI 想做什麼功能,它確實能幫你完成,但你未必知道需求背後有哪些隱藏問題、架構應該如何設計,以及哪些風險需要事先考慮。

其次,現在的 AI 已經很擅長反問使用者問題,也經常會提供不同選項讓你決定。

但問題來了:

AI 問你的問題,你真的看得懂嗎?

如果每次 AI 提供幾個方案,你都只能選擇它推薦的選項,那本質上你只是把決策權交給 AI。

而 AI 推薦的方案,不一定是最適合你的方案。

最後,也是我認為最關鍵的一點:

AI 在沒有特別要求的情況下,通常傾向提供一個可行解,而不一定是最佳解。

它可能成功完成了功能,卻沒有主動告訴你,其實還有更簡單的架構、更好的效能、更低的維護成本,甚至完全不同的解決方式。

這些可能性不是 AI 完全不知道,而是如果你沒有提出問題,它未必會主動探索。

而當你缺乏足夠的知識與經驗時,可能連自己錯過了更好的方案都不知道。

所以我認為,在 AI 時代,專業背景與經驗並沒有變得不重要。

恰恰相反,當取得答案越來越容易,知道該問什麼、如何判斷答案,反而變得更加珍貴。

AI 正在讓「做工」變得廉價

過去,一個工程師的價值,很大一部分來自實作能力。

熟悉多少程式語言、掌握多少框架、能多快完成需求、能解決多少 Bug,往往直接影響你的競爭力。

但 AI 正在快速降低這些工作的成本。

以前需要花幾天完成的功能,現在可能幾個小時就能做完。原本需要大量時間撰寫的測試、文件與重複性程式碼,也逐漸能交給 AI 處理。

這當然不代表工程基礎不重要,而是單純擁有執行能力,已經越來越難形成競爭優勢。

當大家都能透過 AI 快速完成工作,真正拉開差距的,就不再只是誰做得快,而是誰想得更好。

有些人使用 AI,只是把原本需要自己完成的工作交給 AI。

但另外一些人,會開始思考如何利用 AI 改變原本的工作方式,甚至重新設計整個流程。

前者只是提高執行效率,後者卻有機會改變整個團隊的生產力。

真正淘汰工程師的,可能是其他工程師

我認為 AI 時代一定會淘汰一部分工程師。

但我說的淘汰,不是 AI 直接取代某個人的工作,而是企業在計算成本與產出之後,發現已經不需要維持原本的人力規模。

假設一個團隊原本需要 10 位工程師才能完成工作。

當其中幾位工程師開始善用 AI,不只是加快開發速度,還能改善系統架構、建立自動化流程、減少重複工作,甚至讓同樣的問題不再發生。

企業就可能發現,原本需要 10 個人才能完成的事情,現在只需要 5 個人,而且品質可能更好、維護成本更低。

站在公司的角度,這就是很現實的成本問題。

企業不需要等到 AI 能夠完全取代工程師,才開始重新評估人力需求。

只要某些工程師能以更低的成本創造更高的價值,其他人的生存空間就可能受到壓縮。

當然,這不代表每家公司都一定會裁員。企業也可能選擇擴大產品開發、投入更多創新,或利用提高的生產力承接更多業務。

但無論企業選擇哪一條路,工程師之間的競爭標準都會改變。

未來真正有競爭力的,不一定是最會寫程式的人,而是最能利用技術與 AI 創造價值的人。

最危險的不是不會使用 AI,而是只有「做工思維」

我認為未來最容易失去競爭力的,就是那些墨守成規、不會舉一反三、缺乏主動思考的人。

即使他們學會使用 AI,也可能只是把原本的工作方式換成 AI 執行。

收到需求,就叫 AI 實作。

AI 完成功能,確認可以運作,就結束工作。

這確實提高了工作效率,但思維沒有任何改變。

相反地,真正有創造力的工程師,會持續思考:

  • 這個需求背後真正要解決的問題是什麼

  • 有沒有更簡單、更有效率的實作方式

  • 現在的架構是否還有改善空間

  • 能不能從根本解決問題,而不只是修正眼前的 Bug

  • 哪些流程可以自動化,甚至根本不需要存在

  • 這次累積的經驗,能不能讓整個團隊未來做得更好

兩種工程師可能都在使用相同的 AI 工具,但長期創造的價值完全不同。

而 AI 的存在,反而會放大這種差異。

因為過去即使你有很多改善的想法,也可能受限於時間、人力與開發成本,無法一一實現。

現在 AI 降低了實作成本,你有更多機會驗證想法、嘗試不同方案,甚至挑戰原本習以為常的工作方式。

AI 不只是讓你把事情做得更快,而是讓你有能力思考,事情是否根本可以用不同的方式完成。

我認為這才是 AI 真正能放大的價值。

未來珍貴的不是答案,而是判斷力與創造力

AI 正在讓取得答案的成本越來越低。

但答案容易取得,不代表每個人都知道答案是否正確,也不代表每個人都能判斷哪一個方案最適合當下的情境。

過去工程師可能因為熟悉某種技術、框架或工具而具有競爭優勢。

但未來,這些優勢可能會隨著 AI 能力提升而逐漸縮小。

我認為真正值得培養的,是幾種更根本的能力:

  • 問題洞察力:能看見表面需求背後真正需要解決的問題

  • 技術判斷力:能比較不同方案,理解其中的成本、風險與取捨

  • 系統性思考:不只處理眼前的事情,也能考慮整體架構與長期影響

  • 創造力:不滿足於既有答案,能提出其他人沒有想到的可能性

  • 持續改善能力:不只是完成任務,而是讓下一次做得更好、更有效率

而且我認為,有創意不等於一定要導入新技術、建立新架構,或不斷推翻既有做法。

有時候,最好的選擇反而是維持現狀,或使用最簡單的方法解決問題。

真正重要的是知道什麼值得改變、什麼不需要改變,以及為什麼。

再進一步說,未來厲害的人可能不只是很會問 AI 問題,而是懂得讓 AI 主動探索不同方案、驗證假設,甚至挑戰自己原本的想法。

不是讓 AI 代替自己思考,而是利用 AI 擴大自己能夠思考與探索的範圍。

這場改變,從來就不局限於工程師

其實以上所有觀點,都不只適用於軟體工程師。

不論你是設計師、行銷人員、產品經理、行政人員,還是從事其他工作,AI 都正在逐漸降低許多專業工作的執行門檻。

而我認為,這裡有一件事情非常重要:

技術與工具可能會過時,但思考問題的高度、判斷力、創造力,以及持續追求更好的態度,是可以跟著你走的。

今天你是一位工程師,明天可能轉職成產品經理、管理者,甚至自行創業。

你過去熟悉的程式語言與框架,不一定能直接應用在新的工作領域。

但如果你本來就是一個懂得發現問題、質疑現狀、舉一反三、主動尋找更好方法的人,這些能力並不會因為你轉換跑道就消失。

當然,換到新的領域仍然需要重新累積專業知識與經驗。

但有這種思考能力的人,往往更懂得如何學習、該問哪些問題,以及如何運用既有經驗找到新的可能性。

反過來說,如果一個人的價值完全建立在熟悉某套工具、某種流程,或只是按照指示完成工作,那麼當工具改變、流程被自動化時,原本的競爭優勢就可能迅速消失。

所以我認為,AI 時代真正值得投資的,不只是學會使用多少 AI 工具,而是培養一套能夠跨越產業、職業與技術變遷的思考能力。

不要只讓自己成為更有效率的執行者,而是要成為能夠持續發現問題、創造方法、改善現狀的人。

這樣的能力,即使有一天你不再從事原本的工作,依然能夠成為你的競爭優勢。

結語

我不認為 AI 會讓工程師這個職業消失,也不認為這場改變只會發生在軟體產業。

AI 正在重新分配不同能力的價值。

過去,掌握專業技術、熟悉工作流程、能夠有效率地完成任務,就能形成一定的競爭優勢。

但當 AI 讓執行工作的成本越來越低,企業自然會更加重視那些能夠提出更好方法、改善流程、降低成本,以及創造新價值的人。

所以未來真正值得擔心的,不是自己的職業會不會被 AI 取代。

而是:

當你原本擅長的事情,其他人也能透過 AI 輕易完成時,你還能創造什麼不同的價值?

我認為未來被拉開差距的,不只是會不會使用 AI 的人,而是有沒有持續思考、主動改善、追求更好的能力的人。

你可以學會一套新的工具,也可以換一個工作領域,但如果你的思維始終停留在被動接收指令、完成交辦事項,那麼不論轉換多少次跑道,都可能面臨相同的競爭問題。

相反地,只要你具備發現問題、獨立判斷、創造方法與持續改善的能力,即使產業改變、技術改變,甚至職業改變,這些能力依然有價值。

專業技能決定你現在能做什麼,思考能力與創造力則決定你未來還能走多遠。

因此,我認為未來工程師真正的競爭對手,不是 AI 本身,而是那些比自己更懂得利用 AI、持續思考、主動創造價值的其他工程師。

而這個道理,同樣適用於每一個職業。

AI 不會只淘汰某一種職業,而是會加速拉開「只會執行工作」與「能夠持續創造價值」的人之間的差距。

未來真正重要的,不只是你會做什麼,而是你能想到什麼、改善什麼,以及創造出什麼新的價值。

AI 不會取代工程師,但工程師會淘汰工程師

AI 不會取代工程師,但工程師會淘汰工程師

我一直覺得,「AI 會不會取代工程師」根本就是一個假議題。

因為真正的問題不是 AI 能不能寫程式,而是當 AI 已經能夠完成大量的實作工作時,工程師剩下的價值是什麼?

我認為 AI 時代確實會淘汰一部分工程師,但不是因為 AI 直接取代了他們,而是那些更有創意、更懂得思考、更擅長利用 AI 的工程師,會逐漸拉開生產力差距,進而壓縮其他工程師的生存空間。

而且,這件事絕對不只發生在工程師身上。

AI 能給你答案,但你真的知道怎麼問嗎?

很多人認為,現在只要會使用 AI,即使沒有工程背景,也能開發軟體。

這句話不能說錯,但我認為它忽略了幾個很重要的問題。

首先,沒有足夠的工程背景與實務經驗,你可能連問題應該怎麼問都不知道。

你可以告訴 AI 想做什麼功能,它確實能幫你完成,但你未必知道需求背後有哪些隱藏問題、架構應該如何設計,以及哪些風險需要事先考慮。

其次,現在的 AI 已經很擅長反問使用者問題,也經常會提供不同選項讓你決定。

但問題來了:

AI 問你的問題,你真的看得懂嗎?

如果每次 AI 提供幾個方案,你都只能選擇它推薦的選項,那本質上你只是把決策權交給 AI。

而 AI 推薦的方案,不一定是最適合你的方案。

最後,也是我認為最關鍵的一點:

AI 在沒有特別要求的情況下,通常傾向提供一個可行解,而不一定是最佳解。

它可能成功完成了功能,卻沒有主動告訴你,其實還有更簡單的架構、更好的效能、更低的維護成本,甚至完全不同的解決方式。

這些可能性不是 AI 完全不知道,而是如果你沒有提出問題,它未必會主動探索。

而當你缺乏足夠的知識與經驗時,可能連自己錯過了更好的方案都不知道。

所以我認為,在 AI 時代,專業背景與經驗並沒有變得不重要。

恰恰相反,當取得答案越來越容易,知道該問什麼、如何判斷答案,反而變得更加珍貴。

AI 正在讓「做工」變得廉價

過去,一個工程師的價值,很大一部分來自實作能力。

熟悉多少程式語言、掌握多少框架、能多快完成需求、能解決多少 Bug,往往直接影響你的競爭力。

但 AI 正在快速降低這些工作的成本。

以前需要花幾天完成的功能,現在可能幾個小時就能做完。原本需要大量時間撰寫的測試、文件與重複性程式碼,也逐漸能交給 AI 處理。

這當然不代表工程基礎不重要,而是單純擁有執行能力,已經越來越難形成競爭優勢。

當大家都能透過 AI 快速完成工作,真正拉開差距的,就不再只是誰做得快,而是誰想得更好。

有些人使用 AI,只是把原本需要自己完成的工作交給 AI。

但另外一些人,會開始思考如何利用 AI 改變原本的工作方式,甚至重新設計整個流程。

前者只是提高執行效率,後者卻有機會改變整個團隊的生產力。

真正淘汰工程師的,可能是其他工程師

我認為 AI 時代一定會淘汰一部分工程師。

但我說的淘汰,不是 AI 直接取代某個人的工作,而是企業在計算成本與產出之後,發現已經不需要維持原本的人力規模。

假設一個團隊原本需要 10 位工程師才能完成工作。

當其中幾位工程師開始善用 AI,不只是加快開發速度,還能改善系統架構、建立自動化流程、減少重複工作,甚至讓同樣的問題不再發生。

企業就可能發現,原本需要 10 個人才能完成的事情,現在只需要 5 個人,而且品質可能更好、維護成本更低。

站在公司的角度,這就是很現實的成本問題。

企業不需要等到 AI 能夠完全取代工程師,才開始重新評估人力需求。

只要某些工程師能以更低的成本創造更高的價值,其他人的生存空間就可能受到壓縮。

當然,這不代表每家公司都一定會裁員。企業也可能選擇擴大產品開發、投入更多創新,或利用提高的生產力承接更多業務。

但無論企業選擇哪一條路,工程師之間的競爭標準都會改變。

未來真正有競爭力的,不一定是最會寫程式的人,而是最能利用技術與 AI 創造價值的人。

最危險的不是不會使用 AI,而是只有「做工思維」

我認為未來最容易失去競爭力的,就是那些墨守成規、不會舉一反三、缺乏主動思考的人。

即使他們學會使用 AI,也可能只是把原本的工作方式換成 AI 執行。

收到需求,就叫 AI 實作。

AI 完成功能,確認可以運作,就結束工作。

這確實提高了工作效率,但思維沒有任何改變。

相反地,真正有創造力的工程師,會持續思考:

  • 這個需求背後真正要解決的問題是什麼

  • 有沒有更簡單、更有效率的實作方式

  • 現在的架構是否還有改善空間

  • 能不能從根本解決問題,而不只是修正眼前的 Bug

  • 哪些流程可以自動化,甚至根本不需要存在

  • 這次累積的經驗,能不能讓整個團隊未來做得更好

兩種工程師可能都在使用相同的 AI 工具,但長期創造的價值完全不同。

而 AI 的存在,反而會放大這種差異。

因為過去即使你有很多改善的想法,也可能受限於時間、人力與開發成本,無法一一實現。

現在 AI 降低了實作成本,你有更多機會驗證想法、嘗試不同方案,甚至挑戰原本習以為常的工作方式。

AI 不只是讓你把事情做得更快,而是讓你有能力思考,事情是否根本可以用不同的方式完成。

我認為這才是 AI 真正能放大的價值。

未來珍貴的不是答案,而是判斷力與創造力

AI 正在讓取得答案的成本越來越低。

但答案容易取得,不代表每個人都知道答案是否正確,也不代表每個人都能判斷哪一個方案最適合當下的情境。

過去工程師可能因為熟悉某種技術、框架或工具而具有競爭優勢。

但未來,這些優勢可能會隨著 AI 能力提升而逐漸縮小。

我認為真正值得培養的,是幾種更根本的能力:

  • 問題洞察力:能看見表面需求背後真正需要解決的問題

  • 技術判斷力:能比較不同方案,理解其中的成本、風險與取捨

  • 系統性思考:不只處理眼前的事情,也能考慮整體架構與長期影響

  • 創造力:不滿足於既有答案,能提出其他人沒有想到的可能性

  • 持續改善能力:不只是完成任務,而是讓下一次做得更好、更有效率

而且我認為,有創意不等於一定要導入新技術、建立新架構,或不斷推翻既有做法。

有時候,最好的選擇反而是維持現狀,或使用最簡單的方法解決問題。

真正重要的是知道什麼值得改變、什麼不需要改變,以及為什麼。

再進一步說,未來厲害的人可能不只是很會問 AI 問題,而是懂得讓 AI 主動探索不同方案、驗證假設,甚至挑戰自己原本的想法。

不是讓 AI 代替自己思考,而是利用 AI 擴大自己能夠思考與探索的範圍。

這場改變,從來就不局限於工程師

其實以上所有觀點,都不只適用於軟體工程師。

不論你是設計師、行銷人員、產品經理、行政人員,還是從事其他工作,AI 都正在逐漸降低許多專業工作的執行門檻。

而我認為,這裡有一件事情非常重要:

技術與工具可能會過時,但思考問題的高度、判斷力、創造力,以及持續追求更好的態度,是可以跟著你走的。

今天你是一位工程師,明天可能轉職成產品經理、管理者,甚至自行創業。

你過去熟悉的程式語言與框架,不一定能直接應用在新的工作領域。

但如果你本來就是一個懂得發現問題、質疑現狀、舉一反三、主動尋找更好方法的人,這些能力並不會因為你轉換跑道就消失。

當然,換到新的領域仍然需要重新累積專業知識與經驗。

但有這種思考能力的人,往往更懂得如何學習、該問哪些問題,以及如何運用既有經驗找到新的可能性。

反過來說,如果一個人的價值完全建立在熟悉某套工具、某種流程,或只是按照指示完成工作,那麼當工具改變、流程被自動化時,原本的競爭優勢就可能迅速消失。

所以我認為,AI 時代真正值得投資的,不只是學會使用多少 AI 工具,而是培養一套能夠跨越產業、職業與技術變遷的思考能力。

不要只讓自己成為更有效率的執行者,而是要成為能夠持續發現問題、創造方法、改善現狀的人。

這樣的能力,即使有一天你不再從事原本的工作,依然能夠成為你的競爭優勢。

結語

我不認為 AI 會讓工程師這個職業消失,也不認為這場改變只會發生在軟體產業。

AI 正在重新分配不同能力的價值。

過去,掌握專業技術、熟悉工作流程、能夠有效率地完成任務,就能形成一定的競爭優勢。

但當 AI 讓執行工作的成本越來越低,企業自然會更加重視那些能夠提出更好方法、改善流程、降低成本,以及創造新價值的人。

所以未來真正值得擔心的,不是自己的職業會不會被 AI 取代。

而是:

當你原本擅長的事情,其他人也能透過 AI 輕易完成時,你還能創造什麼不同的價值?

我認為未來被拉開差距的,不只是會不會使用 AI 的人,而是有沒有持續思考、主動改善、追求更好的能力的人。

你可以學會一套新的工具,也可以換一個工作領域,但如果你的思維始終停留在被動接收指令、完成交辦事項,那麼不論轉換多少次跑道,都可能面臨相同的競爭問題。

相反地,只要你具備發現問題、獨立判斷、創造方法與持續改善的能力,即使產業改變、技術改變,甚至職業改變,這些能力依然有價值。

專業技能決定你現在能做什麼,思考能力與創造力則決定你未來還能走多遠。

因此,我認為未來工程師真正的競爭對手,不是 AI 本身,而是那些比自己更懂得利用 AI、持續思考、主動創造價值的其他工程師。

而這個道理,同樣適用於每一個職業。

AI 不會只淘汰某一種職業,而是會加速拉開「只會執行工作」與「能夠持續創造價值」的人之間的差距。

未來真正重要的,不只是你會做什麼,而是你能想到什麼、改善什麼,以及創造出什麼新的價值。

2026/10/02

WSL 使用說明:基本指令

WSL(Windows Subsystem for Linux)讓 Windows 可以執行 Linux 終端機、套件與開發工具。本文先介紹日常基本操作,再說明如何將 WSL 2 發行版安裝到 D:\wsl,並自訂環境名稱。

文中的 dev、test 都是通用示範環境名稱,請依自己的環境替換。本文操作指令在 Windows PowerShell 執行。尚未安裝 WSL 的讀者,可以先閱讀第 3、4 節完成安裝,再回來練習。

1. Windows 端常用 WSL 指令

以下在 Windows PowerShell 執行。先用 wsl -l -v 查看已安裝環境,再將範例的 dev 換成清單中的名稱。使用 wsl -d dev 進入 Linux,輸入 exit 返回 PowerShell。

完整指令 簡寫 用途
wsl --help — 查看支援參數
wsl --version wsl -v 查看 WSL 程式與核心版本
wsl --status — 查看預設環境等狀態
wsl --list wsl -l 列出已安裝的發行版名稱
wsl --list --verbose wsl -l -v 列出已安裝發行版的名稱、狀態與 WSL 版本
wsl --list --online wsl -l -o 查詢可以安裝的發行版(distro)
wsl --list --running wsl -l --running 列出正在執行的環境;--running 沒有簡寫
wsl --list --quiet wsl -l -q 只輸出已安裝發行版的名稱
wsl --distribution dev wsl -d dev 進入 dev
wsl --distribution dev --cd '~' wsl -d dev --cd '~' 從 Linux 家目錄開始;--cd 沒有簡寫
wsl --distribution dev --user root wsl -d dev -u root 使用 root 進入 dev
wsl --set-default dev wsl -s dev 設定直接輸入 wsl 時使用 dev
wsl --terminate dev wsl -t dev 停止 dev 與其中的程序
wsl --shutdown — 停止所有環境及 WSL 2 虛擬機
wsl --update — 更新 WSL 本身

「—」表示沒有對應的短參數。簡寫與完整寫法可以混用,例如 wsl -l --running。

簡寫對照:-l 是 --list、-o 是 --online、-q 是 --quiet、-d 是 --distribution、-u 是 --user、-s 是 --set-default、-t 是 --terminate。

-v 的意思取決於使用位置: wsl -v 對應 wsl --version,查看 WSL 程式版本;wsl -l -v 中的 -v 對應 --verbose,顯示發行版的詳細清單。--version 2 在安裝或匯入命令中用來指定 WSL 2,應保留完整參數,不能直接替換成 -v 2。

清單的星號表示預設發行版。VERSION 2 是 WSL 2 架構,不是 Ubuntu 版本,也不是 wsl --version 顯示的程式版本。參考:Microsoft WSL 管理指令。

2. 理解環境名稱、儲存位置與 Linux 使用者

項目 範例 用途
Linux 發行版 Ubuntu-24.04 選擇安裝哪種 Linux
WSL 註冊名稱 dev、test Windows 啟動與管理環境時使用
儲存位置 D:\wsl\dev Linux 虛擬磁碟所在目錄
Linux 使用者 demo Linux 內的登入帳號

wsl -d dev 的 dev 是 WSL 註冊名稱,不是使用者。同一種 Ubuntu 可以建立成不同名稱的環境,各自保存套件與專案。

WSL 2 使用輕量虛擬機,各發行版通常以 ext4.vhdx 保存 Linux 檔案系統。Linux 家目錄中的專案、資料庫和套件,都會占用該磁碟檔案。移到 D 槽主要解決 Linux 資料的容量問題;WSL 程式、Windows 元件、暫存與預設 swap 仍可能使用 C 槽。

3. 首次啟用 WSL

尚未安裝 WSL 時,以系統管理員身分開啟 PowerShell:

# 只啟用 WSL,不先安裝預設 Ubuntu
wsl --install --no-distribution

依提示重新啟動 Windows,再執行:

wsl --update
wsl --version
wsl --set-default-version 2

已能使用 WSL 就跳過首次啟用。設定預設版本只影響新環境,不會轉換既有發行版。

請先執行 wsl --help,確認目前版本支援本文使用的參數。若缺少 --name、--location 等參數,請先更新 WSL;搬移與預設使用者設定也應依目前版本的 help 確認。

參考:Microsoft WSL 基本指令。

4. 安裝到 D:\wsl,並自訂名稱

以下在 Windows PowerShell 執行。

先查詢可安裝的發行版,使用清單中的 NAME:

wsl --list --online
# 等效簡寫:wsl -l -o

將 Ubuntu 安裝為 dev,放在 D:\wsl\dev:

mkdir 'D:\wsl'
wsl --install -d Ubuntu-24.04 --name dev --location 'D:\wsl\dev' --version 2
參數 說明
--distribution Ubuntu-24.04,簡寫 -d Ubuntu-24.04 要安裝的 Linux 發行版,依線上清單為準
–name dev 自訂 WSL 名稱為 dev
–location ‘D:\wsl\dev’ 指定儲存位置
–version 2 使用 WSL 2

取名字用 --name,指定位置用 --location。 不必先裝到 C 槽,再搬到 D 槽。

首次啟動依提示建立 Linux 使用者與密碼。輸入密碼時不顯示字元是正常的,Linux 帳密獨立於 Windows。若沒有自動啟動,可執行:

wsl -d dev

--location 見 Microsoft 安裝參數;--name 請依目前版本的 wsl --help 確認;Microsoft WSL 專案也有同時指定名稱與位置的範例。

建議每個環境使用獨立目錄,例如 D:\wsl\dev 與 D:\wsl\test。名稱必須未被使用,目標目錄應是新的或空的目錄,不能與既有環境共用磁碟檔案。名稱與目錄不必相同。

安裝指令中的 -d 是 --distribution 的簡寫。–install、–name、–location 沒有短參數;若要安裝後不自動啟動,可加上 --no-launch,簡寫為 -n。

確認結果:

wsl -l -v
Get-ChildItem -LiteralPath 'D:\wsl\dev' -Force

清單應出現 dev、版本為 2,目錄通常會有 ext4.vhdx。也可以唯讀查詢目前 Windows 使用者的名稱與實際位置:

Get-ChildItem 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss' |
    Get-ItemProperty |
    Select-Object DistributionName, BasePath

不需要手動修改登錄。

5. 已經裝在 C 槽,如何搬到 D 槽?

本節的 --export、–import、–unregister、–manage 與 --move 保留完整寫法,沒有對應的短參數。範例中的 wsl --terminate Ubuntu 可寫成 wsl -t Ubuntu,wsl -d Ubuntu 則是 wsl --distribution Ubuntu 的簡寫。

保留名稱:使用 --move

先確認 help 的 --manage 區段支援 --move。以下將 Ubuntu 移到新的 D:\wsl\ubuntu:

# 先儲存工作,停止會寫入環境的程式
wsl --terminate Ubuntu

# 建議先備份,確認 D 槽容量足夠
mkdir 'D:\wsl-backups'
wsl --export Ubuntu 'D:\wsl-backups\ubuntu-before-move.tar'

# 上一步成功後才繼續,使用未被占用的目標位置
wsl --manage Ubuntu --move 'D:\wsl\ubuntu'
wsl -d Ubuntu

搬移後仍叫 Ubuntu。用登錄查詢核對 BasePath,並確認專案、帳號與服務正常。搬移參數以目前版本的 help 為準。

同時換名字與位置:匯出再匯入

需要改名或不支援 --move 時,可以建立新環境。以下把 Ubuntu 複製為 ubuntu-dev,先保留舊環境:

mkdir 'D:\wsl-backups'
mkdir 'D:\wsl\ubuntu-dev'

# 先儲存工作、停止服務
wsl --terminate Ubuntu
wsl --export Ubuntu 'D:\wsl-backups\ubuntu.tar'

# 匯出成功後才繼續
wsl --import ubuntu-dev 'D:\wsl\ubuntu-dev' 'D:\wsl-backups\ubuntu.tar' --version 2
wsl -l -v
wsl -d ubuntu-dev

語法:

wsl --import <自訂名稱> <安裝位置> <備份檔案> --version 2

第一個參數決定名字,第二個決定位置。這是建立新的註冊環境,不是原地改名。舊環境、備份與新環境會同時占用空間;保留舊環境時,C 槽空間尚未釋放。

參考:Microsoft 匯入 Linux 發行版。

驗證後才移除舊環境

先確認新環境的專案、資料庫、使用者、權限與服務正常,並保留可還原備份。如果確定要移除舊 Ubuntu,才執行:

# 危險:永久刪除 Ubuntu 的 Linux 資料、套件與設定
wsl --unregister Ubuntu

unregister 不只是刪除清單上的名稱,也不是重新啟動指令。

6. 設定 WSL 預設使用者

匯入的環境可能預設以 root 啟動。如果該環境已有一般使用者,例如 demo,較新版本可用 WSL 管理指令指定預設帳號:

wsl --manage ubuntu-dev --set-default-user demo
wsl --terminate ubuntu-dev
wsl -d ubuntu-dev

--set-default-user 沒有短參數;範例中的 --terminate 可簡寫為 -t,-d 則是 --distribution。demo 必須是環境內已存在的帳號;這個指令只設定預設使用者,不會建立帳號。請先用 wsl --help 確認版本支援此參數。

7. 避免 C 槽變大,也要留意 swap

發行版與 swap 的位置分開設定。如果也要把 WSL 2 的 swap 放到 D 槽,在 PowerShell 執行:

mkdir 'D:\wsl-swap'
notepad "$env:USERPROFILE\.wslconfig"

加入或合併下列設定。已有 [wsl2] 時修改原區段:

[wsl2]
swap=4GB
swapFile=D:\\wsl-swap\\swap.vhdx

INI 路徑使用雙反斜線。4GB 是範例,依需求調整。儲存工作後執行:

wsl --shutdown

下次啟動套用設定。Windows 家目錄的 .wslconfig 對所有 WSL 2 環境生效;Linux 的 /etc/wsl.conf 只影響該發行版。參考:Microsoft .wslconfig 設定。

刪除環境內的資料後,VHDX 不一定立刻縮小。磁碟空間回收方式應依 WSL 版本確認,先備份再處理。參考:Microsoft WSL 磁碟空間管理。

Docker Desktop 自己管理的資料磁碟也需要另外確認位置,一般發行版搬移不代表 Docker Desktop 資料跟著搬移。

8. 常用操作速查

# 查看已安裝環境(--list --verbose 的簡寫)
wsl -l -v

# 進入指定環境(--distribution 的簡寫)
wsl -d dev

# 停止指定環境(--terminate 的簡寫)
wsl -t dev

# 新安裝:指定名稱與 D 槽位置
wsl --install -d Ubuntu-24.04 --name dev --location 'D:\wsl\dev' --version 2

先學會列出、進入與停止環境,再依用途規劃名稱與儲存位置,就能管理多個 Linux 開發環境。