最近在学习 Android 的 NDK 和 JNI,音视频和图像处理等内容后期编译 C 库要用到 Linux 环境了,最近做个记录,点点滴滴。

1. 如何拥有Linux环境?

(1)Windows 环境

  • 电脑配置高、内存大的最好是安装虚拟机,能最接近真实环境;
  • 开启 Linux 版的 Window 子系统(WSL,Windows Subsystem for Linux) 【推荐】
    • 与在虚拟机下使用 Linux 相比,WSL 占用资源更少,更加流畅
    • WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便
    • 剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL
    • 哔哩哔哩视频教程:五分钟轻松安装Linux系统
  • 使用 Cygwin;
  • 购买一个云主机。
    • 学习的话买最低配置即可,使用 XShell SSH 工具登录使用
    • 腾讯云主机便宜,购买流程简单
    • 阿里云主机贵,购买流程繁琐
    • 公有服务器(深圳区 不可翻墙)
    • 公有服务器(香港区 是可以翻墙的,但是贵)
    • 618、双十一、双十二时候买有优惠活动

(2)Mac 环境

  • 用 Mac 自带的终端 Terminal,输入 ssh 根据公网的 ip
  • 没有 Mac 电脑的买一台 【不推荐】

2. 开启 Windows 的 Linux 子系统

新版的win10上可以运行ubuntu子系统,利用Linux子系统可以直接访问 Win10 的各种文件,相比使用虚拟机很是方便,而且速度也是杠杠的。Linux 子系统和 Windows 是一种很好的互补,利用两个系统相互协作,完全可以在 Windows 下进行进行编码,然后在Linux子系统进行编译、提交等工作。

我的系统配置和版本概况如下:

2.1 打开系统自带的Linux子系统

2.1.1 打开 Win10 开发者模式

打开 Windows 设置 → 更新和安全 → 开发者选项,开关打开。

2.1.2 更改系统配置

打开快捷方式菜单列表(Win+X) → 应用和功能 → 程序和功能(右上角)

启用或关闭Windows功能

勾选“适用于Linux的Windows子系统”

至此,设置完成。

为了防止莫名其妙的问题,这一步确定后最好重启一下电脑。

打开命令窗口(Win+R,输入 cmd),输入 bash 指令,回车,即可享受你的 Linux 系统了。

# bash 是一个为 GNU 项目编写的 Unix shell,也就是 linux 用的 shell。
# Shell 俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器。
# Shell 就是用命令来管理系统的一个接口,可以简单理解成类似于 DOS 的东西。
bash

来自:Win10上Linux子系统的开启、升级及使用

界面提示你是否下载Linux系统,输入Y 然后Enter。
下载很需要时间(第一次下载时下载了好多次,中间下载失败两三次,后面升级时就顺利多了),下载完成以后会自动安装(如没有自动安装参考下面子系统升级部分),安装完成需要你输入Linux账号和密码,账号创建完就可以用Linux了,这个窗口就是Linux的Shell窗口,可以在里面执行Linux的命令以及安装Linux的软件,当然也包括Linux的桌面,下次启动Linux的时可直接打开命令提示符窗口,然后在里面输入bash然后Enter,就会自动进入到Linux子系统了。

可以看到已经能用了,基本的准备工作就完成了。

查看当前 Windows 10 内置的 Ubuntu 系统版本,可以使用命令查询:

lsb_release -a


目前默认使用的子系统是 Ubuntu,当然也可以选择 SUSE、Debian 等,网上有很多教程我就不折腾了。

2.2 安装 win10 应用商店的 Ubuntu

打开 Windows 自带的应用商店,搜索 Linux 会有很多不同的系统分支,Ubuntu、Debian、SUSE等发行版本可供选择,这里直接搜索 Ubuntu 装最新的版本,都是免费安装,大小有400M+。

下载安装完成后,点击启动,启动完成后按照提示输入用户名和密码(默认使用root帐号,通过指令passwd设置密码),之后就进入 Ubuntu 了。

如果觉的Windows自带的命令提示符cmd不好用,还可以使用 Cmder 替代,去 Cmder 官网下载。

2.3 我安装 Ubuntu 的时候遇到了问题

报错 WslRegisterDistribution failed with error: 0x8007019e

Installing, this may take a few minutes...
Installation Failed!
Error: 0x8007019e
Press any key to continue...

查了下,是未安装 Windows 子系统支持:
报错WslRegisterDistribution failed with error: 0x8007019e
解决:

  1. win+x,选择Windows PowerShell(管理员)
  2. 输入指令:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
  3. 回车,输入Y,重启!
  4. 重新打开已经安装的子系统,等几分钟,输入账户和密码。搞定!

