win11 系统环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境

快速在 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仓库。

相关推荐
小宇的天下6 分钟前
innovus Flip chip 产品设计方法(3)
数据库·windows·microsoft
GalenZhang88830 分钟前
使用 Python SDK 将数据写入飞书多维表格
数据库·python·飞书·多维表格
云和数据.ChenGuang33 分钟前
GaussDB 期末考试题与面试题
数据库·opengauss·gaussdb·数据库期末试题
不屈的铝合金36 分钟前
SQL 语言概述与数据库核心前置配置了解
数据库·sql·mysql·约束·sql 语句分类·字符集配置·校对规则
萧曵 丶36 分钟前
可重复读(Repeatable Read)隔离级别下幻读产生的原因
数据库·sql·mysql
TonyLee01743 分钟前
VSCode使用SSH FS插件进行远程连接(适配远程低版本系统)
ide·vscode·ssh
Antoine-zxt1 小时前
MySQL宕机日志迷局破解指南:从前台启动到精准排错
数据库·mysql·adb
松涛和鸣1 小时前
DAY47 FrameBuffer
c语言·数据库·单片机·sqlite·html
阳宗德1 小时前
基于CentOS Linux release 7.1实现了Oracle Database 11g R2 企业版容器化运行
linux·数据库·docker·oracle·centos
草莓熊Lotso1 小时前
脉脉独家【AI创作者xAMA】| 多维价值与深远影响
运维·服务器·数据库·人工智能·脉脉