win10下wsl2(Ubuntu)搭建及docker安裝、zsh&&cmder終端美化

1.前提條件

  • Windows 10 Build 18917或更新版本。
  • Hyper-V虛擬化。注:有些電腦需要進(jìn)BIOS開啟虛擬化,我公司的電腦就是。

2. 步驟

  • 啟用虛擬機(jī)平臺(tái)和 Linux 子系統(tǒng)功能
    使用管理員權(quán)限打開Windows PowerShell
    執(zhí)行以下命令啟用虛擬機(jī)平臺(tái):
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

根據(jù)提示確認(rèn)是否需要重啟,RestartNeeded : true 則重啟。
還是在Windows PowerShell
執(zhí)行以下命令啟用子系統(tǒng):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • 安裝發(fā)行版。
    打開微軟應(yīng)用商店,搜索Ubuntu安裝即可。
    Ubuntu應(yīng)用安裝后啟動(dòng)才會(huì)進(jìn)行子系統(tǒng)安裝。
  • 啟用 WSL2
    查看安裝的wsl
wsl -l -v

設(shè)置 Linux 發(fā)行版的 WSL 版本

wsl --set-version Ubuntu  2

轉(zhuǎn)換完成后可以再執(zhí)行wsl -l -v看看效果:

image.png

當(dāng)然,使用以下命令可以在以后安裝 Linux 的時(shí)候默認(rèn)啟用 WSL2:

wsl --set-default-version 2

設(shè)置Ubuntu默認(rèn)用戶為root

ubuntu config --default-user root

詳細(xì)步驟請(qǐng)轉(zhuǎn)https://blog.walterlv.com/post/how-to-install-wsl2.html

2.安裝docker

切換到root用戶,執(zhí)行以下4條命令即可。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
sudo usermod -aG docker $USER

安裝比較久,耐心一點(diǎn)。

3.美化終端

  • 安裝zsh
    兩個(gè)命令
sudo apt-get install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

在.bash_profile中啟用zsh,編輯文件,在末尾添加:

exec zsh
source .zshrc

進(jìn)入~/ .zshrc修改主題為```ys``

ZSH_THEME="ys" 
  • 安裝高亮和自動(dòng)補(bǔ)全命令的插件
// 自動(dòng)補(bǔ)齊和高亮插件
cd "$ZSH_CUSTOM/plugins"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
git clone https://github.com/zsh-users/zsh-autosuggestions.git
//然后對(duì)插件進(jìn)行加載
vim ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
  • 下載cmder

將下載好的cmder_mini.zip文件放到D盤并解壓,然后記住文件所在的位置,我的文件解壓到D:\Program Files\cmder_mini,然后復(fù)制路徑,右鍵點(diǎn)擊我的電腦--屬性--高級(jí)系統(tǒng)設(shè)置--環(huán)境變量--系統(tǒng)變量,點(diǎn)擊新建,變量名設(shè)置為:CMDER_HOME,變量值直接粘貼剛才拷貝的地址,然后點(diǎn)擊系統(tǒng)變量中的path,點(diǎn)擊新建,輸入%CMDER_HOME%,至此,環(huán)境變量配置完成,一路點(diǎn)擊確定關(guān)閉即可。

第二步添加 cmder 到右鍵菜單:環(huán)境變量添加后,在任意文件夾中即可打開Cmder,上一步的把 Cmder 加到環(huán)境變量就是為此服務(wù)的, win10系統(tǒng)下右鍵點(diǎn)擊開始(屏幕左下角的圖標(biāo)“田”),選擇Windows PowerShell(管理員),在管理員權(quán)限的終端輸入以下語句即可:

cmder.exe /REGISTER ALL

可以參考https://www.zhihu.com/collection/233457118
不給里面的cmder配置有問題,啟動(dòng)可以配置這個(gè)地址:

%windir%\system32\bash.exe ~ -c zsh -cur_console:p
image.png

可以自己設(shè)置下背景和透明度。
好了,不bb了,直接看效果:


image.png

4. vim配置

我的配置首先要安裝plug和ctags

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
sudo apt-get install ctags

以上命令執(zhí)行成功后先安裝vim插件,vim ~/.vimrc,然后配置

call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'ludovicchabant/vim-gutentags'
call plug#end()

保存退出,然后vim,執(zhí)行
:source ~/.vimrc #讓配置生效
:PlugInstall # 安裝插件
安裝完畢就在~/.vimrc直接貼上以下配置:

"使用此配置文件請(qǐng)先用以下命令安裝插件管理工具plug和ctags
"curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
"sudo apt-get install ctags
"plug插件安裝
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'ludovicchabant/vim-gutentags'
call plug#end()
"設(shè)置編碼
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
"顯示行號(hào)
set nu
"突出顯示當(dāng)前行
set cul
"突出顯示當(dāng)前列
"set cuc
"顯示括號(hào)匹配
set showmatch
"設(shè)置縮進(jìn)
"設(shè)置Tab長(zhǎng)度為4空格 
set tabstop=4 
"設(shè)置自動(dòng)縮進(jìn)長(zhǎng)度為4空格
set shiftwidth=4
"繼承前一行的縮進(jìn)方式,適用于多行注釋
set autoindent
"設(shè)置粘貼模式
set paste
"總是顯示狀態(tài)欄
set laststatus=2
"顯示光標(biāo)當(dāng)前位置
set ruler
"讓vimrc配置變更立即生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC

"----------------------gutentags相關(guān)配置-----------------------
"gutentags搜索工程目錄的標(biāo)志,碰到這些文件/目錄名就停止向上一級(jí)目錄遞歸
let g:gutentags_project_root = ['.root', '.svn', '.git', '.project']
"所生成的數(shù)據(jù)文件的名稱
let g:gutentags_ctags_tagfile = '.tags'
"將自動(dòng)生成的 tags 文件全部放入 ~/.cache/tags 目錄中,避免污染工程目錄
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
"檢測(cè) ~/.cache/tags 不存在就新建
if !isdirectory(s:vim_tags) 
    silent! call mkdir(s:vim_tags, 'p') 
endif
" 配置 ctags 的參數(shù)
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+pxI']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']

"---------------------NERDTree相關(guān)配置----------------------------
""將F1設(shè)置為開關(guān)NERDTree的快捷鍵
nnoremap <silent> <F1> :NERDTree<CR>
""修改樹的顯示圖標(biāo)
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
""窗口位置
let g:NERDTreeWinPos='left'
""窗口尺寸
let g:NERDTreeSize=30
""窗口是否顯示行號(hào)
let g:NERDTreeShowLineNumbers=1
""不顯示隱藏文件
let g:NERDTreeHidden=0
""打開vim時(shí)如果沒有文件自動(dòng)打開NERDTree
"autocmd vimenter * if !argc() | NERDTree | endif
""當(dāng)NERDTree為剩下的唯一窗口時(shí)自動(dòng)關(guān)閉
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
""打開vim時(shí)自動(dòng)打開NERDTree
autocmd vimenter * NERDTree
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
"PHP自動(dòng)補(bǔ)全
autocmd FileType php set omnifunc=phpcomplete#CompletePHP

效果:


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容