windows10安装子系统Ubuntu 20.04

2023-05-16

很久之前就听说了windows10的子系统。因为平时用macOS比较多,一直没有体验一把。最近切到windows环境下开发,正好有空体验一把windows的子系统。

文章目录

  • 安装环境
    • 先决条件
    • 检查版本
  • 实战
    • 程序与功能启用子系统
    • 应用商店安装Ubuntu20.04子系统
  • 配置
    • 启用root用户
    • 更新apt
    • linux管理windows的磁盘
    • 使用国内的源
    • 美化终端oh my zsh
      • 安装zsh
    • Ubuntu安装设置中文
    • 安装pip3
    • 安装python3支持的neovim
    • 安装ranger
    • 安装 node.js
      • nodejs切换taobao源
    • 安装 unzip
    • 搭建nvim + react开发环境
    • 开发react native
  • 总结
  • 参考

安装环境

先决条件

windows 10 64位版本号14316以上。

检查版本

在这里插入图片描述

win+R,输入winver命令。
在这里插入图片描述
在这里插入图片描述
如果版本较低,请自行升级系统。

实战

程序与功能启用子系统

打开"此电脑",地址栏中输入以下内容,就可以直接进入 “程序与功能”

控制面板\程序\程序和功能

在这里插入图片描述
在这里插入图片描述

如果此处不开启,后面安装子系统时会报错。

应用商店安装Ubuntu20.04子系统

开始菜单中,打开Microsoft Store
在这里插入图片描述
搜索 linux ,这里会显示多个发行版本。我这里以Ubuntu20.04为例。
在这里插入图片描述
在这里插入图片描述
点击“启动”后会见到如下的界面 :
在这里插入图片描述
稍等片刻就会出现设置用户名密码的界面:

在这里插入图片描述
到这里windows 子系统就安装完成了。后面可以自行发挥了。

配置

启用root用户

设置root用户密码

sudo passwd root

切换root用户
命令:

su root

执行结果如下 :

itkey@DESKTOP-9M6MAVM:/$ su root
Password:
root@DESKTOP-9M6MAVM:/# whoami
root

更新apt

建议更新一下,这样可以防止安装软件报错。

apt upgrade

linux管理windows的磁盘

磁盘默认挂载在/mnt/下面。

cd /mnt/

在这里插入图片描述

使用国内的源

手动更改配置文件

警告 操作前请做好相应备份

一般情况下,将 /etc/apt/sources.list 文件中 Ubuntu 默认的源地址 http://archive.ubuntu.com/ 替换为 http://mirrors.ustc.edu.cn/ 即可。

可以使用如下命令:

cp /etc/apt/sources.list /etc/apt/sources.list_bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

更改完 sources.list 文件后请运行 sudo apt-get update 更新索引以生效。

美化终端oh my zsh

在这里插入图片描述

安装zsh

自从使用了oh my zsh后,感觉就回不去啦,漂亮的颜色,实用的插件。必须配置一下。
更新一下apt-get

apt-get update

安装zsh

apt-get install zsh

查 zsh位置

which zsh

一般位置/usr/bin/zsh
切换到zsh,执行下面命令:

chsh -s /usr/bin/zsh

国内加速oh my zsh ITKEY个性化配置版
集成如下插件

  • 语法高亮插件
  • 自动补全插件
    仅下载相关文件(~/.oh-my-zsh与oh-my-zsh配置文件),不检测先决条件,比如是否安装了zsh。
bash -c "$(curl -fsSL https://gitee.com/lxyoucan/tools/raw/master/common/ohmyzsh_itkey.sh)"

Ubuntu安装设置中文

在我设置完成zsh后,我发现在编译java代码的时候会遇到中文乱码的问题。之前在用bash时是没有中文乱码的,我猜测是哪个地方的编码配置有问题导致的。然后我设置一下中文环境就解决了中文乱码的问题了,也许有更简单的解决办法。

查看当前语言环境

echo $LANG

查看当前系统是否有中文语言包

locale -a

执行结果如下:

localhost# locale -a
C
C.UTF-8
POSIX
zh_CN.utf8
zh_SG.utf8

如果没有中文则,安装中文语言包。

apt install language-pack-zh-hans

修改系统环境变量为中文

然后,修改/etc/environment(在文件的末尾追加):

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

修改用户环境变量,因为我上面使用的是zsh。所以修改环境变量~/.zshrc,如果你使用的是bash(默认的)则是~/.bashrc

vim ~/.zshrc

增加以下:

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

再修改/var/lib/locales/supported.d/local(没有这个文件就新建,同样在末尾追加):

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312

最后,执行命令:

$ sudo locale-gen

以上,问题解决,中文显示正常。😃
现在是不是中文环境,可以运行 date命令看一下。

localhost# date
2021年 08月 26日 星期四 15:31:20 CST

安装pip3

sudo apt-get -y install python3-pip

检查版本信息:

pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

国内源加速

mkdir ~/.pip
vim ~/.pip/pip.conf

文件中写入下面的内容。

[global]
index-url = https://mirrors.aliyun.com/pypi/simple

安装python3支持的neovim

neovim在我眼里是一个不错的编程软件,因为我用到的一些插件是需要python3支持的,所以就直接安装python3支持的neovim吧。

sudo apt-get install python3-neovim

更新pynvim

pip3 install --user --upgrade pynvim

检查是否成功
nvim中输入:checkhealth
在这里插入图片描述

安装ranger

pip3 install ranger-fm

此时发现不能正常运行。
修改环境变量:

vim ~/.zshrc

增加以下内容

PATH=$PATH:$HOME/.local/bin:$HOME/bin

安装 node.js

我工作中使用的是node 14版本,就安装 个14吧。

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

安装

sudo apt install nodejs

如果显示时间很久,就Ctrl + C关闭重新运行试试。
查看版本

node -v

我的执行结果如下 :

node -v
v14.17.5

nodejs切换taobao源

# 使用nrm工具切换淘宝源
npx nrm use taobao

# 如果之后需要切换回官方源可使用
npx nrm use npm

这个命令我在其他系统中都运行成功了,但是在这里并没有成功,原因不详。

然后我使用了这个方法:
https://mirrors.ustc.edu.cn/help/node.html

安装 unzip

sudo apt install unzip

搭建nvim + react开发环境

这脚本本是我在centos中使用,用于更新配置文件用的。实际上在ubuntu中也可以使用。因为ubuntu本人用的相对较少,我就不单独为ubuntu写一键脚本了。来个半自动的吧。
使用前提,以下软件都已经安装了,如果没有安装请手动安装,文章上面我已经介绍如何安装了。

  • git
  • python3
  • nvim+pynvim
  • node.js
  • ranger
  • unzip
bash -c "$(curl -fsSL https://gitee.com/lxyoucan/tools/raw/master/centos7/nvim/nvimIDEUpdate.sh)"

执行完成后,只是自动配置了nvim的插件和配置,现在nvim打开会报错,因为vim-plug还没有正常安装,那下面我手动安装一下这个插件。

# 安装 vim plug插件
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://gitee.com/lxyoucan/tools/raw/master/centos7/nvim/home/.local/share/nvim/site/autoload/plug.vim'

# 下载 rplugin.vim配置文件
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/rplugin.vim --create-dirs \
       https://gitee.com/lxyoucan/tools/raw/master/centos7/nvim/home/.local/share/nvim/rplugin.vim'
# 修改配置文件中的<USER>为当前的用户名
sed -i "s/<USER>/${USER}/g" "${HOME}/.local/share/nvim/rplugin.vim"

以前步骤做完后,我们的react开发环境就搭建好了。

开发react native

这里我们用expo开发RN。

#安装expo-cli
sudo npm install --global expo-cli
sudo npm install -g yarn

