在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装
在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
相关文章:
在win11 环境下 新安装 WSL ubuntu + 换国内镜像源 + ssh + 桌面环境 + Pyhton 环境 + vim 设置插件安装
在win11 环境下 新安装 WSL ubuntu ssh gnome 桌面环境 Pyhton 环境 vim 设置插件安装 简单介绍详细流程换国内镜像源安装 ssh 桌面环境python 环境vim 设置插件安装 简单介绍 内容有点长,这里就先简单描述内容了。主要是快速在 Win11 搭建一个 wsl 的 linux 环…...
基于springboot课程学习与互动平台(源码+lw+部署文档+讲解),源码可白嫖!
摘要 随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下,人们更趋向于足不出户解决生活上的问题,线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时,在此…...
通俗易懂的大模型原理
十分钟揭秘DeepSeek原理,通俗易懂的大语言模型科普!_哔哩哔哩_bilibili 最基础原理,x是输入,y是输出。上百万和上百亿的参数 将一句话转化为数字向量 一句话就是向量矩阵 输入矩阵和参数矩阵进行计算得出输出矩阵,因为…...
Vue 3 模板引用(Template Refs)详解与实战示例
Vue 3 模板引用(Template Refs)详解与实战示例 引言 在 Vue 开发中,通常推荐使用 响应式数据 (ref 和 reactive) 进行数据绑定,而不是直接操作 DOM。但是,在某些情况下,我们确实需要访问某个组件或 DOM 元…...
【Deep Reinforcement Learning Hands-On Third Edition】【序】
书名:深度强化学习实践 第三版 副标题:一个实用且容易跟得上的强化学习指南,从(Q-learning和DQNs)到(PPO和RLHF) 作者:Maxim Lapan 1.书中目录 模块一:强化学习初探 章…...
热门索尼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 的集合,适用于索尼无反光镜相机。无论您是在户外、室内、风景还是旅行电影中拍摄,这些 LUT 都经过优化,可为…...
Hadoop/Spark 生态
Hadoop/Spark 生态是大数据处理的核心技术体系,专为解决海量数据的存储、计算和分析问题而设计。以下从底层原理到核心组件详细讲解,帮助你快速建立知识框架! 一、为什么需要 Hadoop/Spark? 传统单机瓶颈: 数据量超…...
.global
.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用。 global是告诉编译器,其后是全局可见的名字【变量或函数名】。 .global start 让start符号成为可见的标示符,这样链接器就知道跳转到程序中的什么地方并开始执行。li…...
八股总结(Java)实时更新!
八股总结(java) ArrayList和LinkedList有什么区别 ArrayList底层是动态数组,LinkedList底层是双向链表;前者利于随机访问,后者利于头尾插入;前者内存连续分配,后者通过指针连接多块不连续的内存…...
@emotion/css + react+动态主题切换
1.下载插件 npm install --save emotion/css 2.创建ThemeContext.tsx // src/ThemeContext.tsx import React, { createContext, useContext, useState } from "react";// 定义主题类型 export type Theme "light" | "dark";// 定义主题上下…...
Python Cookbook-4.16 用字典分派方法和函数
任务 需要根据某个控制变量的值执行不同的代码片段——在其他的语言中你可能会使用case 语句。 解决方案 归功于面向对象编程的优雅的分派概念,case语句的使用大多(但不是所有)都可以被替换成其他分派形式。在Python中,字典及函数是一等(first-class)…...
亚马逊玩具品类技术驱动型选品策略:从趋势洞察到合规基建
一、全球玩具电商技术演进趋势 (技术化重构原市场背景) 数据可视化分析:通过亚马逊SP-API抓取2023年玩具品类GMV分布热力图 监管技术升级: 美国CPSC启用AI质检系统(缺陷识别准确率92.7%) 欧盟EPR合规接口…...
【jQuery】插件
目录 一、 jQuery插件 1. 瀑布流插件: jQuery 之家 http://www.htmleaf.com/ 2. 图片懒加载: jQuery 插件库 http://www.jq22.com/ 3. 全屏滚动 总结不易~ 本章节对我有很大收获,希望对你也是~~~ 一、 jQuery插件 jQuery 功能…...
MATLAB导入Excel数据
假如Excel中存在三列数据需要导入Matlab中。 保证该Excel文件与Matlab程序在同一目录下。 function [time, voltage, current] test(filename)% 读取Excel文件并提取时间、电压、电流数据% 输入参数:% filename: Excel文件名(需包含路径,如C:\data\…...
主流软件工程模型全景剖析
一、瀑布模型 阶段划分 需求分析:与用户深入沟通,全面了解软件的功能、性能、可靠性等要求,形成详细的需求规格说明书。设计阶段:包括总体设计和详细设计。总体设计确定软件的体系结构,如模块划分、模块之间的接口等&…...
python和Java的区别
Python和Java是两种流行的编程语言,它们之间有一些重要的区别: 语法:Python是一种动态类型的脚本语言,语法简洁明了,通常使用缩进来表示代码块。Java是一种静态类型的编程语言,语法更为严格,需要…...
孤码长征:破译PCL自定义点云注册机制源码迷局——踩坑实录与架构解构
在之前一个博客《一文搞懂PCL中自定义点云类型的构建与函数使用》中,清晰地介绍了在PCL中点云的定义与注册方法。我的一个读者很好奇其内部注册的原理以及机制,再加上最近工作中跟猛男开发自定义点云存储的工作,借着这些需求,我也…...
【SQL】MySQL基础2——视图,存储过程,游标,约束,触发器
文章目录 1. 视图2. 存储过程2.1 创建存储过程2.2 执行存储过程 3. 游标4. 约束4.1 主键约束4.2 外键约束4.3 唯一约束4.4 检查约束 5. 触发器 1. 视图 视图是虚拟的表,它是动态检索的部分。使用视图的原因:避免重复的SQL语句;使用表的部分而…...
Centos 7 搭建 jumpserver 堡垒机
jumpserver 的介绍 1、JumpServer 是完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统 1)身份验证 / Authentication 2)授权控制 / Authorization 3)账号管理 / Accounting 4)安全审计 / Auditing 2、JumpServer 使用 Python / Django 进行开…...
封装了一个优雅的iOS全屏侧滑返回工具
思路 添加一个全屏返回手势,UIPangesturerecognizer, 1 手势开始 在手势开始响应的时候,将navigationController的delegate代理设置为工具类,在工具类中执行代理方法,- (nullable id )navigationController:(UINavigationControll…...
HCIP-6 DHCP
HCIP-6 DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 手工配置网络参数存在的问题 灵活性差 容易出错 IP地址资源利用率低 工作量大 人员素质要求高 DHCP服务器按照如下次序为客户端选择IP地址: ①DHCP服务器的数…...
OpenCV图像拼接(8)用于实现并查集(也称为不相交集合)数据结构类cv::detail::DisjointSets
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::DisjointSets 类是OpenCV库中用于实现不相交集合(也称为并查集)数据结构的类。该数据结构常用于处理动态连接…...
opencv图像处理之指纹验证
一、简介 在当今数字化时代,生物识别技术作为一种安全、便捷的身份验证方式,正广泛应用于各个领域。指纹识别作为生物识别技术中的佼佼者,因其独特性和稳定性,成为了众多应用场景的首选。今天,我们就来深入探讨如何利…...
记一道CTF题—PHP双MD5加密+”SALT“弱碰撞绕过
通过分析源代码并找到绕过限制的方法,从而获取到flag! 部分源码: <?php $name_POST[username]; $passencode(_POST[password]); $admin_user "admin"; $admin_pw get_hash("0e260265122865008095838959784793");…...
Text2SQL推理类大模型本地部署的解决方案
大家好,我是herosunly。985院校硕士毕业,现担任算法工程师一职,获得CSDN博客之星第一名,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得多项AI顶级比赛的Top名次,其中包括阿里云、科大讯飞比赛第一名…...
机器学习的一百个概念(3)上采样
前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…...
Electron应用生命周期全解析:从启动到退出的精准掌控
一、Electron生命周期的核心特征 1.1 双进程架构的生命周期差异 Electron应用的生命周期管理具有明显的双进程特征: 主进程生命周期:贯穿应用启动到退出的完整周期渲染进程生命周期:与浏览器标签页相似但具备扩展能力进程间联动周期&#…...
AI渗透测试:网络安全的“黑魔法”还是“白魔法”?
引言:AI渗透测试,安全圈的“新魔法师” 想象一下,你是个网络安全新手,手里攥着一堆工具,正准备硬着头皮上阵。这时,AI蹦出来,拍着胸脯说:“别慌,我3秒扫完漏洞࿰…...
分秒计数器设计
一、在VsCode中写代码 目录 一、在VsCode中写代码 二、在Quartus中创建工程与仿真 1、建立工程项目文件md_counter 2、打开项目文件,创建三个目录 3、打开文件trl,创建md_counter.v文件 4、打开文件tb,创建md_counter_tb.v文件 5、用VsCod…...
Flink介绍——发展历史
引入 我们整个大数据处理里面的计算模式主要可以分为以下四种: 批量计算(batch computing) MapReduce Hive Spark Flink pig流式计算(stream computing) Storm SparkStreaming/StructuredStreaming Flink Samza交互计…...
