安装和启动

旧版本的 win10 需要在“控制面板->程序->启用或关闭Windows功能”勾选“适用于Linux的Windows子系统(Beta)”

由于现在这个功能已经不再是 beta 功能了,只要保证你的 windows 安装了最新的所有补丁与更新,这个选项就已经不复存在了,取而代之的,只要在 windows 自带的应用商店(Microsoft Store)上搜索 linux,下载并安装即可

可以看到,目前 windows 中提供了 Debian、Ubuntu、Kali、SUSE、openSUSE 等发行版,发行版的数量还在不断的增加,可以说是任你选择了,博主选择了现在非常流行的 ubuntu 系统安装

安装完成后,在开始菜单就会出现图标,点击进入即可,当然,你也可以选择点击 win + R 在运行窗口中键入 bash 打开

安装好的是一个非常初步的 linux 操作系统,相信诸如用户创建、默认目录创建权限等等这里就不需要介绍了

0x800703fa

有时启动时会出现下面的报错:

1  WslRegisterDistribution failed with error: 0x800703fa

此时,在运行窗口中执行“services.msc”指令,在本地服务中重启 **LxssManager** 服务,再启动Linux即可

0x80070057 错误

0x80070057 错误是因为你的 windows 还不是最新版,在线安装所有更新,重启电脑后再次尝试即可

0x8007019e 错误

安装过程中可能出现下面的文本提示:

1  Installing, this may take a few minutes...

2  Installation Failed!

3   Error: 0x8007019e

4   Press any key to continue...

这个问题是因为 windows 还没有启用 windows 子系统功能

“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭Windows功能”

或者在 Windows PowerShell(管理员)中输入:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem

-Linux

执行完成后重启电脑即可

相关文件目录位置

bash.exe 文件路径

既然通过 win + R 执行 bash 就可以打开,那么 bash.exe 当然是在系统环境变量 PATH 下,找一下就会发现,果然不出所料,在 C:\Windows\System32 目录下

bash 安装路径

win10 的 linux 子系统在下面的路径中:

C:\Users\${用户名}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

windows 硬盘挂在路径

在 linux 子系统中,是完全可以访问任何 windows 磁盘的,所有的 windows 磁盘都默认挂载在 /mnt 路径下

更改 bash 配色

可以通过右击标题栏左上角图标弹出的菜单中,选择属性或默认值,来调整当前或默认配置

但是,通过这样来更改颜色有些复杂,这里提供一个开源工具来提供几个主题风格

https://github.com/zeyu203/console

解压 tool 目录下的 zip 包,在 windows 上执行:

1   colortool.exe [options] <schemename>

可选的 <schemename> 就是 schemes 目录下的文件名,你也可以定义自己喜欢的主题

可选的 options 有:

ColorTool 命令选项
选项 完整选项 说明
-? --help 打印帮助信息
-c --current 打印当前主题
-q --quiet 不打印颜色表格
-d --defaults 只更改默认主题
-b --both 同时更改默认主题与当前主题
-s --schemes 打印所有可选主题
-v --version 打印版本号

使用 XShell 连接 win10 linux 子系统

也许你觉得 bash 的颜色难以调整,也许你觉得 bash 没有 XShell 或其他 shell 工具功能强大

总之,无论你出于什么理由,如果你也和博主一样,想要用 XShell 或其他 shell 工具连接到 linux 子系统上,那么就接着看吧

用 XShell 连接 linux 子系统的原理非常简单,子系统将 ssh 服务开启到某个端口(默认是 22 端口)上,然后 XShell 连接 localhost 对应的端口即可

linux 子系统中默认安装的 ssh 是缺少秘钥的,解决办法有两个,一个是手动配置 aes 等几种秘钥,这个对于大部分用户来说太过于繁琐和复杂,另一个解决办法是卸载掉 ssh 重新安装

执行下面命令即可:

1   sudo apt-get remove --purge openssh-server

2   sudo apt-get install openssh-server

重新安装后,那些密钥文件就会自动生成了,但是此时还是不能连接,博主遇到这个问题也是百思不解,按照网上的教程反复尝试都无法解决

最终,删除 ssh_config 后重启,居然就这样连接成功

1   sudo rm /etc/ssh/ssh_config

2   sudo service ssh --full-restart

xshell 配色

