windows->wsl&ubuntu config

2023-05-16

ref: https://blog.csdn.net/weixin_45883933/article/details/106085184

安装前配置

ref: 适用于 Linux 的 Windows 子系统安装指南 (Windows 10)

1. 启用 Windows 功能

搜索并打开“启用或关闭 Windows 功能”,然后选择“适用于Linux的Windows子系统”复选框。
在这里插入图片描述

在windows功能中重新勾选hyper-v

在这里插入图片描述
然后开启hyper-v模式
在管理员powershell中执行

bcdedit /set hypervisorlaunchtype auto

如果禁用了组策略里面的Device Guard虚拟化安全设置,
需要打开组策略管理,
本地计算机策略 > 计算机配置 > 管理模板>系统 > Device Guard
打开 基于虚拟化的安全设置为“已开启”或者“未设置”在这里插入图片描述
随后重新开启wsl2,若不行,重启计算机。

启用虚拟机平台可选组件

在 powerShell 中以管理员身份运行下面命令

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

运行完成之后,请重启电脑完成安装.

设置WSL发行版

如果想要将默认的WSL发行版设置成 WSL 2,在 powerShell 中使用下面命令

wsl --set-default-version 2
如果想要设置某一个发行版为WSL2,在 powerShell 中使用下面命令,将 换成你想要设置的发行版即可,例如 Ubuntu-18.04

wsl --set-version <Distro> 2
wsl --set-version Ubuntu-20.04 2
验证使用的WSL版本

wsl -l -v

下载安装 Ubuntu-20.04 (Windows 应用商店里)

更新包目录,并使用分发版的首选包管理器升级已安装的包

sudo apt update && sudo apt upgrade

Windows不会自动更新或升级Linux发行版:Linux用户经常意外自行控制此任务。

ubuntu@kylin:〜$ wslfetch
                          ./+o+-      Windows 10 Linux Subsystem
                  yyyyy. 'yyyyyy+     root@kylin
              .;//+/h yyyyyyo     BUILD:    19624
           .++ .:/++++++/-.`sss/`     BRANCH:   rs_prerelease
         .:++o: `\++++++++/:---:/-    RELEASE:  Ubuntu 20.04 LTS
        o:+o+:++. `````'-/ooo+++++\   KERNEL:   Linux 4.19.104-microsoft-standard
       .:+o:+o/.          `+sssooo+\  UPTIME:   0d 0h 2m
  .++/+ +oo+o:`             \sssooo;
 /+++//+: oo+o
 \+/+o+++ o++o               ydddhh+
  .++.o+ +oo+:`             /dddhhh;
       .+.o+oo:.           oddhhhh+
        \+.++o+o` -,,,,.:ohdhhhhh+
         `:o+++  ohhhhhhhhyo++os:
           .o: .syhhhhhhh'.oo++o.
               /osyyyyyyy.oooo+++\
                   `````+oo+++o:/
                          `oo++'`

root@kylin:~# lsb_release -a | lolcat
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04 LTS
Release:        20.04
Codename:       focal
ubuntu @ kylin:/ $ sudo apt install lolcat 

sudo apt install lolcat
lsb_release -a | lolcat
在这里插入图片描述

wsl ubuntu config

1 修改 默认的源 (更换国内源)

cp /etc/apt/sources.list /etc/apt/sourses.list.bak

更换默认源为阿里源, 使用 sudo vim /etc/apt/sources.list 命令编辑,删除原来的内容,添加下面的阿里源信息

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更换源之后,使用下面的命令更新一下

sudo apt-get update
sudo apt-get upgrade

2.ssh 连接 配置

在WSL Ubuntu系统中安装ssh server
当对Linux实现文件操作时,使用WinScp更为方便。因此需要使用ssh远程登陆

安装ssh server
sudo apt-get install openssh-server

配置ssh
使用 cp 命令将 SSH 相关配置备份
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用 vim 编辑 sshd_config 文件
sudo vim /etc/ssh/sshd_config
调整一下设置:

Port 22
ListenAddress 0.0.0.0
PermitRootLogin yes
StrictModes yes
PasswordAuthentication yes
root@summer:/# service ssh status
 * sshd is not running
root@summer:/# service ssh start
 * Starting OpenBSD Secure Shell server sshd                                                          
 sshd: no hostkeys available -- exiting.
root@summer:/# sshd -T
sshd: no hostkeys available -- exiting.
root@summer:/# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
root@summer:/# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

