_用WSL,MobaXterm,Cmder配置linux开发环境

57fc2278-4d13-eb11-8da9-e4434bdf6706.png

离不开Windows的理由很多,作为后端开发需要使用linux的情况也很多,双系统总归是不方便,而且linux下的GUI体验也没用Win 10好. 如果使用虚拟机,那么文件交换和网络等各种问题也需要解决,对系统的内存要求也更高一些.微软为了让更多的开发人员留在Win10上面,开发了WSL功能.目前的实际体验已经很棒,今天介绍一下如何打造一个可视化的linux开发环境--即在Win10启动linux的GUI软件,例如vscode等.在WSL启动vscode写代码可以有效避免一些Windows和linux的编码和换行问题.

本教程分为2部分:

  1. 配置WSL可视化
  2. 在WSL使用docker
以下内容中 WSLubuntu含义相同,console命令行含义相同.
知乎的md解析排版太烂了,凑合看吧

配置WSL可视化

系统要求是Win 10 1803+版本(低于1803的WSL功能有问题),必须是专业版或教育版才有WSL功能.以下内容的命令行如果开头有>字符请忽略.

1. 开启WSL功能: 控制面板程序程序和功能开发或关闭Windows功能 > 勾选 '适用于linux的Windows子系统'和 'hyper-V'(docker for Windows需要这个功能,也可以使用virtualbox代替), 重启电脑.

5afc2278-4d13-eb11-8da9-e4434bdf6706.png

2. Windows store搜索"WSL"或者"ubuntu"下载ubuntu版本. ubuntu和ubuntu1804是一个版本,ubuntu1604是旧的版本.安装完成你的Windows应用列表会有一个ubuntu应用,点击图标即可打开ubuntu命令行.第一次启动需要等待初始化,然后设置用户名和密码.由于字体难看,所以不用这个自带的命令行而使用下面的cmder.

3. 下载cmder软件,cmder是Windows下最强的命令行功能. 不要下载mini那个,里面没用vim和git.第一次启动cmder记得修改cmder启动目录到d盘根目录,修改路径如图所示.

5bfc2278-4d13-eb11-8da9-e4434bdf6706.png

4. 启动cmder,输入wsl 即可启动WSL.第一步修改软件源,使用阿里云的源.

's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
> sudo apt update
> sudo apt upgrade -y

5. 安装必要软件:java,maven,git,vim

# 安装你需要的软件,git和vim是必须的,后面的编辑命令是使用vim
>sudo apt install openjdk-8-jdk-headless openjdk-8-jre-headless maven git unzip vim -y

6. 修改WSL下Windows磁盘挂载点,默认的Windows磁盘在WSL的访问方式是/mnt/d/开头,d表示d盘.但是docker on linux的访问路径是 /d,所以这里需要修改挂载点路径.

##添加3行内容

exit退出WSL重新进入,发现/mnt已经没了,当前目录应该是/c/xxx或者/d/xxx.

60fc2278-4d13-eb11-8da9-e4434bdf6706.png

7. 设置SSH功能,这样可以借助MobaXterm的X11转发功能打开GUI软件

#取消Port的注释,并将端口改为2222 (端口需要大于1000)

8. 安装vscode和中文字体,因为WSL没用中文字体将显示豆腐块.

# install chinese fonts for WSL,font name:  'Noto Sans Mono CJK SC'
sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra

9. 不要关闭cmder的WSL. 下载MobaXterm软件,MobaXterm是Windows下最强免费ssh软件. 这里主要使用它的X11转发功能. 启动软件,点击 左上角的Session > 点击 左上角的SSH,填写ip,username,port:2222.连接成功的话会提示你输入密码.最重要的是需要注意右上角的'X server'是否在跑,默认是跑的,你可以单击'X server'图标,弹出是否关闭xserver的提示,说明在跑选择关闭提示

62fc2278-4d13-eb11-8da9-e4434bdf6706.png

虽然MobaXterm也是一个很好用的console,但是为了命令行的历史不要丢失(原因不明),我们所有的命令还是在cmder输入,MobaXterm仅用于X11转发.

10. 设置WSL的DISPLAY环境变量,这样linux可以将其GUI显示发送到windows.通过在 ~/.bashrc中添加

export DISPLAY=:0
//The syntax is HOST:NUMBER, HOST默认是localhost,所以可以省略,0表示WSL的第一个显示器(monitor)

source ~/.bashrc然后在cmder输入code .,等待2秒,你会发现Windows任务栏启动了一个vscode,如果没用启动成功,说明你的MobaXterm的X11转发功能有问题.

