適用於windows10 Linux子系統的安裝管理配置 How To Management Windows Subsystem for Linux WSL


什么是WSL

  Windows Subsystem for Linux 簡稱WLS,適用於Linux的Windows子系統,可以直接在Windows上運行Linux環境(包括大部分命令行工具)

Linux containers與Windows Subsystem for Linux(WSL)區別

  此處以docker與wsl進行一些比較,主要為個人的理解之處。

  docker與wsl同樣運行在本機環境中運行,不依賴其他管理程序與虛擬化。
  docker與wsl同樣為應用容器。

安裝WSL

  在Windows10上,用於Linux的Windows子系,可運行受支持的Linux版本(例如Ubuntu,OpenSuse,Debian等),而無需設置操作系統的復雜性。虛擬機或其他計算機。

使用設置為Linux啟用Windows子系統

  1. 打開設置
  2. 點擊“應用”
  3. 在“相關設置”部分下,單擊“程序和功能”選項。

  1. 單擊左窗格中的“打開或關閉Windows功能”選項。

  1. 檢查Windows Subsystem for Linux選項。

完成這些步驟后,將配置該環境以下載並運行Windows 10上的Linux版本。

使用Microsoft Store安裝Linux發行版

要在Windows 10上安裝Linux發行版,請使用以下步驟:

打開Microsoft Store。搜索要安裝的Linux發行版。一些可用的發行版包括:

  1. 選擇要在您的設備上安裝的Linux發行版。
  2. 單擊獲取(或安裝)按鈕。
  3. Microsoft Store安裝Linux發行版
  4. 單擊啟動按鈕。為Linux發行版創建一個用戶名,然后按Enter鍵。
  5. 指定發行版的密碼,然后按Enter。
  6. 重復密碼,然后按Enter確認。

完成以上步驟后,即完成安裝了WLS(沒有圖形界面),在開始菜單 運行 wls 啟動。

離線安裝WLS

  官網指導手冊內包含所支持的Linux離線安裝包

這里下載的為Ubuntu 18.04,下載后,文件格式為appx格式,本次使用的操作系統為,windows1709企業版,並且卸載了所有的 UWP應用。因此只能使用命令行進行安裝。

非LTSC企業版或卸載windows store的可以直接雙擊安裝

  管理員打開Powershell 運行以下命令,將路徑替換為下載的離線安裝包路徑。本次安裝的wls默認安裝到C盤

Add-AppxPackage .\app_name.appx

查看已經安裝的子系統

wslconfig /l

安裝時選擇其他盤安裝

  1. 首先解壓.appx文件

  2. LxRunOffline安裝:

windows10 1803以上版本下載最新版即可,windows 1709及一下,可以安裝2.x版本。

  1. 使用以下命令安裝,-f后的文件為解壓后文件內根目錄的install.tar.gz

語法

LxRunOffline.exe install  -n <install systemname> -d <save path> -f <unzip_path/install.tar.gz>
LxRunOffline.exe install -n ubuntu -d d:\wls -f d:\Ubuntu_1804.2019.522.0_x64\install.tar.gz

等運行完成后(warning可忽略),開始 => 運行wls進入,進入后默認就是root用戶。另外開始菜單不會有單獨的啟動的圖標。

配置wsl與windows共用開發環境

  本次配置的開發環境為golang與goland,在windows下與linux下的環境開發與運行為相同的環境。其他的開發環境類似。

  因為wsl共享windows的路徑,可以再windows與linux安裝golang編譯器。並分別設置go env

windows

set GO111MODULE=on
set GOPATH=D:\go_work
set GOPROXY=https://goproxy.io,https://goproxy.cn,direct
set GOROOT=C:\Go

Linux,GOPATH要與windows設置為同一個路徑,這樣可以保證安裝的包為同一個。即實現了同一個開發環境與Linux環境。

export GO111MODULE=on
export GOPROXY=https://goproxy.io,https://goproxy.cn,direct
export GOROOT=/usr/local/go
export GOPATH=/mnt/d/go_work/
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

goland設置

file => setting => Tools => Terminal

C:\Windows\System32\wsl.exe

file => setting => Editor => Code Style

goland wls terminal .bashrc不生效

  在wsl中發現一些環境變量、shell顏色等都不生效。這里需要了解shell的類型

  shell有兩種類型,Login ShellNon Login Shell。每一個shell都有自己自定義的腳本來預設值shell運行的環境。

Login Shell

  當成功登陸用戶后,將創建登陸shell(通過ssh sudo 或者 terminal)

  查看當前shell是什么類型的shell echo $0

  • Login Shell:-bash或-su。
  • Non Login Shell: bash或su

Login shell 登陸后執行以下腳本:

登陸執行/etc/profile
/etc/profile執行/etc/profile.d中的所有腳本
然后執行用戶 ~/.bash_profile
~/.bash_profile 會有命令執行用戶目錄 ~/.bashrc
~/.bashrc中會執行 /etc/bashrc

Non Login Shell

  Non Login Shell是由Login Shell啟動的shell。例如,登陸成功后執行bash,此時是Non Login Shell

Non Login Shell登陸后執行以下腳本:

首先執行 ~/.bashrc
然后 ~/.bashrc 執行 /etc/bashrc
/etc/bashrc 調用 /etc/profile.d 中的腳本

  了解了執行順序后,按照步驟查看對應問題所在,此處問題沒有~/.bashrc中設置的alias和顏色。根據Login shell流程應為~/.bash_profile中去執行~/.bashrc,查看~/.bash_profile 發現文件為空。

  復制一份linux ~/.bash_profile 中的文件內容到對應的~/.bash_profile后發現功能已經正常實現。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM