在 Win10 中配置 Linux 開發環境

很多公司開發用的操作系統是 windows,但 windows 的終端實在難用。win10 發佈初期就集成了 linux 子系統,當時還是 beta 版,目前(2018-09-20,我當前 windows 版本號是 1803,操作系統版本是 17134.285)beta 標誌已經取消,這表明已經相對成熟了。

所以想試下 ubuntu 的終端,這樣就可以集成 oh-my-zsh 了(集成 oh-my-zsh 的終端超級好用啊,不管主題還是各種操作)。雖然初衷僅僅是想使用 ubuntu 的終端,但配置到後期發現完全可以將開發環境需要的軟件(比如前端使用的 node,npm 等等)安裝到 ubuntu 中,這樣在命令行中的開發體驗和直接使用 ubuntu 基本相同。從這方面講,windows 的開發體驗也不再那麼不堪。

相當於藉助 Ubuntu 的終端管理 windows 上的資源。

先上效果圖,下面介紹如何配置。

windows中linux終端

1. 配置 linux 的終端

這是最重要的一步,配置好終端,就成功了一半。

1.1 開啓適用於 Linux 的 Windows 子系統

1.1.1 前期工作

首先,win10 版本要 1709 以上。

然後前往 “啓用或關閉 Windows 功能”,將 “適用於 Linux 的 Windows 子系統” 打勾,重啓生效。

如何進入“啓用或關閉 Windows 功能”不同版本有差異,1803 是 “win + x” 選擇 “應用和功能”,點擊面板右側 “程序和功能”,然後在面板左側可以看到 “啓用或關閉 Windows 功能”。

1.1.2 安裝 linux

打開 “Microsoft Store” 搜索對應的 Linux 應用進行安裝,這裏我選擇的是 Ubuntu(沒寫版本號的 Ubuntu 安裝後查看版本號cat /etc/issue顯示爲 Ubuntu 18.04.1 LTS)。

安裝成功後無需重啓,點擊“開始”,搜索 “bash”,或者 “win + r” 輸入 “bash” 就可以啓動 Ubuntu 下的終端了。

1.2 配置 zsh

配合 zsh 可以擴展 Ubuntu 終端的功能,比如,歷史紀錄、tab 目錄選擇、git 別名、自動添加sudo等。

1.2.1 安裝 zsh

使用 ubuntu 的apt-get命令進行安裝。

sudo apt-get install zsh

通過zsh --version可查看是否安裝成功。

1.2.2 配置 zsh 爲默認終端

在用戶目錄~下找到.bash_profile,如果沒有就建一個,當然這是個隱藏的文件,需要ls -a來查看。打開它,然後在末尾加上:

exec zsh
source .zshrc

1.2.3 安裝 oh-my-zsh

zsh 配置本身很繁瑣,oh-my-zsh 可以更方便的管理 zsh 配置,集成了各種插件、主題。

通過下面命令進行安裝:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

1.2.3 激活/安裝插件

oh-my-zsh 插件分本身集成的插件(在目錄~/.oh-my-zsh/plugins下面)和需要自己下載的插件兩部分。

如果是本身繼承的,直接在~/.zshrc中激活就好:

# 將需要激活的插件名寫在小括號中
plugins=(git sudo)

如果是非本身集成的,除了需要在~/.zshrc中激活,還需要將插件下載到目錄~/.oh-my-zsh/custom/plugins下面

除了使用內置的 git 和 sudo,我還下載了 zsh-syntax-highlighting 和 zsh-autosuggestions:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

NOTE:

如果下載完第三方插件出現了權限問題,可以在.zshrc裏引入 oh-my-zsh 之前加入ZSH_DISABLE_COMPFIX=true解決:

# authority,在引入 oh-my-zsh 之前加入
ZSH_DISABLE_COMPFIX=true

# 這裏是引入 oh-my-zsh
source $ZSH/oh-my-zsh.sh

1.3 安裝 cmder

爲什麼還要安裝 cmder?上面配置完終端的字體還不好看,通過配置 cmder 可以使終端顯示的更漂亮。

具體安裝配置可參考這篇文章 cmder 安裝及配置,這裏需要說明的是怎麼配置 cmder 默認啓動 Ubuntu 終端:

通過 “win + alt + p” 打開設置,然後在 “startup” 中選中 “Command line” 添加參數%windir%\system32\bash.exe ~即可。

1.4 其他坑

  • 對於 Ubuntu 的終端來說,windows 的硬盤相當於掛載在 ubuntu 系統下,所以切換盤符時需要在前面加mnt,比如,從 C 盤切到 E 盤:
# 當前 C 盤,切到 E 盤
cd /mnt/e/
  • 在終端中使用代理

終端本身不走系統代理,如果想通過終端訪問牆外資源,在~/.zshrc中添加下面內容:

# proxy list
alias proxy='export http_proxy=socks5://127.0.0.1:1080; export https_proxy=socks5://127.0.0.1:1080'
alias unproxy='unset http_proxy; unset https_proxy'

通過在終端輸入命令proxy開啓代理,通過unproxy關閉代理。

我這裏使用了 shadowsocks,可以通過curl ip.cn命令判斷代理是否開啓。
  • 如果在 Ubuntu 中安裝了某個軟件不能正確執行,比如 npm,將 windows 上對應的軟件刪掉再試下。

2. 安裝開發軟件

其實和原生 Ubuntu 安裝軟件一致,這裏以安裝 node,npm,vue-cli 爲例介紹:

安裝之前可以先更新下包資源:sudo apt-get update

2.1 安裝 node

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

具體參考:install Ubuntu:Debian and Ubuntu based Linux distributions

2.2 安裝 npm 及其他 npm 包

npm 需要單獨安裝

sudo apt-get install npm

安裝其他 npm 包就是正常套路了,比如:

sudo npm i cnpm -g
cnpm i -g vue-cli

參考資料

WIN10 下搭建一個 linux 環境(ubuntu+cmder+oh-my-zsh)
Github:zsh-syntax-highlighting how to install
Mac OSX 終端走 shadowsocks 代理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章