11. 配置vscode. 上面打开的vscode有2个问题:中文显示豆腐块,和不能全屏. 打开vscode的设置.

#在字体里面先设置你想要英文字体,逗号跟上'Noto Sans Mono CJK SC'

至此,已经可以在linux下面开发了.当然,其他GUI软件没用测试不确定是不是会有小问题.但是vscode已经可以应付很多开发工作了,效果如图.

66fc2278-4d13-eb11-8da9-e4434bdf6706.png
WSL 启动的vscode

在WSL使用docker

目前的WSL是不支持运行docker的,但是可以在WSL使用Windows的docker,在使用上面是无感的.

  1. 安装docker for Windows. 这个就不细说了,注意docker社区版也是需要注册才能下载的.
  2. 启动docker for Windows,右键任务栏的docker图标,"settings",勾上 "expose the daemon on tcp:/localhost:2375 without TLS",这样在WSL可以访问这个docker服务.

6afc2278-4d13-eb11-8da9-e4434bdf6706.png
  1. WSL安装docker,详细内容可以参考官方文档,下面仅列出必要bash命令.
#安装必要组件
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

至此,WSL的docker服务也配置完成.

国内下载docker image的速度很慢,DaoCloud提供了免费的加速器服务. 这里也希望大家支持DaoCloud购买其服务. 加速器使用说明:DaoCloud - 企业级云计算领域的创新领导者

这篇文章有如何使用wsl桌面的教程:Limited:玩转 WSL 并配置Linux下的开发调试环境(Linux初学者福音)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wamp测试php,php开发环境搭建/测试/LAMP/WAMP

常用的php开发环境由四部分构成:php预处理器,Apache服务器,mysql数据库,phpmyadmin(管理mysql的图形化页面界面)php语言是一种跨平台语言,常用php环境基于windows和Linux两种操作系统搭建,在Linux系统由Apache、mysql、…

LeetCode 933.最近的请求次数

原题链接 解题思路&#xff1a;主要保留PING中比3000大的 class RecentCounter { public:RecentCounter() {}int ping(int t) {time.push(t);while(time.front()<t-3000){ //查询T是否比3000大time.pop(); //T比3000小就出队}return time.size();}queue<int> time;…

对象容器设计模式_容器对象模式。 一种新的测试模式。

对象容器设计模式如果您搜索什么是页面对象的描述&#xff0c;您会发现页面对象模式为我们提供了一种以可重用和可维护的方式对内容建模的常识方法。 还要指出&#xff1a;在Web应用程序的UI中&#xff0c;您的测试与某些区域交互。 Page Object只是将它们建模为测试代码中的对…

php中上传图片怎么显示出来,PHP上传图片类显示缩略图功能

有缩略图功能 但是 感觉不全面&#xff0c;而且有点问题&#xff0c;继续学习&#xff0c;将来以后修改下/*** Created by PhpStorm.* User: Administrator* Date: 2016/6/28* Time: 21:04*/class upload{protected $fileMine;//文件上传类型protected $filepath;//文件上传路径…

LeetCode 1047. 删除字符串中的所有相邻重复项

原题链接 解题思路&#xff1a; 我们可以用栈来维护没有重复项的字母序列&#xff1a; 若当前的字母和栈顶的字母相同&#xff0c;则弹出栈顶的字母&#xff1b; 若当前的字母和栈顶的字母不同&#xff0c;则放入当前的字母。 class Solution { public:string removeDuplica…

javaparser_JavaParser入门:以编程方式分析Java代码

javaparser我最喜欢的事情之一是解析代码并对其执行自动操作。 因此&#xff0c;我开始为JavaParser做出贡献&#xff0c;并创建了两个相关项目&#xff1a; java-symbol-solver和Effectivejava 。 作为JavaParser的贡献者&#xff0c;我反复阅读了一些有关从Java源代码提取信…

prepare的用法 php,PHP中的操作mysqli的预处理prepare

这篇文章主要介绍了关于PHP中的操作mysqli的预处理prepare &#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下PHP中的操作mysqli的预处理prepare1、【PHP错误】Cannot pass parameter 2 by reference这个错误的意思是不能按引用传…

wps xml转换表格_这功能WPS卖近百元?教你免费将PDF转成Word

[PConline 应用]PDF文件如何转换成为Word&#xff1f;很多朋友研究这个问题已经很久了&#xff0c;PDF更利于统一格式传播&#xff0c;Word更便于编辑&#xff0c;因此收到PDF文件后、想要修改时要如何将PDF转换成Word可谓是一个刚需。当然&#xff0c;不少办公软件提供了这样的…

