在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装

news2025/4/2 5:54:54

在win11 环境下 新安装 WSL ubuntu + ssh + gnome 桌面环境 + Pyhton 环境 + vim 设置插件安装

  • 简单介绍
  • 详细流程
    • 换国内镜像源
    • 安装 ssh
  • 桌面环境
  • python 环境
  • vim 设置插件安装

简单介绍

内容有点长,这里就先简单描述内容了。主要是快速在 Win11 搭建一个 wsl 的 linux 环境,因为自己是做开发的,平时服务器上就是用于生产环境,不太方便上去再搭建一个测试的程序,所以在本地搭建一个小型的 wsl linux 环境用于测试,如果大家是出于其他目的,可以参考其他内容。有需要交流的,欢迎私信交流。

安装 Ubuntu 我这里就不做流程日志, 安装这个特别轻松,可以在 微软应用商店( Microsoft Store)里面安装,也可以通过命令的方式安装。方法非常多,这个步骤就省下来了。

在这里插入图片描述
截图省下来,命令我还是贴一下:(主要是方便自己也是方便需要的人)

wsl --install -d Ubuntu

详细流程

我们安装好 WSL 的 Ubuntu 发行版的 Linux 后,我们需要输入用户名,以及密码
如下图:

在这里插入图片描述

换国内镜像源

sudo vim /etc/apt/sources.list

在这里插入图片描述
贴入下面的镜像源:(清华源)网上也有很多源,华为、中科大, 等等…

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

在这里插入图片描述

看到都更新了就代表换源成功了(通过链接查看,是不是从我们还源的地址获取的更新就知道了)

安装 ssh

由于之前已经更新过了:如果中途中断的话,还要再执行一遍 sudo apt-get update

如果没有中断的话,就直接执行下面的语句就行了。

sudo apt install openssh-server -y

安装完成之后重启一下:(正常情况下也不需要重启,但是有些个别情况,如果后面的流程走不通了。就回来重启一下再继续流程)

sudo service ssh restart

我们直接通过 ssh 来远程一下:工具有很多,我这里推荐使用 :vscode ,finalShell

如果是编码的话,就建议 vscode ,如果是运维就建议: finalShell (个人观点)

官网:

https://www.hostbuf.com/

根据下面截图的来:

在这里插入图片描述
在这里插入图片描述
下载之后就是安装,安装完成后就直接打开它,继续下面流程

在这里插入图片描述
点击左上角的文件夹图标

在这里插入图片描述
再点击 SSH 连接(Linux)

在这里插入图片描述
输入 Ip 地址、账号、密码

我们可以回到控制台输入 ip addr 再通过下面截图的地方,找到一个地址,我们连接这个地址就可以了

在这里插入图片描述

连上之后的情况就可以参考下图了。
在这里插入图片描述
这里再多介绍一个 使用 root 登录的流程

1、先进行 root 密码新增(新用户肯定没有,如果有的话,就不用这步骤)

sudo passwd root

修改ssh登录的配置, etc/ssh/sshd_config 文件,修改为允许root登录

在这里插入图片描述

看下图 ,将: #PermitRootLogin prohibit-password

这一行,改为 PermitRootLogin yes
在这里插入图片描述
在这里插入图片描述
修改成功后,我们重启ssh服务使刚才的ssh配置的修改生效

sudo service ssh restart

再通过下面命令可以测试登录

ssh root@localhost

在这里插入图片描述

桌面环境

安装 ubuntu-desktop

 sudo apt install ubuntu-desktop -y 

ubuntu-desktop 包含了 Ubuntu 桌面环境所需的所有组件,安装后系统会具备完整的桌面环境 (所以安装会很久:当然也看网速)

在这里插入图片描述

sudo apt install -y xrdp

xrdp 是一个开源的远程桌面协议(RDP)服务器, 有了这个,就能够通过 Windows 系统自带的远程桌面连接工具或者其他支持 RDP 协议的客户端来远程连接到 Ubuntu 系统。

在这里插入图片描述

sudo adduser xrdp ssl-cert

