在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登录

sudo vim /etc/ssh/sshd_config

在这里插入图片描述

看下图 ,将: #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.mzph.cn/web/74555.shtml

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

相关文章

python 命名空间与作用域 可变与不可变对象 闭包

python 命名空间与作用域 可变与不可变对象 闭包 作用域规则顺序为&#xff1a; L->E->G->B 如果变量在局部内找不到&#xff0c;便会去局部外的局部找&#xff08;例如闭包&#xff09;&#xff0c;再找不到就会去全局找&#xff0c;再找不到就去内置中找。 若要在函…

安装 TabbyAPI+Exllamav2 和 vLLM 的详细步骤

在 5090 显卡上成功安装 TabbyAPIExllamav2 和 vLLM 并非易事&#xff0c;经过一番摸索&#xff0c;我总结了以下详细步骤&#xff0c;希望能帮助大家少走弯路。 重要提示&#xff1a; 用户提供的 PyTorch 安装使用了 cu128&#xff0c;这并非标准 CUDA 版本。请根据你的系统实…

使用url-loader处理图片等资源文件

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

EIP-712:类型化结构化数据的哈希与签名

1. 引言 以太坊 EIP-712: 类型化结构化数据的哈希与签名&#xff0c;是一种用于对类型化结构化数据&#xff08;而不仅仅是字节串&#xff09;进行哈希和签名 的标准。 其包括&#xff1a; 编码函数正确性的理论框架&#xff0c;类似于 Solidity 结构体并兼容的结构化数据规…

contourformer:实时的轮廓分割transformer

论文地址:https://arxiv.org/abs/2501.17688 github:https://github.com/talebolano/Contourformer 模型结构 框架建立在 D-FINE 对象检测模型之上,并将边界框的回归扩展到轮廓的回归。为了实现高效的训练,Contourformer 采用迭代方法进行轮廓变形,并引入降噪机制来加速…

【JavaScript】原型链 prototype 和 this 关键字的练习(老虎机)

这个老虎机练习主要考察JavaScript中的原型链&#xff08;prototype&#xff09;和this关键字的使用。 主要思路 创建三个轮盘&#xff08;reels&#xff09;实例&#xff1a;我们需要创建3个独立的轮盘对象&#xff0c;它们都委托&#xff08;delegate&#xff09;到基础的ree…

vue项目data functions should return an object

在vue项目中提示错误&#xff0c;data functions should return an object Message.error(err)错了&#xff0c;Message.error()是element-ui的组件&#xff0c;只能接受字符串&#xff0c;不能接受对象。 改为Message.error(err.message)就好了 我的错误是 Message.error(er…

leetcode刷题 - 数组理论基础

数组是内存空间连续存储、相同类型数据的集合。遍历方式&#xff1a;下标索引 下标&#xff1a;从 0 开始 数组的元素不能删除&#xff0c;只能覆盖 定义一维数组&#xff1a; int arr0[10]; int arr1[10] { 100, 90,80,70,60,50,40,30,20,10 }; int arr2[ ] { 100,90,80,7…

状态机思想编程练习

状态机实现LED流水灯 本次实验&#xff0c;我们将利用状态机的思想来进行Verilog编程实现一个LED流水灯&#xff0c;并通过Modelsim来进行模拟仿真&#xff0c;再到DE2-115开发板上进行验证。 ​ 首先进行主要代码的编写。 module led (input sys_clk,input sys_…

数据结构|排序算法(一)快速排序

一、排序概念 排序是数据结构中的一个重要概念&#xff0c;它是指将一组数据元素按照特定的顺序进行排列的过程&#xff0c;默认是从小到大排序。 常见的八大排序算法&#xff1a; 插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、基数排序 二、快速…

如何确保MQ消息队列不丢失:Java实现与流程分析

