当前位置: 首页 > article >正文

在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 设置插件安装 简单介绍 内容有点长&#xff0c;这里就先简单描述内容了。主要是快速在 Win11 搭建一个 wsl 的 linux 环…...

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

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

通俗易懂的大模型原理

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

Vue 3 模板引用(Template Refs)详解与实战示例

Vue 3 模板引用&#xff08;Template Refs&#xff09;详解与实战示例 引言 在 Vue 开发中&#xff0c;通常推荐使用 响应式数据 (ref 和 reactive) 进行数据绑定&#xff0c;而不是直接操作 DOM。但是&#xff0c;在某些情况下&#xff0c;我们确实需要访问某个组件或 DOM 元…...

【Deep Reinforcement Learning Hands-On Third Edition】【序】

书名&#xff1a;深度强化学习实践 第三版 副标题&#xff1a;一个实用且容易跟得上的强化学习指南&#xff0c;从&#xff08;Q-learning和DQNs&#xff09;到&#xff08;PPO和RLHF&#xff09; 作者&#xff1a;Maxim Lapan 1.书中目录 模块一&#xff1a;强化学习初探 章…...

热门索尼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;可为…...

Hadoop/Spark 生态

Hadoop/Spark 生态是大数据处理的核心技术体系&#xff0c;专为解决海量数据的存储、计算和分析问题而设计。以下从底层原理到核心组件详细讲解&#xff0c;帮助你快速建立知识框架&#xff01; 一、为什么需要 Hadoop/Spark&#xff1f; ​传统单机瓶颈&#xff1a; 数据量超…...

.global

.global关键字用来让一个符号对链接器可见&#xff0c;可以供其他链接对象模块使用。 global是告诉编译器&#xff0c;其后是全局可见的名字【变量或函数名】。 .global start 让start符号成为可见的标示符&#xff0c;这样链接器就知道跳转到程序中的什么地方并开始执行。li…...

八股总结(Java)实时更新!

八股总结&#xff08;java&#xff09; ArrayList和LinkedList有什么区别 ArrayList底层是动态数组&#xff0c;LinkedList底层是双向链表&#xff1b;前者利于随机访问&#xff0c;后者利于头尾插入&#xff1b;前者内存连续分配&#xff0c;后者通过指针连接多块不连续的内存…...

@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 语句。 解决方案 归功于面向对象编程的优雅的分派概念&#xff0c;case语句的使用大多(但不是所有)都可以被替换成其他分派形式。在Python中&#xff0c;字典及函数是一等(first-class)…...

亚马逊玩具品类技术驱动型选品策略:从趋势洞察到合规基建

一、全球玩具电商技术演进趋势 &#xff08;技术化重构原市场背景&#xff09; 数据可视化分析&#xff1a;通过亚马逊SP-API抓取2023年玩具品类GMV分布热力图 监管技术升级&#xff1a; 美国CPSC启用AI质检系统&#xff08;缺陷识别准确率92.7%&#xff09; 欧盟EPR合规接口…...

【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\…...

主流软件工程模型全景剖析

一、瀑布模型 阶段划分 需求分析&#xff1a;与用户深入沟通&#xff0c;全面了解软件的功能、性能、可靠性等要求&#xff0c;形成详细的需求规格说明书。设计阶段&#xff1a;包括总体设计和详细设计。总体设计确定软件的体系结构&#xff0c;如模块划分、模块之间的接口等&…...

python和Java的区别

Python和Java是两种流行的编程语言&#xff0c;它们之间有一些重要的区别&#xff1a; 语法&#xff1a;Python是一种动态类型的脚本语言&#xff0c;语法简洁明了&#xff0c;通常使用缩进来表示代码块。Java是一种静态类型的编程语言&#xff0c;语法更为严格&#xff0c;需要…...

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

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

【SQL】MySQL基础2——视图,存储过程,游标,约束,触发器

文章目录 1. 视图2. 存储过程2.1 创建存储过程2.2 执行存储过程 3. 游标4. 约束4.1 主键约束4.2 外键约束4.3 唯一约束4.4 检查约束 5. 触发器 1. 视图 视图是虚拟的表&#xff0c;它是动态检索的部分。使用视图的原因&#xff1a;避免重复的SQL语句&#xff1b;使用表的部分而…...

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图像拼接(8)用于实现并查集(也称为不相交集合)数据结构类cv::detail::DisjointSets

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::DisjointSets 类是OpenCV库中用于实现不相交集合&#xff08;也称为并查集&#xff09;数据结构的类。该数据结构常用于处理动态连接…...

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");…...

Text2SQL推理类大模型本地部署的解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法工程师一职,获得CSDN博客之星第一名,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得多项AI顶级比赛的Top名次,其中包括阿里云、科大讯飞比赛第一名…...

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

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

Electron应用生命周期全解析:从启动到退出的精准掌控

一、Electron生命周期的核心特征 1.1 双进程架构的生命周期差异 Electron应用的生命周期管理具有明显的双进程特征&#xff1a; 主进程生命周期&#xff1a;贯穿应用启动到退出的完整周期渲染进程生命周期&#xff1a;与浏览器标签页相似但具备扩展能力进程间联动周期&#…...

AI渗透测试:网络安全的“黑魔法”还是“白魔法”?

引言&#xff1a;AI渗透测试&#xff0c;安全圈的“新魔法师” 想象一下&#xff0c;你是个网络安全新手&#xff0c;手里攥着一堆工具&#xff0c;正准备硬着头皮上阵。这时&#xff0c;AI蹦出来&#xff0c;拍着胸脯说&#xff1a;“别慌&#xff0c;我3秒扫完漏洞&#xff0…...

分秒计数器设计

一、在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交互计…...