ssl-cert 用户组,用于管理 SSL 证书,把 xrdp 用户添加到这个组里,能让 xrdp 服务使用 SSL 证书来加密远程连接,增强连接的安全性。

sudo systemctl restart xrdp

需要重启服务使更改生效

在这里插入图片描述

主要是输入主机名,如下图:(其他看个人习惯,我是习惯都输入一样的)
在这里插入图片描述
在这里插入图片描述

输入用户名+密码,就可以了
在这里插入图片描述
在这里插入图片描述

python 环境

一般情况, wsl 的 Ubuntu(我测试过的18 、20 的 ubuntu 发行版)都是自带 Python3 的,所以直接在控制台输入 python3 就可以进入到 Python 程序里面了

在这里插入图片描述
我这里就是 python 3.12.3

在这里插入图片描述

如果 需要安装新的 python 环境可以继续下面流程(一般情况下自带的都够用,不过如果需要训练模型的话,就还需要安装指定的版本:先检查一下是否自带的就支持,如果支持就不用重复安装了)

安装 Python 3

sudo apt install python3

安装 Python 包管理工具 pip

sudo apt install python3-pip

安装完成后,通过下面命令可以验证 Python 和 pip 是否安装成功

python3 --version
pip3 --version

(部分有需要的情况也可以)创建虚拟环境

创建一个新的虚拟环境,下面命令中 myvenv 就是虚拟环境的名称,可以根据实际使用自己更换

python3 -m venv myvenv

激活虚拟环境

source myvenv/bin/activate

使用完成后,如果需要切换回去,可以退出环境使用下面命令

deactivate

vim 设置插件安装

插件需要科学上网:这里只是简单提一下命令,这个教程大家去网上多找找

sudo apt update
sudo apt install -y gdebi-core
sudo gdebi Clash.Verge_2.2.2_amd64.deb

在这里插入图片描述
配置之后:我们简单ping 测试一下啊

在这里插入图片描述

接下来就是正题:进入下载+安装+使用 vim-plug 的流程在这里插入图片描述

执行下面命令 下载 vim-plug(其实就是一个文件,没有的话也可以私信不过后面安装插件一样要科学上网,如果没有的话就算安装了也还是不方便,不如其他的管理插件的工具)

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

打开 Vim 的配置文件 ~/.vimrc

vim ~/.vimrc

把下面内容贴进去,我们安装一个文件浏览器的插件

call plug#begin('~/.vim/plugged')  
Plug 'preservim/nerdtree' 
call plug#end()

在这里插入图片描述
保存并退出 ~/.vimrc 文件(在 Vim 中输入 :wq)。
重新打开 Vim,然后在 Vim 命令模式下输入以下命令

:PlugInstall

这个命令是用来安装我们刚刚贴入的安装插件的代码,可以理解为 Vim 会自动下载并安装你在 ~/.vimrc 中定义的所有插件。

下图就是下载成功了。

在这里插入图片描述

然后我们在普通模式下,再输入下面代码

:NERDTree

在这里插入图片描述
不过输入这么长的代码会有些不方便,这里建议设置快捷键:

我们先退出当前窗口 :q 然后继续进入 vim ~/.vimrc

追加代码:

map <F2> :NERDTreeToggle<CR>

保存后退出,再使用 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 <F2> :NERDTreeToggle<CR>

" Ctrl + S 保存文件
nnoremap <C-s> :w<CR>
inoremap <C-s> <Esc>:w<CR>a

" Ctrl + W 退出 Vim
nnoremap <C-w> :q<CR>
inoremap <C-w> <Esc>:q<CR>

" 设置行号
set number

" 设置鼠标
set mouse=a

" 普通模式下,输入 jj 进入插入模式
nmap jj i

" 插入模式下,输入 jj 退出插入模式
inoremap jj <Esc>

" 设置 Leader 键为逗号
let mapleader = ','

" NERD Commenter 快捷键
nmap <leader>cc <plug>NERDCommenterComment
nmap <leader>cn <plug>NERDCommenterUncomment

