ASP.NET Core 其实比传统的 ASP.NET 要简单很多,而且也灵活很多,并且可以跨平台独立运行。

在 Windows 平台上,我们只要在安装 Visual Studio 的时候选择跨平台的 .NET Core 开发即可,基本无需什么配置就能测试 ASP.NET Core 应用,连 IIS 你也可以不启用(当然你也可以启用的),因为使用 dotnet 命令就能直接运行。当然了,在MacOS和 Linux 上也是通过 dotnet 命令运行的。

一般来说,在 Windows 平台上,你的 ASP.NET Core 应用如果能顺利运行,到其他平台也是没问题。不过,能跨平台测试一下是更好的。

不管是你想学习 Linux ,还是想在 Linux 下测试 Core 应用,传统做法可能你会想到在虚拟机里面安装。然而虚拟机比较麻烦,性能消耗也大,还不如直接启用 Windows 10 下面的 Linux 子系统,不仅节约开销,而且也可以直接访问 Windows 文件目录,操作起来更直爽。

大伙伴们可能会说:我从来没用过 Linux ,咋办?没事,只要你用过 CMD 窗口就行了。这篇烂文老周就来装装逼,许多人都会人认为会玩 Linux 好像特牛似的,但老周觉得没啥了不起,不就是开个命令窗口练打字罢了。Linux 虽然有所谓桌面版,但有点虚。咱们今天来玩的并不需要桌面,输命令就行了,Linux 还是用命令来操作比较正规一些。

上面的F话说多了,现在请你先喝一杯猪奶,然后坐下来,和老周一起来开始玩耍吧。放心,很简单的,你能学会。

开启 Windows 10 下的 Linux 子系统

这是很重要的一步,也是第一步,你要到控制面板,找到【程序】,然后关闭或启用 Windows 组件。接着勾选那个【适用于 Linux 的 Windows 子系统】。

然后系统会进行配置,接着重启,重启完就OK了。这一步会吧,不用我教了吧,如果这也不会,那我也没办法了。

这个是开启 Bash 的,一定要开启这个啊,不然的话,等你启动 Linux 时就会出现这个提示。

安装 Ubuntu

安装 Linux 子系统有两个方法,虽说是两个方法,其实本质一样,都是在应用商店下载的。方法一就是直接运行 bash,

你可以在任意目录下运行 bash,比如这样:

打开 Power shell 或者 CMD ,然后输入 bash 就可以运行了,是不是很 TMD 方便呢。

当你启动 Bash 后,它会自动下载安装 Linux 。

第二个方法就是到商店里面下载,老周严重推荐这种方法,因为你可以选择装哪个。目前,商店提供了三个发行版本。

对于我们测试或学习来说,我们只安装 Ubuntu 就可以了。跟一般 UWP 应用的安装一样,你点安装就行了。

开始进入 Linux

安装完 Ubuntu 后,你同样有两种方法来运行 Linux 。一种是启动 bash,另一种是运行 Ubuntu 应用。直接在 Cortana 搜索框中输入 ubuntu 就行。

第一次运行,它会提示你,请等几分钟。然后你倒一杯猪奶,坐几分钟就好了。

等你喝完猪奶,估计初始化就完成了,然后你会看到,它提示你输入用户名。

你可以随便输入,不一定要和你登录 Windows 的名字一样,它只是子系统中使用的,比如,老周输入 zhou。然后回车确认,这个常识你要知道的,所有命令都是回车确认。

随后,会提示你输入密码。

你要注意啊,输密码的过程中,是没有任何显示的,所以,请记住你按了哪些键。这个是用来测试的,是子系统,你不需要设置太复杂的密码,随便输入个弱智密码就行了,比如 123,abc 之类的。

回车后会提示你再确认一次密码,你再输一次就行了。完成你就登入 Ubuntu 系统了,只要你看到类似这样显示的,说明你成功了。

zhou 就是刚输入的用户名,@ 后面是你当前的主机名,比如老周的计算机名是 Zhou-Surface,是一台 Surface Pro 4。然后是冒号,后面的 ~ 表示你现在所处的工作目录(当前目录)是在 /home/<你的用户名> 下面。

