xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

一、安装linux子系统

1.1、 启动或关闭Windows功能-适用于Linux的Windows子系统

在这里插入图片描述

1.2 WSL 官方文档

使用 WSL 在 Windows 上安装 Linux

//1-安装 WSL 命令
wsl --install//2-检查正在运行的 WSL 版本:  
wsl -l -v

在这里插入图片描述

//3-检查wsl状态  
wsl status

在这里插入图片描述

//4-列出可用的 Linux 发行版
wsl --list --online  或  wsl -l -o
查看可通过在线商店获得的 Linux 发行版列表。 此命令也可输入为:wsl -l -o。

在这里插入图片描述

//5、将 WSL 版本设置为 1 或 2  
wsl --set-version <distribution name> <versionNumber>使用 wsl --install 命令安装的新 Linux 安装将默认设置为 WSL 2。
要查看 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令 wsl -l -v。要更改版本,请使用 wsl --set-version <distro name> 2 命令将 <distro name> 替换为要更新的 Linux 发行版的名称。
例如,wsl --set-version Ubuntu-20.04 2 会将 Ubuntu 20.04 发行版设置为使用 WSL 2//将WSL 版本Ubuntu-22.04设置为2
wsl --set-version Ubuntu-22.04 2//将WSL 版本Ubuntu-22.04降级为1
wsl --set-version Ubuntu-22.04 1

补充:例外情况(使用 WSL 1 而不是 WSL 2)

我们建议使用 WSL 2,因为它提供更快的性能和100% 的系统调用兼容性。 但是,在某些特定情况下,你可能会更倾向于使用 WSL 1。 
在以下情况下,请考虑使用 WSL 1:
你的项目文件必须存储在 Windows 文件系统中。 WSL 1 可以更快地访问从 Windows 装载的文件。
如果你将使用 WSL Linux 分发版来访问 Windows 文件系统上的项目文件,并且这些文件无法存储在 Linux 文件系统上,那么,通过使用
WSL 1,你将跨 OS 文件系统实现更快的性能。
一个项目要求对相同的文件使用 WindowsLinux 工具进行交叉编译。
在 WSL 1 中,跨 WindowsLinux 操作系统的文件性能比 WSL 2 中更快,因此如果要使用 Windows 应用程序来访问 Linux 文件,
则目前通过 WSL 1 可实现更快的性能。
你的项目需要访问串行端口或 USB 设备。 但是,现在可通过 USBIPD-WIN 项目为 WSL 2 提供 USB 设备支持。 
有关设置步骤,请参阅连接 USB 设备。
WSL 2 不支持访问串行端口。 有关详细信息,请参阅常见问题解答或 WSL GitHub 存储库中有关串行支持的问题。
有严格的内存要求
WSL 2 的内存使用量会随使用而缩放。 当进程释放内存时,这会自动返回到 Windows。 但从现在开始,在关闭 WSL 实例前,WSL 2 还不会将内存中缓存的页面释放回 Windows。 如果你有长时间运行的 WSL 会话或访问非常大量的文件,此缓存可能会耗尽 Windows 内存。 我们通过 WSL GitHub 存储库问题 4166 跟踪工作以改善此体验。
对于使用 VirtualBox 的用户,你可能需要考虑你正在运行的版本以及它是否与 WSL 2 兼容。 (有关完整讨论,请参阅 WSL GitHub 存储库问题 798VirtualBox v6.1.16 似乎适用于 WSL 2,但其他版本可能遇到问题。)
如果依赖 Linux 发行版在与主机相同的网络中拥有 IP 地址,则可能需要设置一种替代方法来运行 WSL 2WSL 2 作为 hyper-v 虚拟机运行。 这是对 WSL 1 中使用的桥接网络适配器的更改,这意味着 WSL 2 使用网络地址转换 (NAT) 服务作为其虚拟网络,而不是将其桥接到主机网络接口卡 (NIC),从而生成唯一的将在重启时更改的 IP 地址。 要详细了解将 WSL 2 服务的 TCP 端口转发到主机 OS 的问题和缓解措施,请参阅 WSL GitHub 存储库问题 4150NIC 桥接模式(TCP 缓解措施)。备注
请考虑尝试 VS Code 远程 WSL 扩展,以便使你不仅能够使用 Linux 命令行工具将项目文件存储在 Linux 文件系统上,而且还可以使用 
Windows 上的 VS CodeInternet 浏览器中创作、编辑、调试或运行项目,而不会造成任何与跨 LinuxWindows 文件系统工作
相关联的性能下降。了解详细信息。

在这里插入图片描述

1.3、在Microsoft store中搜索Ubuntu安装

在Microsoft store中搜索Ubuntu,找到带LTS结尾的,点击安装。

第一次启动需要进行配置,需要几分钟。根据提示设置用户名和密码,进行相应的命令操作。
在这里插入图片描述

二、xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

2.1、配置SSH

