【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统
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 命令发布,用浏览器访问站点时出 ...
随机推荐
- 启用oracle 11g自己主动收集统计信息
今天接到朋友数据库一个case,在DBCA建库时,把自己主动收集统计信息的选项去掉了,数据库执行半年没有收集过统计信息.如今要启用方法例如以下: exec DBMS_AUTO_TASK_ADMIN.E ...
- EventBus猜想 ----手把手带你自己实现一个EventBus
本文是什么 本文是一篇怀着推測角度学习一个未知东西(EventBus)的文章. 先推測EventBus是怎样实现的. 依据推測去模仿他的实现. 查看源代码.验证猜想. 更深入的去理解他. 转载请注明出 ...
- 25个增强iOS应用程序性能的提示和技巧(0基础篇)
在开发iOS应用程序时,让程序具有良好的性能是非常关键的. 这也是用户所期望的,假设你的程序执行迟钝或缓慢,会招致用户的差评.然而因为iOS设备的局限性,有时候要想获得良好的性能,是非常困难的. 在开 ...
- 深入理解JSP
JSP(Java server page)是Java EE规范最基本成员,他是Java Web开发的重点知识,尽管我们一直在用.但其原理知之甚少.今天重点研究一些JSP核心内容以及其工作原理. JSP ...
- Android Library projetcts cannot be exported.
记一次比較无语的犯错,前几天我在紧急打包一个apk的时候.遇到了这样一个异常:Android Library projetcts cannot be exported. 异常提示截图例如以下: wat ...
- 在linux上手动搭建svn服务器
svn服务器的搭建 环境: linux CentOS 7 安装: 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.创建版本库 ...
- 什么是JWT(JSON WEB TOKEN)
转自于:http://www.jianshu.com/p/576dbf44b2ae 什么是JWT Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准( ...
- 5.python函数
一.递归函数 如果一个函数在内部调用自身,那么这个函数就叫做递归函数. 1. 必须有一个明确的结束条件: 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少: 3.递归效率不高,递归层次过 ...
- Java定时器应用
在Java多线程中,有的时候,我们需要按照指定间隔时间来执行一些任务,这时,我们就要用到定时器.我们在这里以Java中的Timer定时器为例,演示定时器的应用. 请看下述代码: import java ...
- Pytorch windows10安装教程
强烈建议安装anaconda之后再来安装这个pytorch,具体怎么安装百度搜索就知道了. 温馨提示,在安装anaconda的时候记得将"添加到环境变量"(安装的时候是英文的)这一 ...