#初始化
expo init rn-with-wsl

在这里插入图片描述

总结

使用了WSL的体验,可以舒服的在windows中使用一些linux的软件了。但是对比我使用虚拟机中的linux,我能感觉到WSL的性能明显要差一些,安装解压速度都感觉慢。
但是WSL可以直接访问windows的磁盘,这就可以很方便调试使用windows中的文件 。

参考

https://www.jianshu.com/p/6af3846dbe68

  • 《Installing pip3 in Ubuntu》
    https://www.educative.io/edpresso/installing-pip3-in-ubuntu
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows10安装子系统Ubuntu 20.04 的相关文章

  • 设置iTerm2为默认终端

    虽然安装了iTerm2 xff0c 但是有一程序还是会调用系统自带的终端打开程序 如何解决呢 xff1f 设置方法如下 xff1a iTerm2 61 gt Make iTerm2 Default Term
  • ModuleNotFoundError: No module named ‘requests‘

    环境 macOS 11 4 明明已经执行了 xff1a pip3 span class token function install span requests 依然报错 这就让我想到电脑上好像有存在两个pip3 报错 xff1a impo
  • http隧道Neo-reGeorg使用笔记

    项目简介 https github com L codes Neo reGeorg Neo reGeorg 是一个旨在积极重构 reGeorg 的项目 xff0c 目的是 xff1a 提高 tunnel 连接安全性 提高可用性 xff0c
  • 神器webssh学习笔记

    简介 项目主页 xff1a https github com huashengdun webssh 一个简单的 Web 应用程序 xff0c 用作 ssh 客户端以连接到您的 ssh 服务器 它是用 Python 编写的 xff0c 基于
  • react native中使用base64加密解密

    使用方法 考虑使用与和兼容的base 64 xff0c 在 react 和 react native 中对我有用 xff1a btoaatob span class token function npm span span class to
  • kali新手入门教学(16)--如何在校园网下使用桥接模式上网

    emmm很长时间都没有更新了 卑微的我要准备期末考 然后返校什么的耽误了 xff0c 对不起大家啦 再次感谢大家的支持啦 刚收拾完我的寝室 xff0c 打开电脑登上校园网 ip变化很大 xff0c 这也是大家经常遇见的情况 xff0c 本地
  • React Native 兼容ios与android的弹出提示toast

    由于 iOS 没有内置的 toast 功能 xff0c 因此 React Native 开发人员必须实现自己的跨平台 toast 库 react native root toast是开发人员与 React Native 社区共享的一种解决方
  • Unable to resolve module react-native-pager-view

    报错信息 Unable to resolve module react native pager view from home apex wp expo jsjs node modules 64 ant design react nativ
  • Expo开发Field: splash.image - cannot access file at ‘./assets/splash.png‘

    报错信息 Error Problems validating asset fields in app json Learn more https docs expo io Field splash image cannot access f
  • Expo开发的App如果获取版本信息

    如何获取版本信息 xff0c 实际上很简单 但是我第一次使用expo获取版本信息 xff0c 还是查看了好多expo的文档才找到 所以就记录一下吧 版本信息配置app json span class token punctuation sp
  • React Native每次进入页面执行一次方法

    问 xff1a 有什么办法 可以在我每次进入页面的时候 执行一次方法吗 因为我看rn的生命周期 都是只执行一次 然后在下次进入的时候就不会再执行方法了 答 xff1a 在function组件中可以这样实现 xff1a span class
  • http隧道Chisel

    http隧道有啥用呢 xff1f 有些服务器封端口或者封协议只能走http协议 远程维护机器很不方便 xff0c 可能要VPN 43 堡垒机 xff0c 甚至还有限制了ssh客户端的 这里我就会考虑使用http隧道的方式 同类文章推荐 xf
  • Sockets代理的使用简介

    如果拥有了Sockets代理服务后 xff0c 应该如何使用它呢 xff1f 本文就简单介绍一下 xff0c 本人的经验分享 浏览器代理 以firefox为例 xff0c 其他浏览器类似 很简单 xff0c 看下图应该就能明白 设置好代理后
  • cannot drop a user that is currently connected

    删除用户时 xff0c 提示正在连接的用户无法删除 那就强制断开连接吧 xff01 错误信息 SQL span class token operator gt span drop user usr sg cascade span class
  • ModuleNotFoundError: No module named ‘setuptools_rust‘

    我在执行pip3 install webssh遇到以下的报错信息 报错信息 Traceback most recent call last File line 1 in File tmp pip build my9sai1o cryptog
  • 无限渗透实战(2)--绕过认证上校园网

    校园网大家都熟悉 一般都是开放的 xff0c 然后连接之后有个登录页面 xff0c 认证之后就可以上网了 xff0c 那么我们怎么绕过认证直接上网 首先还是开始监听周围的ap 可以看到有许多的校园网 那么我们就需要开始监听周围的校园网 xf
  • spring boot jar自定义端口启动

    java jar spring zs 1 0 jar server port span class token operator 61 span 9090
  • CentOS7中安装五笔输入法

    使用vnc远程了一点服务 xff0c 远程维护 GNOME默认自带的是ibus输入平台 默认有一个拼音输入法 但是我日常使用五笔打拼音还是不太习惯 xff0c 那就安装个五笔输入吧 相关阅读 xff1a Centos7安装和配置VNC服务器
  • CentOS7下vscode无响应

    原因分析 xff1a 我以前安装vscode是可以正常使用的啊 为什么现在不行了呢 xff1f 我怀疑会不会是新版的兼容性不行 我安装的是code 1 58 2 1626302881 el8 x86 64 rpm 后来在看到这篇文章 Cen
  • Bad owner or permissions on ~/.ssh/config

    ssh运行报错如下 xff1a Bad owner or permissions on ssh config 解决办法 span class token function chmod span 600 ssh config 参考 https