如何显示你现在所处目录的完整路径呢,老周教你两招:

第一招,输入 : echo $PWD。注意啊,Linux 是严重区分大小写的,所以你输入命令时一定要小心。

执行后会输出:

zhou 是以当前用户命名的目录,如果你刚才输入的用户名是 pig,那么就会输出 /home/pig。

PWD 是一个环境变量,它表示当前工作目录的路么,我们切换目录后,PWD 环境变量会跟着变,不信你来试试。现在切换到 /etc 目录,然后再输出一次。

看到了吧,PWD 就变成 /etc 了。

切换目录和 Windows 一样,也是用 cd 命令,路径的表示方式是以 “/” 开头的,/ 就是根目录。

刚刚你可能看到了,引用环境变量时在 PWD 前面加了个 $,它不是叫你用美元支付,而是变量引用的语法,不管是环境变量还是你临时定义的变量,都是这样。比如,我临时定义一个变量叫 dog,然后我引用它时,就是 $dog。

注意 dog='....' 中间不要出现空格,不要写成 dog = 'xxxx',这样会提示错误,因为空格后的内容被识别为命令行参数。

echo 命令的作用就是输出文本,这个命令很多平台都有,Windows 下也可以用的,PHP中也是用这玩意儿的。

你看看,不知不觉,输入了一堆东西。

你是不是觉得,屏幕上的东西太乱太多了,看着眼睛会长毛,没事,这时你只要按一下 【Ctrl + L】,屏幕上的东西就会马上滚蛋。

扯远了,刚才咱们说了用 $PWD 环境变量可以查看当前工作目录,现在老周再告诉你另一种方法。

输入 pwd -P,就可以了。

注意 ,pwd 是小写的,-P 是大写的,是 print 的意思,即打印出当前目录的路径。

如何重置

这个子系统很好玩的,不管你用来学习 Linux 还是用来测试 .net Core 项目,你爱怎么搞就怎么搞,只要别把人家搞怀孕了就行。如果你一时冲动,把它搞怀孕了怎么办。千万不要相信那些满大街张贴的那种什么无痛 + 人流,什么科学流产,什么无后遗症引流,全是骗人的。

你只需要把开 Win 10 的 【设置】,找到应用管理,然后进入高级选项。

看到了吗,页面上有个“重置”按钮,你重置一下就行了。

注意,重置只对 Linux 子系统,不是你的Win 10,所以放心,Windows 文件不受影响,但你在 Ubuntu 上所做的任何修改,包括你安装的软件包,都会全部丢失,就等于回到刚从商店下载时的状态。

文本编辑器

学会用一下文本编辑器还是有必要的,因为后面安装 .net Core,以及配置服务器时都要写配置文件。Linux 上用得多的文本编辑器一般有 vi、vim等。不过那个有点复杂,老周推荐一个简单好用的—— nano。

直接输入 nano 就能启动。

界面长得很像东施,没办法,将就着用,这个简单,而且完全够我们用了。

你可以往里面输入东西,就像这样。

你全程都应用键盘操作,鼠标不需要动。

看到窗口底部那些文字吗,它是提示你的快捷键,你可以直接按。咋按呢,字符 ^ 指的是【Ctrl】键,比如 Get Help,你就按 Ctrl + G。

现在输入完内容了,我们要保存,按照提示,按快捷键【Ctrl + O】,这时会提示你输入文件名。

输入文件名后,回车,就保存了。

然后按 【Ctrl + X】退出。

那么,文件放在哪里了呢?就放在你当前的工作目录下。比如我现在的工作目录就在 /home/zhou 下,所以文件就在这里。

你可以输入这个命令来验证 ls (第一个字符是小写的 L,不要看成数字 1),ls 命令是 list 的缩写,专门列出目录和文件。

123.txt 就是我刚才保存的文件。

现在,我们打开它看看,输入: nano -v 123.txt

这个 -v 参数,就是以只读方式打,如果你想修改文件,是修改不了的,它会警告你。

如果你想用正常方式打开,可以去掉 -v 参数。