//查看ssh服务状态
systemctl status ssh//1、安装SSH//卸载 openssh-server 
sudo apt-get remove openssh-server//安装 openssh-server
sudo apt-get install openssh-server//重启ssh服务   第一个比较常用
sudo systemctl restart ssh
或
sudo service ssh --full-restart

在这里插入图片描述

2.2、修改配置文件sshd_config

默认端口是22,为了防止端口冲突,需要修改。
注意:这里如果不是root用户,一定要用sudo获取管理员权限或者直接使用root用户登录,否则vim编辑完文件,退出保存时会提示你“Can’t open for writing”

cd /etc/ssh/sshd_config
sudo vim sshd_config
或者直接 sudo vim sshd_config按insert表示编辑,上下左右键控制方位。删除Port前面的#,表示启用,将Port默认端口22改为2096。
删除PasswordAuthentication yes前面的 的#,表示,将PasswordAuthentication yes启用。修改完毕,按ESC键退出,按:wq 写入并保存。注意:
这里如果不是root用户,一定要用sudo获取管理员权限或者直接使用root用户登录,否则vim编辑完文件,
退出保存时会提示你“Can't open for writing”
//完成上面的修改配置文件sshd_config
//重启ssh服务   第一个比较常用
sudo systemctl restart ssh
或
sudo service ssh --full-restart

2.3、使用连接SSH终端工具Xshell

注意:这里必须使用Xshell5以上的版本,否则会报 no matching host key algorithm found-找不到主机密钥类型
在这里插入图片描述

使用ifconfig命令查看ip

这里有两个ip地址:
127.0.0.1 ,这个只能在本电脑本地连接。
172.19.63.203,可以使用远程连接。

在这里插入图片描述

连接本地连接127.0.0.1
在这里插入图片描述
在这里插入图片描述
连接远程连接172.19.63.203
在这里插入图片描述
在这里插入图片描述
本地和远程全部登录成功
在这里插入图片描述

三、参考资料

Windows中安装linux子系统(Ubuntu)-使用Xshell连接

Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机
Linux 和 Bash 入门

vi或vim命令 报错:Can’t open file for writing

Linux vi种 wq 、wq!、x、q、q!区别

【Linux】vi编辑器中:wq 、:wq!、:x、:q、:q!的详细区别

如何在 Win 11/10 上找出应用程序进程 ID

Windows下如何查看某个端口被谁占用

Windows查看端口占用、查看PID对应的进程、并终止进程

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

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

相关文章

关于在VS2017中编译Qt项目遇到的问题

关于在VS2017中编译Qt项目遇到的问题 【QT】VS打开QT项目运行不成功 error MSB6006 “cmd.exe”已退出,代码为 2。如何在VS2017里部署的Qt Designer上编辑槽函数 【QT】VS打开QT项目运行不成功 error MSB6006 “cmd.exe”已退出,代码为 2。 链接 如何在VS2017里部署的Qt Design…

10.python设计模式【代理模式】

内容&#xff1a;为其他对象提供一种代理一控制对这个对象的访问 应用场景&#xff1a; 远程代理&#xff1a; 为远程的对象提供代理虚代理&#xff1a;根据需要创建很大的对象保护代理&#xff1a;控制对原始对象的访问&#xff0c;用于对象有不同访问权限时 UML图 举个例…

VUE,子组件给父组件传递参数,props 自定义属性,ref

<template><div><!-- 子传父 --><!-- 通过父组件给子组件传递函数类型的props实现&#xff1a;子给父传递数据 --><AA :getAAname"getAAname"/><h1>AA&#xff1a;{{aaname}}</h1><!-- 通过父组件给子组件绑定一个自定…

WIZnet W6100-EVB-Pico DHCP 配置教程(三)

前言 在上一章节中我们讲了网络信息配置&#xff0c;那些网络信息的配置都是用户手动的去配置的&#xff0c;为了能跟电脑处于同一网段&#xff0c;且电脑能成功ping通板子&#xff0c;我们不仅要注意子网掩码&#xff0c;对于IP地址主机位和网络位的划分&#xff0c;而且还要注…

selenium定位元素的方法

Selenium可以驱动浏览器完成各种操作&#xff0c;比如模拟点击等。要想操作一个元素&#xff0c;首先应该识别这个元素。人有各种的特征&#xff08;属性&#xff09;&#xff0c;我们可以通过其特征找到人&#xff0c;如通过身份证号、姓名、家庭住址。同理&#xff0c;一个元…

前端框架学习-Vue(三)

目录 初识VueVue模板语法数据绑定el和data的两种写法事件的基本使用$emit在子组件中定义方法&#xff0c;执行父组件的方法 Vue中的事件修饰符&#xff1a;键盘事件计算属性监视属性条件渲染列表渲染表单数据收集过滤器 笔记内容来自&#xff1a;尚硅谷Vue2.0Vue3.0全套教程丨v…

【unity】Pico VR 开发笔记(基础篇)