随机推荐

  • java.lang.NoClassDefFoundError: org/owasp/encoder/Encode

    一个老的spring boot项目中使用到了shiro xff0c 存在安全漏洞 xff0c 由于源码丢失 xff0c 只好采用解压jar升级里面shiro的jar来解决了 但是升级以后遇到报错如下 报错信息 Caused by java
  • A VNC server is already running as :1

    现象 VNC服务使用 Centos7安装和配置VNC服务器 GNOME篇 https blog csdn net lxyoucan article details 113179208 中的配置方法 一开始服务都是正常的 xff0c 在我多次
  • CentOS7+IntellJ IDEA 中文输入问题

    心血来潮在CentOS7中搭建了java开发环境 xff0c 发现在IDEA中输入中文存在问题 中文输入法只能输入1到2个中文 xff0c 后面都是英文了 xff0c 那就想办法解决一下吧 xff01 环境 我的环境信息如下 xff1a 项
  • CentOS7安装CMakev3.21.0

    yum 安装的CMake版本是 2 8 12 2 xff0c 比较旧无法使用 那就来升级一下吧 cmake span class token keyword span CMake Error at CMakeLists txt 1 span
  • CentOS7+VNC+Openbox+Fcitx

    文章目录 简介VNCopenboxFcitx 实战环境信息安装与自动配置脚本创建用户开启 VNC服务 客户端连接VNC实现远程控制假如vnc中输入法切不出来参考 简介 VNC VNC xff08 Virtual Network Comput
  • vnc学习笔记合集

    文章目录 CentOS7 43 VNC 43 Openbox 43 FcitxCentOS中VNC常用命令Centos7安装和配置VNC服务器 GNOME篇Centos7安装和配置VNC服务器 Xfce篇Centos7安装和配置VNC服务器
  • linux_pwn(3)--Chunk Extend and Overlapping&&roarctf_2019_easy_pwn

    文章目录 What is Chunk Extend and Overlappingpwn题思路例题保护机制add函数show函数delete函数edit函数 开始做题准备框架调试覆盖后面一个块的大小释放堆块free验证机制尝试修改堆块开始泄
  • 2021CentOS7系统Gnome3桌面使用Fcitx

    前言 CentOS系统大多是用于服务器上 xff0c 当作桌面系统使用的比较少数了 就算偶而使用CentOS当作桌面系统使用 xff0c Gnome3桌面自带的输入法框架ibus简单使用已经够用了 最近在CentOS7当作桌面系统当临时开发
  • CentOS7安装搜狗输入法

    搜狗拼音输入法是2006年6月由搜狐公司推出的一款汉语拼音输入法 搜狗输入法从一开始偏向于词语输入特性 xff0c 发展到后来配备云输入功能的以整句输入为优势的输入法 xff0c 是中国大陆市场主流的汉语拼音输入法 根据极光大数据的 201
  • CentOS7一键安装搜狗输入法

    自动档 span class token function sh span c span class token string 34 span class token variable span class token variable s
  • CentOS7一键开启VNC服务脚本

    最近在研究舒适 xff0c 小巧 xff0c 好用的图形界面远程控制 输入法这块卡了我很久时间 xff0c 经过一周的努力 xff0c 查资料无数 xff0c 终于打造出一套可以令自己满意的远程方案了 我的工作中接触的远程Linux服务系统
  • shell用户输入数字加法操作

    用户输入2个数字进行加法操作 span class token builtin class name echo span span class token string 34 请输入数字1 34 span span class token
  • 浅谈linux文件权限

    权限介绍 访问权限 读取 xff08 r xff09 xff1a 允许查看文件内容 xff0c 显示目录列表写入 xff08 w xff09 xff1a 允许修改文件内容 xff0c 允许在目录中新建 删除 移动文件或者子目录可执行 xff
  • Linux实用脚本分享

    源码 xff1a https gitee com lxyoucan tools CentOS7专用脚本 因为我平时接触的大部分机器都是CentOS7 这里的脚本都是针对CentOS7开发的 虽然个人比较喜欢新的软件 xff0c 喜欢arch
  • react踩坑之函数名(){}与函数名=()=>{}的区别

    在React Component组件中 xff0c 函数不同的写法有什么区别 最近在看书 xff0c 照着写敲代码 xff0c 敲完后发现与书上效果不一样 找了很久才找到区别 打这个小坑记录下来 xff0c 这个应该新手比较容易犯的错 结论
  • chrome全屏

    有一些web网站可能当作单独的应用使用 如果全屏显示 xff0c 不显示地址栏 让更多的区域给应用呢 xff1f 首先说一下 xff0c 我用的是Macos系统 xff0c 其他系统的参数应该是类似的 MacOS MacOS配置别名 默认的
  • expo cli升级后无法iOS模拟器调试Request failed with status code 400

    国内expo的教程和文档相对比较少 xff0c 记录下过程方便一下遇到相同问题的朋友们 现象 expo初次安装使用正常 xff0c 当升级expo cli到最新版本后 xff0c 无法正常使用iOS模拟器调试了 开启调试报错如下 xff1a
  • docker-compose 巧妙使用

    一般做ctf题目 xff0c 有时候题目给了docker 一般 docker compose up build d d表示运行成果后进入后台 这个命令不仅帮我们build image xff0c 也帮我们run了个容器 docker com
  • expo中使用react navigation 6.x笔记

    新版本react navigation 6 x xff0c 与5 x有什么区别呢 xff1f 记个笔记吧 xff01 文章目录 环境安装依赖安装 native stack navigator library示例 xff1a 导航到一个新的屏
  • windows10安装子系统Ubuntu 20.04

    很久之前就听说了windows10的子系统 因为平时用macOS比较多 xff0c 一直没有体验一把 最近切到windows环境下开发 xff0c 正好有空体验一把windows的子系统 文章目录 安装环境先决条件检查版本 实战程序与功能启