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 子系统的更多相关文章
-
ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤
一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航到“控制面板” > “程序” > “ ...
-
Windows Sublime Text 配置Linux子系统(WSL)下的 gcc/g++ 编译环境
0. 简介(若已了解背景可以跳过此部分) Windows 10 Build 14316以上版本中加入了"Windows系统的Linux子系统"(Windows Subsystem ...
-
windows 10 下的linux子系统用法 -- tmux分屏工具用法
1 激活linux子系统的方法见百度: 2 打开powershell,输入bash启动子系统终端:输入exit退出: 3 输入tmux attach连接会话:ctrl-b+d 返回终端:ctrl-b+ ...
-
【ASP.NET Core】在Win 10 的 Linux 子系统中安装 .NET Core
在上一篇文章中,老周扯了一下在 Windows 10 中开启 Linux 子系统,并且进行了一些简单的设置.本篇咱们就往上面安装 .net core . 老周假设你从来没有用过 Linux,所以,接着 ...
-
[ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux
如果想体验Linux环境下开发.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL ...
-
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.解压后打开解决方案,解决方案目录: ...
-
发布到ASP.NET CORE项目到 Windows server 2012
原文: https://github.com/zeusro/MarkdownBlog/blob/master/2018/2018-01-17-01.md 发布到ASP.NET CORE项目到 Wind ...
-
asp.net core 托管到windows服务,并用iis做反向代理
使用NSSM把.Net Core部署至 Windows 服务 为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.n ...
-
将asp.net core站点发布到IIS上遇到的问题
今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出 ...
随机推荐
-
解决PHP在IE浏览器下载文件,中文文件名乱码问题
前提:我们网站所有文件全部使用的是UTF-8 NO BOM的编码方式 1.找测试重现.360浏览器下载的呵呵,果然文件名是乱码.再请测试在ie浏览器下测试.IE9,8,7也全部是乱码.查看编码就是UT ...
-
HDU 2602 (简单的01背包) Bone Collector
很标准的01背包问题 //#define LOCAL #include <algorithm> #include <cstdio> #include <cstring&g ...
-
WingIDE注册破解方法
WingIDE是Python程序语言设计的集成开发环境,具有语法标签高亮显示,命令自动完成和函数跳转列表等非常强大的功能.本文主要介绍WingIDE 5安装及注册破解方法. 1. WingIDE 5下 ...
-
CSS设计指南之定位
原文:CSS设计指南之定位 CSS布局的核心是position属性,对元素盒子应用这个属性,可以相对于它在常规文档流中的位置重新定位.position属性有4个值:static.relative.ab ...
-
NodeJS安装第一个工程
一.刚接触Node.js,下载好安装包后,一路Next,安装好后,结构目录如下 在命令行窗口输入node -v 和npm -v 二.建立一个Node.js工程 1.(控制台窗口)全局安装了expres ...
-
音乐出身的妹纸,零基础学习JAVA靠谱么
问:表示音乐出身的妹纸一枚 某一天突然觉得身边认识的是一群程序员 突然想 要不要也去试试... 众好友都觉得我该去做个老师,可是我怕我会误人子弟,*祖国下一代..... 要不要 要不要 学Ja ...
-
jquery中innerwidth,outerwidth,outerwidth和width的区别
在jQuery中,width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度, outerWidth()方法用于获得包括内边界(padding)和 ...
-
转 Spring Boot之No session repository could be auto-configured, check your configuration问题解决
1. 环境介绍 JDK 1.8 Spring-Boot 1.5.1.RELEASE, STS IDE 2. 问题的提出 创建了一个非常简约的Spring Boot Web Application ...
-
RabbitMQ 相关概念
RabbitMQ 整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你讲一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ ...
-
Java的三个基础排序算法(其余将在以后补充)
第一个:冒泡排序算法 原理:相邻的两个值进行比较,如果前面的比后面的大就交换位置 eg:假设有5个元素的一个array 第一次:会比较4次,将最大的值放在最右边 第二次:会比较3次,又排出剩余4个元素 ...