如果你不想用 nano 编辑器打开文件,而只是想看看它里面有什么鬼,或者想直接输出到命令行窗口,你可以用 cat 命令。

执行后,就直接输出文件的内容了。

想删除那个文件就用 rm 命令,输入:rm 123.txt,回车。

=====================================================

好,今天就讲到这里,老周担心,讲多了你消化不了。下一篇老周再讲讲在 Linux 子系统中安装 dotnet core 以及服务器包,如 nginx。

【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统的更多相关文章

  1. ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤

    一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航到“控制面板” > “程序” > “ ...

  2. Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境

    0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...

  3. windows 10 下的linux子系统用法 -- tmux分屏工具用法

    1 激活linux子系统的方法见百度: 2 打开powershell,输入bash启动子系统终端:输入exit退出: 3 输入tmux attach连接会话:ctrl-b+d 返回终端:ctrl-b+ ...

  4. 【ASP.NET Core】在Win 10 的 Linux 子系统中安装 .NET Core

    在上一篇文章中,老周扯了一下在 Windows 10 中开启 Linux 子系统,并且进行了一些简单的设置.本篇咱们就往上面安装 .net core . 老周假设你从来没有用过 Linux,所以,接着 ...

  5. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux

    如果想体验Linux环境下开发.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL ...

  6. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  7. 发布到ASP.NET CORE项目到 Windows server 2012

    原文: https://github.com/zeusro/MarkdownBlog/blob/master/2018/2018-01-17-01.md 发布到ASP.NET CORE项目到 Wind ...

  8. asp.net core 托管到windows服务,并用iis做反向代理

    使用NSSM把.Net Core部署至 Windows 服务   为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.n ...

  9. 将asp.net core站点发布到IIS上遇到的问题

    今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出 ...

随机推荐

  1. gulp管理静态资源缓存

    前端项目在版本迭代的时候,难免会遇到静态缓存的问题,明明开发的是ok的,但是一部署到服务器上,发现页面变得乱七八糟,这是由于静态缓存引起的. 从上面这张图片可以看出,浏览器加载css,js等资源时,s ...

  2. 基于低代码平台(Low Code Platform)开发中小企业信息化项目

    前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...

  3. MyBatis SQL处理大于、小于号

    MyBatis mapper文件是xml文件,需要特殊字符如大于号.小于号后需要转义. 原字符 转义后字符 < < <= <= > > > >=

  4. C#:MVC引用Log4Net生成错误日志

    第一步:引用log4net配置文件 第二步:在自己项目下新建文件夹LogNet,再在里面建立类Log.cs log.cs内容如下: 第三步:在自己项目下新建Log4Net.config Log4Net ...

  5. Java Web 单表操作

    为了测试 JavaWeb 项目,我做了一个关于一张表的更新操作. 1.加群 如果需要本项目的源码,欢迎加群:438255459 2.解压 解压开这个包,然后用 Eclipse 打开项目,至于涉及到 T ...

  6. 队列queue(2):链表实现队列

    基本概念 队列是只允许在一端进行插入操作,另一端进行删除操作的线性表. 我们规定,允许删除的叫做队首"head",允许插入的叫做队尾"tail". 基本操作 我 ...

  7. Mac和Xcode常用的快捷键

    Mac电脑一般都不怎么用鼠标,因此除了触摸屏的各种双指.三指甚至四指的操作之外,快捷键的使用可以带来非常大的便利,本文则主要收集整理了自己在Mac常规和Xcode开发过程中常用的一些快捷键. 一.Ma ...

  8. 阿里云 Angular 2 UI框架 NG-ZORRO介绍

    说明: Angular2出来后,一直想找个基于Angular2的前端后台管理框架,但一直没有找到比较适合的.前段时间在Angular官网资源无意之间看到NG-ZORRO,NG-ZORRO由阿里计算平台 ...

  9. php-基础知识-apache服务器

    一.支持php的服务器有:iis.apache.lighted(德国制造).nginx(俄罗斯制造,功能强大[反向代理.服务器集群.流媒体服务器........].轻量) 二.今天主要分享apache ...

  10. CentOs7 systemd添加自定义系统服务

    systemd: CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,即:/usr/lib/systemd/syste ...