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. 基于.NET的弹性及瞬间错误处理库Polly

    本文基本是官方说明的翻译和总结(https://github.com/App-vNext/Polly) 什么是Polly? Polly是一款基于.NET的弹性及瞬间错误处理库, 它允许开发人员以顺畅及 ...

  2. Python爬虫(二十三)_selenium案例:动态模拟页面点击

    本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import unittest from selenium impor ...

  3. Epplus:导出Excel

    看到其它大神的Epplus导出Excel,结合写出符合自己需求的将导出数据到Excel,给其它人参考一下,也可以学习http://www.cnblogs.com/caofangsheng/p/6149 ...

  4. WebApi的多版本管理

    1.多版本管理概念 什么是API的多版本问题?Android等App存在着多版本客户端共存的问题:由于早期没有内置升级机制,用户不会升级,拒绝升级等原因,造成了许多软件的旧版本App也在运行.开发新版 ...

  5. SQL Server 文章目录

    SQL Server系列: 高可用方案 SQL Server Alwayson概念总结 SQL Server AlwaysOn搭建 SQL Server2016 Alwayson新增功能 SQL Se ...

  6. SQL Server 数据库引擎怎样记录完整备份后修改过的数据

    SQL Server 使用两个内部数据结构跟踪被大容量复制操作修改的区,以及自上次完整备份后修改的区.这些数据结构极大地加快了差异备份的速度.当数据库使用大容量日志恢复模式时,这些数据结构也可以加快将 ...

  7. C#创建对象时各种初始化属性、字段的方式的执行顺序

    创建对象代码如下: new FilterInfo(Student.CreateTimeProperty,"朱七",Express.Equals,Relationship.Or) { ...

  8. Udacity并行计算课程笔记-The GPU Programming Model

    一.传统的提高计算速度的方法 faster clocks (设置更快的时钟) more work over per clock cycle(每个时钟周期做更多的工作) more processors( ...

  9. windows下 安装 rabbitMQ 及操作常用命令(操作创建用户密码 角色等)

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  10. Ubuntu Nginx 开机自启动

    #! /bin/sh # chkconfig: 2345 55 25 # Description: Startup script for nginx webserver on Debian. Plac ...