root@summer:/etc/ssh# sshd -T

root@summer:/etc/ssh# service ssh start
 * Starting OpenBSD Secure Shell server sshd                                           [ OK ]
 
#Ubuntu的防火墙状态检测,防火墙可能限制SSH端口22
root@summer:~# service ufw status
 * Firewall is not running...                                                          [fail]
root@kylin:~#

重启ssh service

sudo service ssh restart

sshd: no hostkeys available — exiting

在开启SSHD服务时报错.
sshd re-exec requires execution with an absolute path
用绝对路径启动,也报错如下:
Could not load host key: /etc/ssh/ssh_host_key
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available — exiting
解决过程:

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
/usr/sbin/sshd

如果上述两个文件存在,仍然出现这个错误,那么试试 chmod 600 上述两个文件。之后应该可以解决。

ssh login

登陆 SSH
使用 SSH 指令登陆
ssh root@127.0.0.1 -p 22

运行/停止Ubuntu子系统

wsl -l列出了系统中安装的子系统名称,可以是一个或多个,本文中的子系统名称是Ubuntu-18.04-20190707,接下来针对这个默认子系统进行操作:

运行子系统

wsl --distribution Ubuntu-18.04-20190707
或者
wsl -d Ubuntu-18.04-20190707

查看运行中的子系统

 适用于 Linux 的 Windows 子系统:
Ubuntu-18.04-20190707 (默认)

停止子系统

wsl -t Ubuntu-18.04-20190707
或者
wsl --terminate Ubuntu-18.04-20190707

备份/删除/还原子系统

备份子系统

非常简单,但一定要先停止子系统之后再备份
wsl --export Ubuntu-18.04-20190707 c:\temp\Ubuntu-18.04-20190707.tar
等待完成即可。
备份成功后,子系统会被打包成命令中指定的tar文件。

删除子系统

也是一个命令即可:
wsl --unregister Ubuntu-18.04-20190707
这样WSL子系统就从Windows中删除的干干净净了。

还原子系统

删除了没关系,刚才做了备份,也是一个命令还原:
wsl --import Ubuntu-18.04-20190707 c:\WSL c:\temp\Ubuntu-18.04-20190707.tar
这里注意指定还原的路径。成功后,子系统又回来了,可以用wsl -l确认一下。

install docker-engines under ubuntu.

refer to: https://docs.docker.com/engine/install/ubuntu/

#启动docker sudo service docker start
service  --status-all
sudo service docker start #WSL2下能使用 systemctl, 参考:https://www.cnblogs.com/a5idc/p/13752839.html
sudo usermod -aG docker {$USER},$user是linux os你创建的用户,参考:https://docs.docker.com/engine/install/linux-postinstall/
docker run hello-world   #检查是否安装成功

install docker-compose under ubuntu.

参考: https://docs.docker.com/compose/install/

sudo chmod +x /usr/local/bin/docker-compose

在ubuntu下git checkout docker-compose目录,运行mysql等服务。在windows下,可直接使用localhost连接

docker-compose up   #启动并运行
docker-compose up -d  #在后台运行
docker-compose down   

apt-get install telnet

