[转]Win10下安装Linux子系统
工作以来一直DotNet系偏C/S,
接触Web开发的时间也不长,
现在主要偏向Web全栈方向,
一直对Linux系统心生向往,
夜深了娃睡了,
打开老旧的笔记本来折腾一下。
准备工作
-
控制面板 》 程序和功能 》 启用或关闭 Windows 功能
勾选【适用于 Linux 的Windows 子系统】
-
设置 》 更新和安全 》 开发者选项
选择【开发人员模式】
做完准备工作,需要重启电脑,
不然安装完 Ubuntu 后启动时还是会提示
下载安装 Ubuntu
-
打开 Microsoft Store 应用商店
点【开始】输入 Microsoft Store 即可找到,打开搜索 Linux。
-
第一个就是 Ubuntu,点【免费下载】
下载+安装,完毕后会出现启动按钮,也可以在开始菜单找到并打开。
-
启动 Ubuntu
如果在准备工作后没有重启,此时会找不到子系统,还是需要重启一下的。
-
安装中...
正常情况的话就会是以下这样:
- 设置用户名密码以添加用户
通过命令行,就可以便捷地完成很多工作了,
准备另外开一篇记录 bash 总结。
现在,我们还有两点需求:
- 网络原因,跟之前介绍的 npm 一样,需要将源换为国内镜像
- 操作习惯,安装一个图形界面,便于浏览网页查看图片等
切换源
-
先备份下原源文件
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak; # or sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak1
-
复制
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
-
粘贴
sudo apt edit-sources
选择 Vim 打开文件,或者直接:
sudo vim /etc/apt/sources.list
然后输入
:1,d
清空所有行,复制上面的镜像内容,在这里点鼠标右键就粘贴上了。:wq
保存并退出,编辑完成后会提示:
Your '/etc/apt/sources.list' file changed, please run 'apt-get update'.maony@Hasee-201301:/etc/apt$
输入:
sudo apt update # 替代了 sudo apt-get update
更新结束:
安装图形界面
-
lxde
sudo apt install lxde
sudo apt install vnc4server
基本每次安装东西会询问是否安装,输入
Y
,然后耐心等待安装完成即可。可以一次安装多个,上面两个主要的单独列出来了而已。
sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
配置 vncserver 的 xstartup 文件:
sudo vim /home/username/.vnc/xstartup
替换为以下内容:
#!/bin/sh export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal & start lxde &
参考了很多资料都没有启动起来桌面,最终加了上面的最后一句
start lxde &
才可以的。 -
win10上使用 vncviewer 来连接 ubuntu
点连接(https://bintray.com/tigervnc/stable/download_file?file_path=vncviewer64-1.9.0.exe)或另行搜索下载 vncview。
-
使用方法
-
在WindowsSubSystemLinux(WSL)的Ubuntu上启动 vncserver,
vncserver # 等同于 vncserver :0,以这个数字ID区分可以开多个桌面
-
在Win10上,启动VNC Viewer
输入ubuntu系统地址,如果vncserver :1
,这里就是127.0.0.1:1
,默认为0可以省略。
-
以下为没有正常显示出图形界面的情况:
正常显示的情况:
这个极简的界面显得low一些(虽然这不是重点),等改天还是再整个漂亮点的UI吧。
2019/11/14补充
-
另外一个桌面:xfce4
sudo apt install xubuntu-desktop xfce4
编辑
/home/username/.vnc/xstartup
,将最后一行的命令替换为(注意没有空格)startxfce4 &
---------------------
作者:CoderMonkey
来源:CNBLOGS
原文:https://www.cnblogs.com/CoderMonkie/p/wsl-ubuntu.html
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
原文地址:https://www.cnblogs.com/admans/p/11944846.html
- POJ 1321 棋盘问题(DFS板子题,简单搜索练习)
- python接口自动化12-案例分析(csrfToken)
- Python基础学习笔记
- POJ 3278 Catch That Cow(BFS,板子题)
- 【请您听我说】PHP语法特点的一些看法
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
- 查找第k小的元素(O(n)递归解法)
- C/C++对bool operator < (const p &a)const的认识,运算符重载详解(杂谈)
- C/C++中substr函数的应用(简单讲解)
- C++ STL学习之容器set和multiset (补充材料)
- Codeforces Round #410 (Div. 2)(A,字符串,水坑,B,暴力枚举,C,思维题,D,区间贪心)
- 关于int *a[常量]与int (*a)[常量]的分析与区分(详解)
- python笔记3-发送邮件(smtplib)
- 关关的刷题日记01—Leetcode 169. Majority Element
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Shell中如何删除文本比较长的行的实现方法
- apache 开启重定向 rewrite的实现方法
- CentOS 7搭建Linux GPU服务器的教程
- 简单谈谈Linux内核定时器
- Ubuntu cron日志开启与查看的实现步骤
- 详解Apache配置多个监听端口和不同的网站目录
- CentOS7服务器中apache、php7以及mysql5.7的安装配置代码
- Ubuntu中静态DNS配置的方法详解
- shiro缓存机实例代码
- Linux deepin 删除多余内核的实现方法
- linux烧写、配置、搭建Edison环境
- 详解使用 split 命令分割 Linux 文件
- 在博客后台为内容模块实现增删改查功能
- 解决Debian系统自动更新软件包的问题的方法
- PHP 基于 Cookie + Session 实现用户认证功能