【WSL】[02] windows subsytem linux 配置和使用

2023-11-09 13:21

本文主要是介绍【WSL】[02] windows subsytem linux 配置和使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第【2】章前言:

上一篇我们已经安装好了ubuntu在WSL下的GUI的桌面:我们现在继续进一步进行配置工作。同时也把,运用WSL的流程摸一把,以备后用。


补充1: 彻底的关闭WSL的方法:

WSL使用后,原来Windows安装的传统虚拟机是用不了的,会报错:Vmware虚拟机报错的原因,其中WSL2是重要的一条,所以,我们先要学会WSL的关闭方法,以免之前的Vmware的资源都不能用了。

如,下图勾选掉这两项,就能够关闭WSL2的功能了 

补充2 关闭WSL中某一个启动的Linxu子系统:

先查询一下:

(base) PS C:\Users\frank_sj> wsl --list --verboseNAME            STATE           VERSION
* Ubuntu          Running         2Ubuntu-20.04    Running         2

命令:wsl --list --verbose 可以简写为:  wsl -l

(base) PS C:\Users\frank_sj> wsl -l -vNAME            STATE           VERSION
* Ubuntu          Running         2Ubuntu-20.04    Running         2

然后用: wsl -t Ubuntu 去停掉其中的Ubuntu的子系统

(base) PS C:\Users\frank_sj> wsl -t Ubuntu
(base) PS C:\Users\frank_sj> wsl --list --verboseNAME            STATE           VERSION
* Ubuntu          Stopped         2Ubuntu-20.04    Running         2

然后用, -d,又可以再打开

(base) PS C:\Users\frank_sj> wsl -d Ubuntu

1 在windows的PowerShell终端进行配置和查询:

1.1 查询所有支持的可以支持的Linux发现版本: 

wsl --list --online

【案,必须科学上网,否则,会报错】

以下是可安装的有效分发的列表。
请使用“wsl --install -d <分发>”安装。

NAME               FRIENDLY NAME
Ubuntu             Ubuntu
Debian             Debian GNU/Linux
kali-linux         Kali Linux Rolling
SLES-12            SUSE Linux Enterprise Server v12
SLES-15            SUSE Linux Enterprise Server v15
Ubuntu-18.04       Ubuntu 18.04 LTS
Ubuntu-20.04       Ubuntu 20.04 LTS
OracleLinux_8_5    Oracle Linux 8.5
OracleLinux_7_9    Oracle Linux 7.9

【这里,还给出来安装的方法】

wsl --install -d OracleLinux_8_5

1.2 查询本机的所有安装版本 

wsl.exe --list --all

(base) PS C:\Users\frank_sj> wsl.exe --list --all
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-20.04 (默认)            

1.3 注销用户名和密码:

在第【1】章,我们新建安装了ubuntu的版本,会自动要求你输入用户和密码,现在如果我们要修改用户密码怎么办?

1.3.1 注销用户和密码

  --unregister <分发>
        注销分发并删除根文件系统。

wsl --unregister Ubuntu-20.04

会删除原有的Linux分发版本。


2 在Ubuntu终端进行配置:

2.1 首次设置用户密码(参照第一章)

2.2 修改用户密码:

donkeycar01@DESKTOP-M4INDEG:~$ sudo passwd
[sudo] password for donkeycar01:
New password:
Retype new password:
passwd: password updated successfully

2.2 设置root账号和密码

donkeycar01@DESKTOP-M4INDEG:~$ su root
Password:
root@DESKTOP-M4INDEG:/home/donkeycar01# sudo passwd
New password:
Retype new password:
passwd: password updated successfully


3 设置更新镜像源:

vi /etc/apt/source.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

#  中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse


4 GUI的安装和使用

(01章已经说明了 gnome-session 的GUI的使用办法)

这里再展示一下另外一个GUI的ubuntu界面:startxfce4

4.1 显示配置

export DISPLAY=localhost:0
export DISPLAY=`cat /etc/resolv.conf | grep nameserver | awk '{print $2}'`:0

4.2 运行startxfce4

这个界面感觉要简洁一点,但是,怎么找不到各种应用了...有兴趣可以研究一下


5 典型GUI应用的安装:

5.1 gedit 

是 GNOME 桌面环境的默认文本编辑器

5.2  GIMP