下面是一个博主自己设置的 xshell 配色供各位参考:

[Pastel on Black]

text(bold)=ffffff

magenta(bold)=8080c0

text=ffffff

white(bold)=ffffff

green=00ff00

red(bold)=ff0000

green(bold)=00ff00

black(bold)=000000

red=ff0000

blue=68b4ff

black=000000

blue(bold)=11b1ff

yellow(bold)=ffff00

cyan(bold)=00ffff

yellow=ffff00

magenta=8080c0

background=000000

white=c0c0c0

cyan=00bbbb

[Names]

count=1

name0=Pastel on Black

中文乱码

中文乱码的原因无非是系统没有安装中文语言包以及默认字符编码问题

针对两个问题分别解决即可

安装中文语言包

如果是 ubuntu 操作系统,那么首先要更新源,可以在网上查找到各个性能卓越的服务器上的源,这里就不罗列了

更新源以后,执行下面的命令安装中文语言包即可:

1   sudo apt install -y language-pack-zh-hans language-pack-zh-hans-base

设置默认字符编码

在用户目录下的 .profile 文件中添加:

1   LANG=zh_CN.UTF-8

如果想要影响所有用户,那么在 /etc/profile 文件中添加上述配置即可

安装 linux 第一时间应该做的事

上面所有问题都已经解决了,你已经可以上手做任何你说想要在 linux 下做的事情了

但是,也许你仍然觉得这样一个刚刚安装的系统非常不顺手,又不知道该从何变得更加顺手,那么,下面的几个建议你可以按照自己的喜好去执行

修改文件模式屏蔽字

linux 子系统默认的 umask 是 000,这意味着你创建的所有文件、目录都是 000 权限的,通过执行 umask 命令即可修改:

1   umask 002

当然了,最好是将这行命令放到 /etc/profile 或 bashrc 中

创建你的用户

刚刚安装的 linux 子系统的默认用户是 root,超级用户的权限过大,这当然是不行的,创建一个自己的用户是非常有必要的

  • 创建用户

执行 adduser ${username} 即可

  • 授权

执行 sudoers 会提示“未找到这个命令”,此时,执行 whereis sudoers 返回 /etc/sudoers,查看这个文件的权限会发现原来无法执行 sudoers 命令是因为没有编辑权限

此时执行下面命令为该文件添加编辑权限:

1   chmod -v u+w /etc/sudoers

打开这个配置文件,在其中添加权限描述即可:

1   ${username} ALL=(ALL) ALL

配置文件

  • bashrc

博主自己用的 bashrc 可以供大家参考,里面定义了一些命令的简化版,设定了字符编码、上面提到的 umask、同时有了 git 命令的自动补全脚本、增大 history 文件默认行数等,较为实用

我的 bashrc

针对 WSL,在 bashrc 里面引用的 .init.sh 中,我加入了以下内容,用来启动必要的服务

1  nohup /usr/bin/php /root/.init.php > /dev/null 2>&1 0</dev/null &

在 .init.php 中写入了

<?php
$start_service = array("mysql", "ssh", "cron");
$input = shell_exec("/usr/sbin/service --status-all");
$arr = explode(PHP_EOL, $input);

$log_base = '/root/.techlog_log/serviceinit.log-';
$log_file = $log_base.date('Y-m-d');
$old_file = $log_base.date('Y-m-d', time() - 7*86400);
if (file_exists($old_file)) {
    unlink($old_file);
}

foreach ($arr as $service) {
    $infos = explode(']', $service);
    if (sizeof($infos) == 2) {
        $infos[0] = trim(str_replace("[", "", $infos[0]));
        $infos[1] = trim($infos[1]);
        if (in_array($infos[1], $start_service)) {
            if ($infos[0] !== '+') {
                $result = shell_exec('/usr/sbin/service '.$infos[1].' start');
                file_put_contents($log_file, date('Y-m-d H:m:s')."\t"
                    .str_replace(PHP_EOL, " ", $result).PHP_EOL, FILE_APPEND);
            }
        }
    }
}
?>