前言 在分布式系统中&#xff0c;消息队列&#xff08;Message Queue, MQ&#xff09;是核心组件之一&#xff0c;用于解耦系统、异步处理和削峰填谷。然而&#xff0c;消息的可靠性传递是使用MQ时需要重点考虑的问题。如果消息在传输过程中丢失&#xff0c;可能会导致数据不一…

关于termux运行pc交叉编译的aarch64 elf的问题

在Linux系统上交叉编译Nim程序到Android Termux环境需要特殊处理&#xff0c;以下是详细的解决方案&#xff1a; 问题根源分析 ​​ABI不兼容​​ Android使用bionic libc而非标准glibc&#xff0c;直接编译的Linux ARM二进制无法直接运行 ​​动态链接错误​​ 默认编译会链…

为PXIe控制器配置NI Linux实时操作系统安装软件

一、升级BIOS 使用NI Linux Real-Time操作系统的PXI硬件支持页面来确定NI Linux Real-Time是否支持您的PXIe控制器&#xff0c;以及是否需要更新控制器BIOS。 按照BIOS下载页面上的“安装说明”部分安装BIOS更新。 注意&#xff1a;NI在NI 2020软件版本中删除对cRIO的Phar Lap和…

《汽车噪声控制》课程作业

作业内容 在MATLAB绘制给出单个正弦波或余弦波的时域图和频域图 绘制实测数据的时域图和频域图 图1 单个正弦波的时频图 图1 单个正弦波的时频图 % 正弦波参数设置 f0 1000; % 信号频率 1kHz Fs 16384; % 采样频率 16kHz T 0.05; % 信号持续时间 0.05秒 A 0.8; % 信号幅度…

Baklib内容中台AI技术协同应用

内容中台与AI协同创新 在数字化转型进程中&#xff0c;内容中台通过人工智能技术的深度整合&#xff0c;正重塑企业信息管理范式。以Baklib内容中台为例&#xff0c;其通过智能语义分析引擎解析用户意图&#xff0c;结合知识图谱构建技术动态关联碎片化信息&#xff0c;实现从…

压测工具开发实战篇(二)——构建侧边栏以及设置图标字体

你好&#xff0c;我是安然无虞。 文章目录 构建侧边栏QtAwesome使用调整侧边栏宽度了解: sizePolicy属性伪状态 在阅读本文之前, 有需要的老铁可以先回顾一下上篇文章: 压测工具开发(一)——使用Qt Designer构建简单界面 构建侧边栏 我们要实现类似于下面这样的侧边栏功能: …

Axure RP9.0教程: 查询条件隐藏与显示(综合了动态面板状态切换及展开收缩效果实现)

文章目录 引言I 原型显示/隐藏搜索框思路步骤详细操作II 若依 ruoyi 显示/隐藏搜索框 & 显示隐藏列自定义设置显示隐藏列显示/隐藏搜索框引言 数据筛选有大量的查询条件时,可以选择查询隐藏效果。 I 原型显示/隐藏搜索框 综合了动态面板状态切换及展开收缩效果实现 思…

解锁工业通信:Profibus DP到ModbusTCP网关指南!

解锁工业通信&#xff1a;Profibus DP到ModbusTCP网关指南&#xff01; 在工业自动化领域&#xff0c;随着技术的不断进步和应用场景的日益复杂&#xff0c;不同设备和系统之间的通讯协议兼容性问题成为了工程师们面临的一大挑战。尤其是在Profibus DP和Modbus/TCP这两种广泛应…

3维格式转换(二)

基于python的三维模型演化可视化 本项目的主要内容为总结了3种不同的可视化方案( trimesh + matplotlib 库、 pyvista 库、 vedo 库),并通过案例对可视化效果进行展示,最终通过模型动态演化案例给出最佳效果的可视化方案 本期结构图为 本期博客结构图 0 环境搭建 项目开…

docker导出image再导入到其它docker中

导出image docker save -o gxc_tenant.tar vue_tenant:1.0 eitc_tenant:1.0 redis:latest docker.io/mysql:8.0 minio/minio导入image docker load -i gxc_tenant.tar