GIMP 是一种免费的开源光栅图形编辑器,用于图像操作和图像编辑、自由形态绘图、不同图像文件格式之间的转码,以及更专业的任务。

sudo apt install gimp -y

 

 感觉就是个PS,在linux下,

5.3  VLC

VLC 是一种免费的开源跨平台多媒体播放器和框架,可播放大多数多媒体文件。

 【案,这个程序直接在GNOME 的单main的VcXsrv 窗口里面是无法正常运行的】需要使用下面这个设定GUI,才能正常打开运行:

因为他有两个窗口:

5.4 octave

类似于matlab

sudo apt install octave

 【现在,octave是一个多窗口的应用程序,我们需要用到VcXsrv的多窗口模式】

octave --gui &

 【案,这个程序直接在GNOME 的单main的VcXsrv 窗口里面是无法正常运行的

运行后,如下:

在windows的任务栏里面,有三个octave的窗口,现在Ubuntu和windows,的运行环境已经完美的结合起来了。 

上述傅里叶图运行的参考代码如下:

julia.m

#{Inspired by the work of Bruno Girin ([Geek Thoughts: Fractals with Octave: Classic Mandelbrot and Julia](http://brunogirin.blogspot.com/2008/12/fractals-with-octave-classic-mandelbrot.html))Calculate a Julia setzmin: Minimum value of czmax: Maximum value of chpx: Number of horizontal pixelsniter: Number of iterationsc: A complex number#}function M = julia(zmin, zmax, hpx, niter, c)%% Number of vertical pixelsvpx=round(hpx*abs(imag(zmax-zmin)/real(zmax-zmin)));%% Prepare the complex plane[zRe,zIm]=meshgrid(linspace(real(zmin),real(zmax),hpx),linspace(imag(zmin),imag(zmax),vpx));z=zRe+i*zIm;M=zeros(vpx,hpx);%% Generate Juliafor s=1:nitermask=abs(z)<2;M(mask)=M(mask)+1;z(mask)=z(mask).^2+c;endM(mask)=0;end

 juliatest.m

Jc1=julia(-1.6+1.2i, 1.6-1.2i, 640, 128, -0.75+0.2i);imagesc(Jc1)axis offcolormap('default');

6 docker:

 6.1 设置Docker对WSL的支持:

6.2 设置

ubuntu IN WSL 


7 windows 和 WSL 的文件互通:

WSL和windows的互通很简单,就是进入到WSL安装的ubuntu里面,直接进到linux的标准/mnt目录,里面windows的盘符,一个不少都mount好勒,在那里


8 WSL的备份与还原:

8.1 备份:

在windows下,我们只要运行这个:

(base) PS C:\Users\frank_sj> wsl --export Ubuntu D:\WSLvm\Ubuntu.tar

 就能够备份了,极其简单

8.2 还原: 

案,还原,要做的事情,就是要先把之前的各注销掉,再还原

(base) PS C:\Users\frank_sj> wsl --list --verboseNAME      STATE           VERSION
* Ubuntu    Stopped         2
(base) PS C:\Users\frank_sj> wsl --unregister Ubuntu
正在注销...
(base) PS C:\Users\frank_sj> wsl --list --verbose
适用于 Linux 的 Windows 子系统没有已安装的分发版。
可以通过访问 Microsoft Store 来安装分发版:
https://aka.ms/wslstore
(base) PS C:\Users\frank_sj> wsl --import Ubuntu D:\WSL D:\WSLvm\Ubuntu-xfce4ok.tar

8.3 还原为当前用户

系统还原后,会默认到root用户,通过下面命令转回来:【案,注意目录位置】

(base) PS C:\Users\frank_sj\AppData\Local\Microsoft\WindowsApps> ubuntu.exe config --default-user donkeycar


参考:

1 使用 WSL 运行 Linux GUI 应用 | Microsoft Learn

Set up a WSL development environment | Microsoft Learn

3 (1条消息) win10 WSL2 Ubuntu图像化界面安装和配置_到瑞米法扫拉西的博客-CSDN博客_wsl图像 

4 WSL 的基本命令 | Microsoft Learn

5  使用 WSL 运行 Linux GUI 应用 | Microsoft Learn

这篇关于【WSL】[02] windows subsytem linux 配置和使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/376364

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1