junit 预期错误_谨慎使用JUnit的预期异常

junit 预期错误有时&#xff0c;当我们收到对jOOQ或其他库的拉取请求时&#xff0c;人们会将单元测试中的代码更改为更“惯用的JUnit”。 特别是&#xff0c;这意味着他们倾向于更改此代码&#xff08;公认的不是那么漂亮的代码&#xff09;&#xff1a; Test public void tes…

LeetCode 231. 2的幂

原题链接 class Solution { public:bool isPowerOfTwo(int n) {if(n<0)return false;if((n&n-1) 0) return true;return false;} };

睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...

在传统的机器学习中&#xff0c;为了获得最先进的(SOTA)性能&#xff0c;我们经常训练一系列整合模型来克服单个模型的弱点。 但是&#xff0c;要获得SOTA性能&#xff0c;通常需要使用具有数百万个参数的大型模型进行大量计算。 SOTA模型(例如VGG16 / 19&#xff0c;ResNet50)…

matlab读txt文件不完整,求助Matlab批量读取TXT文件出错

我用dlmread函数批量读取txt文件中的一个数据&#xff0c;但运行结果1.txt文件中只有一个数据0&#xff0c;调试时报错&#xff1a;错误使用 dlmread (line 147)文件结尾不支持空的格式字符串&#xff0c;文件有128列&#xff0c;78行&#xff0c;下面没有列全文件格式是&#…

面向对象代码_面向对象的代码生成方法

面向对象代码代码生成是减少无聊任务的不健康负担的一种常用方法&#xff0c;这些任务常常使我们急切地对代码苦恼。 我见过的许多代码生成框架都使用模板替换重复方法&#xff0c;在该模板中&#xff0c;您编写了模板&#xff0c;以了解生成的代码文件的外观&#xff0c;然后替…

LeetCode 20.有效括号

原题链接 方法一&#xff1a;解题思路&#xff0c;使用栈 模拟法&#xff1b;首先遍历将是左括号形式的部分压入栈中。然后对于右括号形式与栈顶元素进行比对&#xff0c;看是否匹配。如果匹配的话删除栈顶元素&#xff0c;不匹配直接返回false。最后栈为空则全部的括号匹配…

gpu编程如何一步步学习_如何学习贴片机编程

学习贴片机编程首选要对贴片机有所熟悉了解&#xff0c;另外对常用的电脑编辑软件要会使用。目前通常学习贴片机编程有专门的培训学校&#xff0c;或者跟着生产线上现有的贴片机编程师傅学习熟练后再进行编程操作。下面深圳智驰科技就来分享一下如何学习贴片机编程。对贴片机编…

plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

Matlab在任意两点之间绘制三维圆柱Matlab在任意两点之间绘制三维圆柱此函数可能存在一些不足&#xff0c;请多多指教&#xff01;function plotcylinder(u1,u2,color_a,r)Lnorm(u1-u2);RODu2-u1;[X,Y,Z]cylinder(r,100);x1X*0;y1Y*0;z1Z*0;ZL*Z-L/2;ROD_midpoint(u1u2)/2;xROD_…

简单内存池设计

关键词 内存池 链表 class A { public:static void* operator new(size_t size);static void operator delete(void* phead);static int m_iCout;//分配计数统计&#xff0c;每new一次&#xff0c;就统计一次static int m_iMallocCount;//每次malloc一次&#xff0c;统计一次p…

jdk8和hotspot_HotSpot的-XshowSettings标志的简单性和价值

jdk8和hotspot一个方便的HotSpot JVM标志 &#xff08; 选项为Java启动 java &#xff09;是-XshowSettings选项。 Oracle Java启动器描述页面中对此选项进行了如下描述 &#xff1a; -XshowSettings &#xff1a; category显示设置并继续。 该选项的可能类别参数包括&#xf…

怎样自动提取邮件的内容_这些最新的外贸搜索开发工具(图灵搜、谷歌搜索提取工具、易查查),你会使用吗?...

贸业务开展过程中&#xff0c;搜寻买家信息&#xff0c;开发买家客户&#xff0c;是开展外贸的前提。而掌握B2B、谷歌、搜索引擎、社交网站及众多搜索工具的运用技巧&#xff0c;则是外贸业务人员的基本功。本篇文章将结合图灵搜、谷歌搜索提取工具、易查查&#xff0c;三款工具…

LeetCode 面试题55 二叉树的深度

原题链接 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:int maxDepth(TreeNode* root) {if(rootNULL)…