开启 Linux 版的 Window 子系统(WSL)相关推荐

  1. win10 linux ssh自动启动,win10子系统 wsl开机启动ssh服务

    win10子系统 wsl开机启动ssh服务 win10子系统 wsl开机启动ssh服务 一.安装ssh服务 说明:虽然已经安装了ssh服务,但是好像默认自带的不能用.所以需要先卸载再安装. 执行以下命 ...

  2. linux离线安装redmine_举个栗子!Tableau 技巧(97):离线安装 Linux 版 Tableau Server...

    为什么需要离线安装? 实际企业应用中,我们的服务器计算机基于数据保密.数据安全的需求下,使用的网络环境是内部网络,无法访问外部 Internet .这种情况,安装.停用.迁移或升级 Tableau S ...

  3. Windows10开启Linux子系统WSL

    文章目录 简介 步骤 1. 开启开发人员模式 2. 开启 Linux 子系统 初试 Ubuntu所在目录 MobaXterm连接 互传文件 直接安装 遇到的坑 参考文献 简介 软件丰富适合日常使用的 ...

  4. window命令行 linux,Windows命令行:起源 直到引入Windows下的linux子系统(WSL)

    本文从Windows命令行的起源及终端的演变,到我们在未来Windows发行版中对Windows控制台及命令行进行全面更新,引入Windows下的linux子系统(WSL).在本文中,我们将对命令行最 ...

  5. Win10安装Linux子系统WSL(ubuntu2204)及图形桌面xfce4

    WSL简介 什么是 WSL ? 在计算机上使用 Linux 系统通常有两种方式:使用虚拟机或安装 Linux 系统.使用虚拟机时开销较大,直接使用 Linux 系统虽然可以带来流畅体验,但与 Wind ...

  6. 【Linux】在Windows 10环境下安装适用于 Linux 的子系统 (WSL安装指南)

    更多教程:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 安装适用于 Linux 的 Windows 子系统 (WSL) 时有两个 ...

  7. win10linux子系统root权限,电脑win10系统如何将linux子系统wsl切换到root权限

    电脑win10系统如何将linux子系统wsl切换到root权限 有的时候我们需要将linux子系统切换到root权限进行操作,今天小编就告诉大家电脑win10系统如何将linux子系统wsl切换到r ...

  8. 【安装配置】安装适用于 Linux 的 Windows 子系统 WSL ,完成 Clion 中对内存泄漏检测工具 Valgrind 的配置,亲测可用

    关键词:[Linux] [WSL] [Clion] [Valfrind] 一.前言 今天在回答一个粉丝的评论(关于C++ delete 和 delete[ ])时,引出上面的系列问题,具体流程如下: ...

  9. Windows 11 小技巧- WSL开启Linux桌面应用

    WSL 经过⼏年的发展,已经是⼀个Windows下不少开发⼈员做云原⽣应⽤的必备环境,你可以在上⾯写各种语⾔,各种后端框架,也可以完成容器和k8s的部署,在Windows11下更进⼀步,直接⽀持Lin ...

最新文章

  1. Nginx源码分析:epoll事件处理模块概述
  2. poj 1699 Best Sequence (搜索技巧 剪枝 dfs)
  3. IAR 使用小技巧--持续更新
  4. Java之枚举----小试牛刀练习
  5. 10 个常用的软件架构模式
  6. 数据结构 思维导图【绪论、线性表、栈、队列和数组、树与二叉树、图、查找、排序】
  7. R7-2 谁是赢家 (10 分)
  8. shell统计游戏活跃用户数之改进过程分析
  9. rabbitmq的通配符模式(Topic Exchange)的*和#区别
  10. AcWing 858. Prim算法求最小生成树(稠密图)
  11. 214. Shortest Palindrome
  12. APP加密,让你的移动应用更安全!
  13. windows10:检测windows defender是不是已经连接到了云安全中心
  14. discuzcode函数
  15. sklearn 随机森林代码示例
  16. 《虚拟仿真实验教学解决方案(BJBR)》(Yanlz+Unity+SteamVR+VR+AR+MR+HR+??BR??+??CR??+??DR??+??ER??+虚拟仿真+人机交互+立钻哥哥+==)
  17. python正则表达式match方法_Python match()函数:匹配正则表达式
  18. 2018 rust卡石头教程_rust地上的石头怎么捡 | 手游网游页游攻略大全
  19. 英语计算机自我介绍范文面试,计算机面试英文自我介绍范例
  20. 东大18秋计算机基础在线作业3,东大18秋学期《计算机应用基础》在线作业3.pdf...

热门文章

  1. 【竞赛总结】第七届工程训练大赛智能搬运赛项心得
  2. BUUCTF [HCTF 2018]WarmUp 1
  3. 安卓 usb音量调节_各大厂商不重视的音量调节键,被一个安卓APP玩出花了
  4. 合并结果集子查询案列
  5. Pytorch:一些常用代码
  6. 《新亮剑》力求炮火逼真 柱子金钟负伤骨折_0
  7. java 网络编程(二) tcp传输实现客户端和服务端进行信息交流
  8. linux系统新硬盘格式化,linux系统如何格式化一块硬盘?
  9. 郑军学长-解决SVN访问慢[密]
  10. h5怎么获取微信用户openId,h5如何获取微信用户openId