apt-get -y install netcat-traditional

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows->wsl&ubuntu config 的相关文章

  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg
  • 在 powershell 脚本中以不同用户身份本地运行代码块

    这是非常简单的事情 但我就是无法让任何东西发挥作用 我想在特定用户下的 powershell 脚本中运行块代码 关键字是locally我正在使用 powershell 2 0 Invoke Command 似乎需要远程主机 我运行以下命令
  • SidBySide:3rd Party Dll 指的是 MSVCR80.DLL 的两个版本

    我们包含了一个 3rd Party lib DLL 最近在安装时造成了很多麻烦 使用依赖步行者 http www dependencywalker com 我们发现dll本身引用了两个不同版本的 MSVCR80 DLL Version 8
  • 在 Ubuntu 16.04 上找不到 printf.c

    我最近切换到Ubuntu 16 04 我在用vscode作为 Ubuntu 上的 IDE 我配置了其他语言 但我无法做到这一点C C 我创建c cpp properties json launch json tasks json 当我开始编
  • 使用 Windows 命令行连接文本文件,删除前导行

    我需要连接一些相对较大的文本文件 并且更喜欢通过命令行来完成此操作 不幸的是我只有Windows 无法安装新软件 type file1 txt file2 txt gt out txt 允许我几乎得到我想要的 但我不希望 file2 txt
  • Ubuntu 11.10 上的 c 数学链接器问题 [重复]

    这个问题在这里已经有答案了 我从 Ubuntu 升级后出现了一些奇怪的错误 10 11 11 04 i dont know 到 11 10 我正在得到一个undefined reference to sqrt 使用 math h 时并与 l
  • NMCLI 设备不可用

    我正在尝试在 ubuntu core 16 04 上配置带有蜂窝接口的新设备 我有 NMCLI 包在上面运行 在添加连接之前 我检查了接口 nmcli dev DEVICE TYPE STATE CONNECTION eth1 ethern
  • Windows 和 python 3.2 的 Pylint 安装问题

    当我尝试使用 pip 在 Windows 上安装 pylint 时 我遇到了这个问题 我真的不知道它来自哪里 C Python33 Scripts gt pip exe install pylint Downloading unpackin
  • 如何在子 shell 中运行 cmd.exe 批处理文件

    我有一个批处理文件 通常像这样调用 longjob cmd gt result txt 2 gt 1 这工作正常 但脚本在执行过程中更改了目录 将我的 shell 留在该目录中 这很麻烦 有没有办法在子 shell 中运行命令 同时仍然允许
  • Windows 睡眠功能极慢

    我正在通过 Windows h 使用 Sleep 命令制作一个程序 并且在 Windows 10 而不是 Windows 7 上运行我的程序时遇到了令人沮丧的差异 我将我的程序简化为下面的程序 它与我的更复杂的程序表现出相同的行为 在 Wi
  • NodeJs 环境变量与配置文件

    实际上 我有一个 NodeJS Express 应用程序 其配置文件包含主机 端口 JWT 令牌 数据库参数等参数 问题是 将这些参数直接保留在环境变量上 没有任何配置文件 并访问它们 而不需要在所有组件和模块中进行 require 配置是
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • 我需要启用哪些权限才能使 Docker 卷正常工作?

    假设我有一个保存一些数据的 Docker 容器 我希望这些数据能够持续存在 如果容器被停止 删除 升级等 我仍然希望数据位于主机操作系统文件系统上的可访问位置 目前 我的解决方案是创建一个目录 srv service name在我的主机上
  • 如何通过命令行将Flash .fla编译为.swf? [复制]

    这个问题在这里已经有答案了 如何在基于 Windows 的操作系统上通过命令行将 Flash fla 文件编译为 swf 需要安装的命令行工具就可以了 谁能建议我该怎么做 以直接的方式 谢谢 您可以使用JSFL为 Flash IDE 编写脚
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner

