很多公司開發用的操作系統是 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
使用 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 代理