win10启动内置Linux系统时,报错:WslRegisterDistribution failed with error: 0x800703fa相关推荐

  1. 安装ubuntu系统,报错WslRegisterDistribution failed with error: 0x8007019e

    在windows应用商店安装ubuntu系统,报错WslRegisterDistribution failed with error: 0x8007019e 1.报错: Installing, thi ...

  2. Win11安装Ubuntu子系统报错WslRegisterDistribution failed with error: 0x800701bc

    系统信息 报错信息 在网上找,得到解决方案:下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包 下载链接:https://wslstorestorage.blob.core.win ...

  3. 安装wsl2报错WslRegisterDistribution failed with error: 0x80370102解决方案

    目录 安装过程 方法一安装WSL 方法二手动安装 报错解决办法 首先,确保安装过程是正确的! 附官方教程 安装 WSL | Microsoft Learn 方法一安装WSL (管理员模式)powers ...

  4. w10系统自带linux系统,win10下,内置linux系统的安装和体验,你造吗?

    原标题:win10下,内置linux系统的安装和体验,你造吗? 众所周知,windows系统和linux系统一直是水火不容,而在最新的win10系统却完美兼容了linux系统,但是在默认情况下是关闭的 ...

  5. eclipse不报错 intelliji 报错_小白提问:导入内置包winsound不报错但没声音是什么情况?...

    6月6日网友@Puyang The Process 在python论坛提问: 导入内置包winsound不报错但没声音是什么情况? 咱公众号的大佬们能帮助解答吗? 哈哈,python论坛设置了邮箱提醒 ...

  6. 报错:FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask原因查找

    项目场景: 使用hive分析.处理数据时 问题描述 执行hive语句后,报错:FAILED: Execution Error, return code 2 from org.apache.hadoop ...

  7. oracle补丁报错10044,【案例】Oracle补丁 数据库打patch报错OPatch failed with error code 73...

    天萃荷净 运维DBA反映在给Oracle数据库安装patch补丁时报错OPatch failed with error code 73,分析原因为相关服务未关闭导致 打patch出现Copy fail ...

  8. linux修改密码报错‘Authentication token manipulation error‘

    本次事故使用操作系统为centos7 1.报错起因: 利用chage设置root用户密码定期更换后,到期之后登录系统,输入密码之后,提示要改密码,输入新密码之后,报错 'Authentication ...

  9. linux下编译报错:gcc: Syntax error: Unterminated quoted string

    本来可以编译的代码,换一个编译环境就边不过了. 报错:gcc: Syntax error: Unterminated quoted string 原因:工具链基于 bash写的,在 dash 下运行脚 ...

最新文章

  1. DataGridView滚动慢的解决方法
  2. jQuery_$工具方法
  3. 1个ieee1394端口_ieee1394接口是什么及作用
  4. 对特朗普获胜感到意外? 那你是被社交媒体迷惑了
  5. Java,Scala,Guava和Trove集合-它们可以容纳多少数据?
  6. 每日一题——王道考研2.2.4.1
  7. python 中split函数的应用_举例详解Python中的split()函数的使用方法
  8. Postgresql的character varying = bytea问题
  9. jQuery入门[2]-选择器
  10. Spring Cloud之Feign客户端调用工具
  11. caffe(CPU版本)配置 及MNIST调用
  12. 机器学习十大算法简介
  13. Android APP启动其他APP(一个APP拉起(跳转到)另一个APP)
  14. 为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu
  15. 华为鸿蒙系统2.0是什么?Android的升级版?
  16. QTableWidget中如何清空行,并保持行仍可再写入数据
  17. Cookie | Cookie的理论基础、Cookie中常用的方法
  18. python 波动率锥_推广 || 12个小时干货分享!上海财大期权实战特训课程(11月)...
  19. 魏小亮:国内软件工程师如何面试硅谷创业公司
  20. python ConfigParser 区分大小写

热门文章

  1. Selenium+Python3爬取微博私信
  2. 【Flutter】Flutter 布局组件 ( Opacity 组件 | ClipRRect 组件 | Padding 组件 )
  3. hgame-2023-week4
  4. android 设置listview滚动条,Android ListView 滚动条的设置详解及实例代码
  5. 什么企业能被称为重点龙头企业
  6. 实测2023款哪吒U-II,智驾功能对女司机很友好
  7. 《说透芯片》学习笔记 Day 3
  8. 花呗问答匹配(part1 数据预处理)
  9. 记录故障解决--ThinkPad. E14 Gen 2开机发出警报
  10. 字符串拷贝函数Strcpy的实现