" fzf 命令快捷键
command! -bang -nargs=? FZF
    \ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': '--reverse'}), <bang>0)

" 其他常用快捷键
" 移动光标类
" 按单词移动
nmap w w
nmap e e
nmap b b

" 行内快速移动
nmap 0 0
nmap $ $
nmap ^ ^

" 文件内快速跳转
nmap gg gg
nmap G G
nmap <expr> <C-n> (v:count == 0 ? '1' : v:count) . 'G'

" 文本操作类
" 复制粘贴
nmap yy yy
nmap <expr> <C-y> (v:count == 0 ? '1' : v:count) . 'yy'
nmap p p
nmap P P

" 删除
nmap dd dd
nmap <expr> <C-d> (v:count == 0 ? '1' : v:count) . 'dd'
nmap dw dw

" 撤销与恢复
nmap u u
nmap <C-r> <C-r>

" 字符操作
nmap r r
nmap ~ ~

" 缩进调整
nmap >> >>
nmap << <<

" 搜索替换类
nmap / /
nmap ? ?
nmap n n
nmap N N
nmap :s :s
nmap :%s :%s
 
" 插件配置部分
  
" Vim-Rainbow 配置
let g:rainbow_active = 1

" gitgutter 配置
let g:gitgutter_enabled = 1    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2325286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot课程学习与互动平台(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;在此…

通俗易懂的大模型原理

十分钟揭秘DeepSeek原理&#xff0c;通俗易懂的大语言模型科普&#xff01;_哔哩哔哩_bilibili 最基础原理&#xff0c;x是输入&#xff0c;y是输出。上百万和上百亿的参数 将一句话转化为数字向量 一句话就是向量矩阵 输入矩阵和参数矩阵进行计算得出输出矩阵&#xff0c;因为…

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab - Sony S-Log3 Cinematic LUTs

热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab – Sony S-Log3 Cinematic LUTs 我们最好的 Film Look S-Log3 LUT 的集合&#xff0c;适用于索尼无反光镜相机。无论您是在户外、室内、风景还是旅行电影中拍摄&#xff0c;这些 LUT 都经过优化&#xff0c;可为…

【jQuery】插件

目录 一、 jQuery插件 1. 瀑布流插件&#xff1a; jQuery 之家 http://www.htmleaf.com/ 2. 图片懒加载&#xff1a; jQuery 插件库 http://www.jq22.com/ 3. 全屏滚动 总结不易~ 本章节对我有很大收获&#xff0c;希望对你也是~~~ 一、 jQuery插件 jQuery 功能…

MATLAB导入Excel数据

假如Excel中存在三列数据需要导入Matlab中。 保证该Excel文件与Matlab程序在同一目录下。 function [time, voltage, current] test(filename)% 读取Excel文件并提取时间、电压、电流数据% 输入参数:% filename: Excel文件名&#xff08;需包含路径&#xff0c;如C:\data\…

孤码长征:破译PCL自定义点云注册机制源码迷局——踩坑实录与架构解构

在之前一个博客《一文搞懂PCL中自定义点云类型的构建与函数使用》中&#xff0c;清晰地介绍了在PCL中点云的定义与注册方法。我的一个读者很好奇其内部注册的原理以及机制&#xff0c;再加上最近工作中跟猛男开发自定义点云存储的工作&#xff0c;借着这些需求&#xff0c;我也…

Centos 7 搭建 jumpserver 堡垒机

jumpserver 的介绍 1、JumpServer 是完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统 1)身份验证 / Authentication 2)授权控制 / Authorization 3)账号管理 / Accounting 4)安全审计 / Auditing 2、JumpServer 使用 Python / Django 进行开…

封装了一个优雅的iOS全屏侧滑返回工具

思路 添加一个全屏返回手势&#xff0c;UIPangesturerecognizer, 1 手势开始 在手势开始响应的时候&#xff0c;将navigationController的delegate代理设置为工具类&#xff0c;在工具类中执行代理方法&#xff0c;- (nullable id )navigationController:(UINavigationControll…

HCIP-6 DHCP