随机推荐

  • Gin框架 ShouldBindJSON详解

    为什么第二次使用ShouldBindJSON就失效了呢 今天debug看了下 xff0c 主要是 http Request的io buffer第一次取完之后 xff0c http body 结构体中的sawEOF 61 true 第二次去读
  • linux c语言 线程资源释放

    最近做了多线程并发网络编程的时候出现了一个问题 程序在运行的过程中 占用的内存会越来越大 起初我怀疑是程序有指针没有被 free 导致内存泄漏 在查代码的过程中我发现 xff0c 我并没有手动收回创建的线程资源 通过上网查阅linux线程资
  • 三十五、PHP7 MongDB 扩展安装与使用

    在前面的章节中我们学习了 MongoDB PHP 扩展使用范例 xff0c 不过那篇文章只能针对 PHP5 使用 xff0c PHP7 以上版本则需要使用其它的 PHP MongoDB 扩展 PHP7 Mongdb 扩展安装 假设我们的 P
  • Linux 创建和回收swap分区

    1 查看当前内存使用情况 xff1a free m 2 增加swap分区 xff0c 8G dd if 61 dev zero of 61 swap bs 61 1024 count 61 8192000 swap文件可以放在空间比较大的盘
  • VS2015 + WDK10

    前几天刚刚用VS2008配置好了WDK7600 xff0c 各种配置 xff0c 又是修改项目包含文件目录和库目录 xff0c 还要修改项目属性 xff0c 折腾了半天debug下终于生成了 sys文件 xff08 驱动文件 xff09 x
  • Flutter VS React Native,应该选哪个?

    移动行业渴望进行一场革命 xff0c 以遏制移动应用程序开发过程中出现的成本高 耗时长等问题 因此 xff0c 该变革以跨平台开发的形式出现 现在 xff0c 维护代码和开发应用程序对于开发人员来说变得简单且省时 那么对于开发者来说 xff
  • VScode如何去打开html页面

    首先在打开VsCode 找到扩展商店 搜索open in browser插件 第二步在html页面中点击右键 找到Open In Default Browser 打开浏览器 Open In Other Browser 选择其他的浏览器打开
  • 2、SPSS的基本知识

    目录 一 SPSS软件的安装和启动 二 SPSS的基本操作环境 xff08 1 xff09 数据编辑窗口 xff08 主程序窗口 xff09 xff08 2 xff09 SPSS结果输出窗口 三 SPSS软件的退出 四 SPSS软件的三种基
  • STM32F429IGT6移植FreeRTOS时遇到的问题汇总

    一 学习环境 编译环境 xff1a keil 开发板 xff1a 野火STM32F429开发板 二 遇到的问题 问题一 xff1a error This port can only be used when the project opti
  • 一篇搞懂关于计算机的减法运算

    一篇搞懂关于计算机的减法运算 减法相减结果为正的减法相减结果为负数的减法 减法 相减结果为正的减法 如下一篇拙言 xff0c 是自己平时的总结 xff0c 如有错误欢迎各位大佬指正 相信你一定听说过 xff0c 补码 xff0c 取反加一等
  • 使用Dev C++建立工程文件调用不同文件下的c文件

    在学校嵌入式软件小组课上直播翻车 xff0c 很尴尬 xff01 xff01 xff01 xff01 然后我结束以后仔细找了一歘啊错误原来是因为没有主一头文件的包含形式导致的 我先介绍一下C语言包含头文件时 lt gt 和 34 34 区别
  • Java Spring Boot 热部署

    一 IDEA配置 当我们修改了Java类后 xff0c IDEA默认是不自动编译的 xff0c 而spring boot devtools又是监测classpath下的文件发生变化才会重启应用 xff0c 所以需要设置IDEA的自动编译 x
  • 新手上路——树莓派3B+系统安装

    首先拿到树莓派后是万分开心 xff0c 索然我不知道他是个什么 xff0c 能用来干什么 xff0c 不过貌似是个电脑主机 xff0c 所以就上手玩儿了 刚拿到手里然后去树莓派基金会网站 xff08 https www raspberryp
  • 新手上路——树莓派3B+安装cmake

    安装smake有两种方法地一种是自动安装 第二种是手动安装 建议使用手动安装 xff0c 自动安装不一定是你想要的版本 xff0c 现介绍第一种 方案一 xff1a sudo apt install cmake 这样就结束了方便 快捷 方案
  • 新手上路——树莓派3B+安装OpenCV(你想要的版本)

    啊啊啊啊啊 xff01 xff01 安装六七次都没成功的我近乎崩溃 xff0c 这次终于成功了 xff0c 失败了无数次的我好像让人来教我一下啊 xff0c 可惜没有 xff0c 还是自己琢磨薄吧 xff0c 为了帮助到更多的人我写了一下我
  • 舵机控制使用

    本文仅介绍固定180度舵机 MG996R舵机 SG90舵机 MG90S舵机等 引脚功能 xff1a 舵机的转动角度跟输入脉冲有关 xff0c 详细看下表 xff1a 可以发现一个规律 xff1a 角度每次增加45度 xff0c 高电平时间相
  • Python之You-Get库学习

    今天学习一下You Get这个第三方库 xff0c 体验一下视频下载的快乐 简介 You Get库是一个基于Python3的视频下载工具 xff0c 支持多数国内外主流视频站点的视频下载 看一下项目主页的README md 真的是十分的ni
  • CMake编译CUDA项目报错

    CMake编译CUDA项目报错 现象解决方法结果 现象 configure后显示如下错误 CMake Error at C Program Files CMake share cmake 3 26 Modules CMakeDetermin
  • 程序设计思维 week11 作业

    A 题意 蒜头君从现在开始工作 xff0c 年薪 NN 万 他希望在蒜厂附近买一套 6060 平米的房子 xff0c 现在价格是 200200 万 假设房子价格以每年百分之 KK 增长 xff0c 并且蒜头君未来年薪不变 xff0c 且不吃
  • windows->wsl&ubuntu config

    ref https blog csdn net weixin 45883933 article details 106085184 安装前配置 ref 适用于 Linux 的 Windows 子系统安装指南 Windows 10 1 启用