配置適用於 Linux 的 Windows 子系統
很多公司開發用的作業系統是 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 上的資源。
先上效果圖,下面介紹如何配置。
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
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 配置本身很繁瑣, ofollow,noindex">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 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