HCIP-6 DHCP DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09; 手工配置网络参数存在的问题 灵活性差 容易出错 IP地址资源利用率低 工作量大 人员素质要求高 DHCP服务器按照如下次序为客户端选择IP地址: ①DHCP服务器的数…

opencv图像处理之指纹验证

一、简介 在当今数字化时代&#xff0c;生物识别技术作为一种安全、便捷的身份验证方式&#xff0c;正广泛应用于各个领域。指纹识别作为生物识别技术中的佼佼者&#xff0c;因其独特性和稳定性&#xff0c;成为了众多应用场景的首选。今天&#xff0c;我们就来深入探讨如何利…

记一道CTF题—PHP双MD5加密+”SALT“弱碰撞绕过

通过分析源代码并找到绕过限制的方法&#xff0c;从而获取到flag&#xff01; 部分源码&#xff1a; <?php $name_POST[username]; $passencode(_POST[password]); $admin_user "admin"; $admin_pw get_hash("0e260265122865008095838959784793");…

机器学习的一百个概念(3)上采样

前言 本文隶属于专栏《机器学习的一百个概念》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…

分秒计数器设计

一、在VsCode中写代码 目录 一、在VsCode中写代码 二、在Quartus中创建工程与仿真 1、建立工程项目文件md_counter 2、打开项目文件&#xff0c;创建三个目录 3、打开文件trl&#xff0c;创建md_counter.v文件 4、打开文件tb&#xff0c;创建md_counter_tb.v文件 5、用VsCod…

Flink介绍——发展历史

引入 我们整个大数据处理里面的计算模式主要可以分为以下四种&#xff1a; 批量计算&#xff08;batch computing&#xff09; MapReduce Hive Spark Flink pig流式计算&#xff08;stream computing&#xff09; Storm SparkStreaming/StructuredStreaming Flink Samza交互计…

12. STL的原理

目录 1. 容器、迭代器、算法 什么是迭代器? 迭代器的作用&#xff1f; 迭代器的类型&#xff1f; 迭代器失效 迭代器的实现细节&#xff1a; 2. 适配器 什么是适配器&#xff1f; 适配器种类&#xff1a; 3. 仿函数 什么是仿函数&#xff1f; 仿函数与算法和容器的…

OSPFv3 的 LSA 详解

一、复习&#xff1a; OSPFv3 运行于 IPv6 协议上&#xff0c;所以是基于链路&#xff0c;而不是基于网段&#xff0c;它实现了拓扑和网络的分离。另外&#xff0c;支持一个链路上多个进程&#xff1b;支持泛洪范围标记和泛洪不识别的报文&#xff08;ospfv2 的行为是丢弃&…

python 原型链污染学习

复现SU的时候遇到一道python原型链污染的题&#xff0c;借此机会学一下参考&#xff1a; 【原型链污染】Python与Jshttps://blog.abdulrah33m.com/prototype-pollution-in-python/pydash原型链污染 文章目录 基础知识对父类的污染命令执行对子类的污染pydash原型链污染打污染的…

入栈操作-出栈操作

入栈操作 其 入栈操作 汇编代码流程解析如下&#xff1a; 出栈操作 其 出栈操作 汇编代码流程解析如下&#xff1a;

C++ 多态:面向对象编程的核心概念(一)

文章目录 引言1. 多态的概念2. 多态的定义和实现2.1 实现多态的条件2.2 虚函数2.3 虚函数的重写/覆盖2.4 虚函数重写的一些其他问题2.5 override 和 final 关键字2.6 重载/重写/隐藏的对比 3. 纯虚函数和抽象类 引言 多态是面向对象编程的三大特性之一&#xff08;封装、继承、…

Python数据可视化-第3章-图表辅助元素的定制

教材 本书为《Python数据可视化》一书的配套内容&#xff0c;本章为第3章-图表辅助元素的定制 本章主要介绍了图表辅助元素的定制&#xff0c;包括认识常用的辅助元素、设置坐标轴的标签、设置刻度范围和刻度标签、添加标题和图例、显示网格、添加参考线和参考区域、添加注释文…