快速在 Win11 搭建一个 wsl 的 linux 环境,做开发的大佬们常用,平时服务器上就是用于生产环境,不太方便上去再搭建一个测试的程序,所以在本地搭建一个小型的 wsl linux 环境用于测试,如果大家是出于其他目的,可以参考其他内容。有需要交流的,欢迎私信交流。
安装 Ubuntu 我这里就不做流程日志, 安装这个特别轻松,可以在 微软应用商店( Microsoft Store)里面安装,也可以通过命令的方式安装。方法非常多,这个步骤就省下来了。
命令:
wsl --install -d Ubuntu
1
详细流程
我们安装好 WSL 的 Ubuntu 发行版的 Linux 后,我们需要输入用户名,以及密码
换国内镜像源
sudo vim /etc/apt/sources.list
1
贴入下面的镜像源:(清华源)网上也有很多源,华为、中科大, 等等…
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
然后保存;
如果不会使用 vim 也可以使用其他的编辑器,如果是使用vim ,不晓得怎么保存的话,可以输入 :wq!
退出之后,我们就要更新一下 :
sudo apt update
1
看到都更新了就代表换源成功了(通过链接查看,是不是从我们还源的地址获取的更新就知道了)
安装 ssh
由于之前已经更新过了:如果中途中断的话,还要再执行一遍 sudo apt-get update
如果没有中断的话,就直接执行下面的语句就行了。
sudo apt install openssh-server -y
1
安装完成之后重启一下:(正常情况下也不需要重启,但是有些个别情况,如果后面的流程走不通了。就回来重启一下再继续流程)
sudo service ssh restart
1
我们直接通过 ssh 来远程一下:工具有很多,我这里推荐使用 :vscode ,finalShell
如果是编码的话,就建议 vscode ,如果是运维就建议: finalShell (个人观点)
官网:
https://www.hostbuf.com/
1
下载之后就是安装,安装完成后就直接打开它,继续下面流程
点击左上角的文件夹图标
再点击 SSH 连接(Linux)
输入 Ip 地址、账号、密码
我们可以回到控制台输入 ip addr 再通过下面截图的地方,找到一个地址,我们连接这个地址就可以了
连上之后的情况就可以参考下图了。
这里再多介绍一个 使用 root 登录的流程
1、先进行 root 密码新增(新用户肯定没有,如果有的话,就不用这步骤)
sudo passwd root
1
修改ssh登录的配置, etc/ssh/sshd_config 文件,修改为允许root登录
看下图 ,将: #PermitRootLogin prohibit-password
这一行,改为 PermitRootLogin yes
修改成功后,我们重启ssh服务使刚才的ssh配置的修改生效
sudo service ssh restart
1
再通过下面命令可以测试登录
ssh root@localhost
1
桌面环境
安装 ubuntu-desktop
sudo apt install ubuntu-desktop -y
1
ubuntu-desktop 包含了 Ubuntu 桌面环境所需的所有组件,安装后系统会具备完整的桌面环境 (所以安装会很久:当然也看网速)
sudo apt install -y xrdp
1
xrdp 是一个开源的远程桌面协议(RDP)服务器, 有了这个,就能够通过 Windows 系统自带的远程桌面连接工具或者其他支持 RDP 协议的客户端来远程连接到 Ubuntu 系统。
sudo adduser xrdp ssl-cert
1
ssl-cert 用户组,用于管理 SSL 证书,把 xrdp 用户添加到这个组里,能让 xrdp 服务使用 SSL 证书来加密远程连接,增强连接的安全性。
sudo systemctl restart xrdp
1
需要重启服务使更改生效
主要是输入主机名:(其他看个人习惯,我是习惯都输入一样的)
输入用户名+密码,就可以了
python 环境
一般情况, wsl 的 Ubuntu(我测试过的18 、20 的 ubuntu 发行版)都是自带 Python3 的,所以直接在控制台输入 python3 就可以进入到 Python 程序里面了
我这里就是 python 3.12.3
如果 需要安装新的 python 环境可以继续下面流程(一般情况下自带的都够用,不过如果需要训练模型的话,就还需要安装指定的版本:先检查一下是否自带的就支持,如果支持就不用重复安装了)
安装 Python 3
sudo apt install python3
1
安装 Python 包管理工具 pip
sudo apt install python3-pip
1
安装完成后,通过下面命令可以验证 Python 和 pip 是否安装成功
python3 --version
pip3 --version
1
2
(部分有需要的情况也可以)创建虚拟环境
创建一个新的虚拟环境,下面命令中 myvenv 就是虚拟环境的名称,可以根据实际使用自己更换
python3 -m venv myvenv
1
激活虚拟环境
source myvenv/bin/activate
1
使用完成后,如果需要切换回去,可以退出环境使用下面命令
deactivate
1
vim 设置插件安装
插件需要科学上网:这里只是简单提一下命令,这个教程大家去网上多找找
sudo apt update
sudo apt install -y gdebi-core
sudo gdebi Clash.Verge_2.2.2_amd64.deb
1
2
3
配置之后:我们简单ping 测试一下啊
接下来就是正题:进入下载+安装+使用 vim-plug 的流程
执行下面命令 下载 vim-plug(其实就是一个文件,没有的话也可以私信不过后面安装插件一样要科学上网,如果没有的话就算安装了也还是不方便,不如其他的管理插件的工具)
curl -fLo ~/.vim/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
1
2
打开 Vim 的配置文件 ~/.vimrc
vim ~/.vimrc
1
把下面内容贴进去,我们安装一个文件浏览器的插件
call plug#begin(‘~/.vim/plugged’)
Plug ‘preservim/nerdtree’
call plug#end()
1
2
3
保存并退出 ~/.vimrc 文件(在 Vim 中输入 :wq)。
重新打开 Vim,然后在 Vim 命令模式下输入以下命令
:PlugInstall
1
这个命令是用来安装我们刚刚贴入的安装插件的代码,可以理解为 Vim 会自动下载并安装你在 ~/.vimrc 中定义的所有插件。
下图就是下载成功了。
然后我们在普通模式下,再输入下面代码
:NERDTree
1
不过输入这么长的代码会有些不方便,这里建议设置快捷键:
我们先退出当前窗口 :q 然后继续进入 vim ~/.vimrc
追加代码:
map :NERDTreeToggle
1
保存后退出,再使用 vim 进入目录,就可以通过 F2 来进行目录的打开和关闭了
下面我再贴一些,我平时喜欢用的
" 插件管理部分
call plug#begin(‘~/.vim/plugged’)
" 已安装的 NERDTree 插件
Plug ‘preservim/nerdtree’
" 括号匹配高亮插件 Vim-Rainbow
Plug ‘frazrepo/vim-rainbow’
" 代码注释插件 NERD Commenter
Plug ‘preservim/nerdcommenter’
" 模糊查找插件 fzf
Plug ‘junegunn/fzf’, { ‘do’: { -> fzf#install() } }
Plug ‘junegunn/fzf.vim’
" 版本控制插件 gitgutter
Plug ‘airblade/vim-gitgutter’
call plug#end()
" 快捷键设置部分
" NERDTree 快捷键
map :NERDTreeToggle
" Ctrl + S 保存文件
nnoremap :w
inoremap :wa
" Ctrl + W 退出 Vim
nnoremap :q
inoremap :q
" 设置行号
set number
" 设置鼠标
set mouse=a
" 普通模式下,输入 jj 进入插入模式
nmap jj i
" 插入模式下,输入 jj 退出插入模式
inoremap jj
" 设置 Leader 键为逗号
let mapleader = ‘,’
" NERD Commenter 快捷键
nmap cc NERDCommenterComment
nmap cn NERDCommenterUncomment
" fzf 命令快捷键
command! -bang -nargs=? FZF
\ call fzf#vim#files(, fzf#vim#with_preview({‘options’: ‘–reverse’}), 0)
" 其他常用快捷键
" 移动光标类
" 按单词移动
nmap w w
nmap e e
nmap b b
" 行内快速移动
nmap 0 0
nmap $ $
nmap ^ ^
" 文件内快速跳转
nmap gg gg
nmap G G
nmap (v:count == 0 ? ‘1’ : v:count) . ‘G’
" 文本操作类
" 复制粘贴
nmap yy yy
nmap (v:count == 0 ? ‘1’ : v:count) . ‘yy’
nmap p p
nmap P P
" 删除
nmap dd dd
nmap (v:count == 0 ? ‘1’ : v:count) . ‘dd’
nmap dw dw
" 撤销与恢复
nmap u u
nmap
" 字符操作
nmap r r
nmap ~ ~
" 缩进调整
nmap >> >>
nmap << <<
" 搜索替换类
nmap / /
nmap ? ?
nmap n n
nmap N N
nmap 😒 😒
nmap :%s :%s
" 插件配置部分
" Vim-Rainbow 配置
let g:rainbow_active = 1
" gitgutter 配置
let g:gitgutter_enabled = 1
————————————————
看起来你已经成功在Win11上搭建了一个WSL的Ubuntu环境,并且进行了一系列的优化配置和插件安装。教程非常详细,对于想要同样在Win11上搭建WSL环境的开发者来说非常有用。
不过,我还是想补充一些可能对你有用或者对其他读者有帮助的信息:
WSL环境的其他优化
内存和CPU分配:
WSL2引入了虚拟化技术,允许你为WSL分配更多的内存和CPU资源。你可以在Windows的功能选项中启用或禁用WSL2,并通过Windows的“任务管理器”或专门的虚拟化软件来管理分配给WSL的资源。
文件系统性能:
如果你经常需要在WSL和Windows之间传输大量文件,可能会发现文件系统性能是一个瓶颈。虽然WSL已经对文件系统访问进行了优化,但在某些情况下,使用如wsl --mount命令将特定的Windows目录挂载到WSL中可能会提高性能。
网络配置:
WSL默认使用Windows的网络配置,但在某些情况下,你可能需要为WSL配置特定的网络设置,如静态IP地址或代理服务器。这通常涉及到编辑WSL内的网络配置文件或使用Windows的“适用于Linux的Windows子系统设置”应用。
Vim插件的进一步探索
你已经安装并配置了一些非常有用的Vim插件,但Vim的插件生态系统非常丰富,还有很多其他值得探索的插件:
代码补全插件:
如YouCompleteMe、coc.nvim或nvim-cmp等插件可以提供强大的代码补全功能,大大提高你的编码效率。
语法检查插件:
ale、neomake或syntastic等插件可以在你编写代码时实时检查语法错误,并给出修改建议。
代码格式化插件:
prettier、clang-format等插件可以自动格式化你的代码,使其符合特定的编码风格。
终端插件:
如果你经常需要在Vim中使用终端,那么tmuxinator.vim、vim-slime等插件可能会对你有用。它们可以让你更方便地在Vim和终端之间切换和管理窗口。
其他开发工具推荐
除了VSCode和finalShell之外,还有一些其他的开发工具可能对你的开发工作有帮助:
Docker:
如果你需要在隔离的环境中运行和测试你的应用程序,那么Docker可能是一个不错的选择。你可以在WSL中安装Docker Desktop for Windows,并在其中运行Docker容器。
Kubernetes:
对于需要管理和协调多个容器化应用程序的开发者来说,Kubernetes是一个强大的工具。你可以在WSL中安装kubectl命令行工具来与Kubernetes集群进行交互。
Git:
虽然Git已经内置在WSL的Ubuntu发行版中,但你可以考虑安装一些Git图形化界面工具,如GitKraken、SourceTree等,以便更方便地管理你的Git仓库。