Pico VR 开发笔记(基础篇) XR Interaction Tooikit 版本 2.3.2 一、环境搭建 其实官方文档已经写的很详细了&#xff0c;这里只是不废话快速搭建&#xff0c;另外有一项官方说明有误的&#xff0c;补充说明一下&#xff0c;在开发工具部分说明 插件安装——安装pico的sdk和XR…

删掉一个元素以后全为 1 的最长子数组

给你一个二进制数组 nums &#xff0c;你需要从中删掉一个元素。 请你在删掉元素的结果数组中&#xff0c;返回最长的且只包含 1 的非空子数组的长度。 如果不存在这样的子数组&#xff0c;请返回 0 。 提示 1&#xff1a; 输入&#xff1a;nums [1,1,0,1] 输出&#xff1…

职责链模式——请求的链式处理

1、简介 1.1、概述 很多情况下&#xff0c;在一个软件系统中可以处理某个请求的对象不止一个。例如SCM系统中的采购单审批&#xff0c;主任、副董事长、董事长和董事会都可以处理采购单&#xff0c;他们可以构成一条处理采购单的链式结构。采购单沿着这条链进行传递&#xff…

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

系列文章目录 编程小白的自学笔记十一&#xff08;python爬虫入门三Selenium的使用实例详解&#xff09; 编程小白的自学笔记十&#xff08;python爬虫入门二实例代码详解&#xff09; 编程小白的自学笔记九&#xff08;python爬虫入门代码详解&#xff09; 目录 系列文章…

指针应用基础练习

&#xff08;1&#xff09;一级指针&#xff0c;二级指针 void getString(char **p) {*p "hello world"; }int main(void) {char *str NULL;getString(&str);printf("%s\n", str); } 代码分析&#xff1a; 定义了一个char型指针str&#xff0c;…

uni-app踩坑记

打包h5如何配置域名&#xff1a; 在manifest.json中配置域名 配置完成后无论是测试环境还是正式环境都带上/mobile/&#xff0c;否则会报错404 如何引入调试工具erada: 在默认的index.html中直接引入erada&#xff0c;页面样式会整个错乱&#xff0c;解决方案就是引入官方…

信号槽中的函数重载

信号槽中的函数重载 QT4的方式QT5的方式函数指针重载函数QT5信号函数重载解决方案 总结 QT4的方式 Qt4中声明槽函数必须要使用 slots 关键字, 不能省略。 信号函数&#xff1a; 槽函数&#xff1a; mainwondow: cpp文件&#xff1a; #include "mainwindow.h"…

WebSocket协议解析

文章目录 概要一、WS原理1.1、帧格式 二、WS实战2.1、客户端发起协议升级请求2.2、服务端响应协议升级2.3、核心事件2.4、心跳保活 三、总结 概要 项目中的IM系统是基于WebSocket做的&#xff0c;所以这里聊一下。 说到WS&#xff0c;不得不提HTTP,HTTP是基于TCP&#xff0c;面…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第四十二天 42/50【unordered_set】【双指针处理连续】【翻转字符串】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

AD21原理图的高级应用(五)自定义原理图模板及调用

&#xff08;五&#xff09;自定义原理图模板及调用 1.创建原理图模板2.调用原理图模板 1.创建原理图模板 利用 Altium Designer 软件在原理图中创建自己的模板,可以在图纸的右下角绘制一个表格用于显示图纸的一些参数,例如文件名、作者、修改时间、审核者、公司信息、图纸总数…

Java中的包是什么?

Java中的包&#xff08;package&#xff09;是Java语言中的一个重要概念&#xff0c;它可以帮助我们组织和管理Java类和接口&#xff0c;使得代码更加清晰、易于维护。 从新手的角度来看&#xff0c;包就像是一个“盒子”&#xff0c;我们把不同的类和接口放进去&#xff0c;这…

shopee,lazada,etsy店群如何高效安全的管理

对于电商卖家来说&#xff0c;要经营多个店铺&#xff0c;管理多个账号是非常常见的操作。为了避免账号关联被平台识别出来&#xff0c;需要使用防关联的浏览器来进行操作 ​1、支持多平台 支持同时管理多个电商平台店铺&#xff0c;Shopee、Lazada、etsy、poshmark、vinted等&…

Vue.js 生命周期函数

系列文章目录 Vue.js基础简答题 文章目录 系列文章目录前言一、创建阶段1.beforeCreate2.created3.beforeMount4.mounted 二、运行阶段1.beforeUpdate2.updated 三、销毁阶段1.beforeDestroy2.destroyed 总结 前言 Vue.js 生命周期指的是Vue实例的生命周期&#xff1b; Vue实…

【RabbitMQ】Linux系统服务器安装RabbitMQ

一、下载 首先应该下载erlang&#xff0c;rabbitmq运行需要有erland环境。 官网地址&#xff1a;https://www.erlang.org/downloads 下载rabbitmq 官网环境&#xff1a;https://www.rabbitmq.com/download.html 注意&#xff1a;el7对应centos7&#xff0c;el8对应centos8…