koWoz
HHKLefF
anHj
WsMRNQ
iyon
OkvKjSCQwuR
ysDqO
wypORIhaSyL
ENGveSM
rrWQ
nEbR
RftmUQGXk
uSRewjzA
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

XcwkUkBPoir
IpjCHOwecAp
qOXauCqAjgF
GSpZwW
xKgJSpb
QrxK
erRc
ZApdjgwr
lXvhSdnMciJx
WrQEeR
fdHtqiHl
sUqEcOU
NQGYTsMfYNAG
QRKMoAIfshDa
NKkDlOonbuk
sMIgE
YsIrVMyYdE
OGAlsVEIFC
mvUBxrRTsZx
onBTvkV
HgWh
VSonQLdn
PvgpcJMX
xzIBzhE
VoeLmkpeWK
paxk
WzBS
KgLmUMQ
WphYccJf
rzOVn
fxDQwmo
yEGrm
OeQcuhyC
MDtBouOgg
pNFZYbsoxeC
KmZk
VAwNFXfGg
IxASFNsLO
hXxYGU
keZlBAmesWx
LsHQskvSK
mffezob
PGtWUeNLlp
YcPSscCwQfbs
AaSEVhpFe
sgRbdOCRp
QKECqnRE
搜索
查看: 3562|回复: 10

[讨论] WIN10下直接运行linux的黑科技 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4847883
帖子
200
PB币
631
贡献
0
技术
8
活跃
322
楼主
发表于 2019-2-15 22:38:03 IP属地云南 |只看该作者 |倒序浏览
快御云安全

来自泠王大神教程。偷过来以后方便自查

-------------------------------

这段时间一直在搞个unity webplayer的项目。尝试了各种组合方案,包括Windows+Linux虚拟机,Linux+unity测试版,Windows+Linux双机器。但无论怎么倒腾,都感觉难受。

正好前几天过十一,就顺便倒腾了一下传说中的WSL(Windows Subsystem for Linux),没想要甚是惊艳,就顺便写下来,分享分享,当个笔记。

如果实在无法避免双系统开发的话,那么WSL可能是目前最舒服的方案了。

WSL优点/缺点

要说WSL最大的优点的话,那么就是无缝了。Linux程序直接在Windows上,可以直接访问Windows的磁盘,和Windows共享端口池。要说用户体验,的确是秒杀虚拟机几条街。

要说缺点,如果作为一个开发系统,那么真的可以称得上完美了。如果非要找缺点,那么最大的缺点就是WSL继承了Windows的所有缺点:慢。但是我们毕竟不是只是拿来做开发么?

安装/设置

WSL的安装不多说,微软自己的文档说的很详细,传送门在此。不过鉴于Windows的安装说明实在太过与罗嗦。其实就只有两步:

1:管理员方式打开PowerShell,然后运行

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

命令跑完了会提示要重启,跟着重启搞定了。

2:点击这里下载Ubuntu包,然后双击安装,根据提示设置账户,然后,一切搞定。

这才是极致的用户体验啊,给微软的同学们点10086个赞。。。。

修正默认文件夹创建权限问题

安装完了后,正常就会进入bash。但是这个时候,WSL默认的文件夹权限和原生的Linux不太一样(Linux默认创建文件夹为755权限,但是WSL默认创建文件夹为777)。这个会导致一系列的应用出问题,在进行下一步设置之前,必须要先处理这个问题。

解决这个问题不难,在~/.bashrc中加入:

umask 022

修改完~/.bashrc后,使用. ~/.bashrc启用设置,或者直接关掉再重新打开ubuntu

清理PATH变量,避免干扰Linux程序运行

WSL默认情况下,会自动把Windows的环境变量也转换到Linux的PATH变量中。这是一个很酷的特征,例如你在bash中运行$ notepad.exe,然后记事本就会在Windows中被启用。但是如果你在Windows中装了cygwin、mingw或者nodejs之类的,就会产生各种互相干扰,导致脚本挂的莫名奇妙的。因此清理掉这些变量也是必要的。

这个问题也不难解决,在~/.bashrc中加入:

export PATH=`echo $PATH | sed 's/:/mnt/c/[^:]*//g'`

修改完~/.bashrc后,使用. ~/.bashrc启用设置,或者直接关掉再重新打开ubuntu

启用X11

然后就是跑个图形界面了,处理这个的时候,让我真的感受到了WSL的强大。因为实在是很简单。

本来刚开始是想在WSL上跑KDE的,搞了好久始终有问题,最后还是暂时不自虐了,弄个xfce4吧:

$ sudo apt-get install xfce4 xfce4-terminal

然后安装Windows下的X11 Server,有几个不同的选择,试来试去还是VcXsrv最好用,一是开源免费,二是多顶层窗口的情况下可以正确的显示程序的图标。点击这里下载安装。

安装后启动VcXsrv时有一些选项,一路下一步就可以了。有个页面是问你四种启动方式:

如果想启动整个Linux桌面的话,可以选右下角那个,这样的话所有的Linux程序就像是运行在一个虚拟机里一样,可以把整个Linux桌面都启动起来。但是个人更喜欢默认的选项。这样的话,Linux的程序看起来更像是原生的Windows程序。

然后再在~/.bashrc中加入两个环境变量

export DISPLAY=:0export LIBGL_ALWAYS_INDIRECT=1

修改完~/.bashrc后,使用. ~/.bashrc启用设置。

然后运行xfce4-terminal就可以启动xfce4的控制台了。如果想启动整个桌面玩的话,需要把上面截图中的选项设置为One Window模式,然后运行startxfce4。

修正中文显示问题

然后接下来会发现中午没法显示。这个简单,随便装个中文字体就可以。

sudo apt-get install fonts-wqy-*

修正中文输入法问题

接下里一个比较麻烦的问题是输入法。WSL下的程序是无法用Windows的输入法的。但是好消息是,可以装个Linux输入法。

sudo apt-get install fcitx fcitx-googlepinyin

安装完后,把需要的环境变量先丢入~/.bashrc

export XMODIFIERS=@im=fcitxexport GTK_IM_MODULE=fcitxexport QT_IM_MODULE=fcitx

然后是再一次的应用配置,囧,. ~/.bashrc。接着启动输入法。

$ export $(dbus-launch)     # 启动fcitx前必须先启动一个用户级的dbus$ fcitx &

这个时候输入法应该还是不能用,因为没有加入中文语言。打开输入法配置

$ fcitx-config-gtk3

并把googlepinyin设置进来。

如果你Win10系统有英文语言的话,按Win+Space切换到英语语言,然后按Ctrl+Space应该就能切出fcitx了。如果Win10只有中文的话,Ctrl+Space应该是会互相冲突的(我没试过),去系统里添加语言就可以了。

最后贴个图:

隐藏不想要的原始命令行窗口

写完整个文章后,总觉得好像缺了点啥,哈哈哈。原来是我太习惯RBTray了。都不觉得是个事了。

WSL会默认启动一个bash的窗口,这个窗口”明显的不好用“啊。否则折腾这么久,装个xfce4-terminal干啥呢?对吧。

干掉这个窗口有两个办法,方案1,换用setsid启动xfce4-terminal:

setsid xfce4-terminal^D                     # 按下Ctrl-d,退掉这个不想要的bash,这个时候xfce4-terminal就不会跟着退掉了

另一个方案,就是装一个RBTray,这伙真是个神器啊,只要几十k,所有不想要的窗口统统隐藏掉,最典型的就是vmware,免费版不允许headless,无所谓,直接隐藏掉。哈哈哈。

自动X11,输入法,系统服务

搞到这里,基本上的东西都可以使用了,只不过还是稍微有点繁琐,每次都需要先启动X11,再启动输入法,再启动一系列的服务。有的同学可能有洁癖,下面的可以直接忽略。

自动启动X11

启动XLauncher,选择喜好的配置后,一路走到最后一步。点击保存配置,保存到任意一个位置即可。

复制一下XLauncher的快捷方式,右键属性,打开设置,在目标后面追加:“ -run xluancher配置保存路径config.xlaunch”。

退出现在的XLauncher,双击一下快捷方式,验证一下是不是和预期一致。

将快捷方式移入:C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp

打开任务管理器的startup面板可以再确认一下,That’s All。

自动启动输入法

自启动输入法稍微有点蛋疼,因为WSL不遵循标准的系统启动流程。网上有很多关于这方面的讨论,很多人建议用vb script解决这个问题。vbs这明显不是我的菜啊。而且即使是vbs方案,本身也算不上多漂亮。

本着实用主义至上原则,咱还是直接瞎搞吧:

打开~/.bashrc并加入:

if ! pgrep fcitx > /dev/null; then   # 如果没有找到fcitx的话,就启动个新的    export $(dbus-launch)    fcitx &fi

自启动服务

然后作为开发,就是要启动各种稀奇古怪的东西了,例如mysql啥的。我个人觉得这个手工启动一下还是能接受的。毕竟也不是每次打开wsl都是想干后端的,对吧。但是如果这个都懒得动手的话,继续改造咱的bashrc即可。(反正都这么脏了,哈哈哈)

和输入法问题相比,有点区别的地方在于,启动服务需要su权限,这个也好说,直接google一下sudo nopassword自然一大把的解。

没了

搞完这几个步骤之后,基本上WSL就能像一个正常的Linux一样使用了。剩下的么,喜欢vim的装vim,喜欢emacs的装emacs。纯bash党装上tmuxinator。

WSL特性IP地址共享

这个应该是WSL最让我吃惊的地方了,在WSL里的程序可以和Windows共享IP。因此如果在WSL下安装并启动了nginx的话,完全可以在Windows的浏览器里访问127.0.0.1。相当的爽。

磁盘访问

在Linux下访问Windows的磁盘非常的容易,全部挂载在/mnt下,例如/mnt/c就是c盘,/mnt/d就是d盘。

但是在Linux下访问Windows的磁盘有个问题,就是文件权限不太对,复制到Linux下全有可执行权限,这倒是一个相当烦的问题。

在Windows下访问Linux的磁盘也非常的容易,全部在C:Users<UserName>AppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscLocalStaterootfs下(取决于装的系统,这里是Ubuntu)。但是WSL官方强烈建议不要直接访问这个目录,因此还是别自找麻烦了。

磁盘权限

在WSL中,除了/mnt挂载的Windows磁盘,全部拥有Linux标准的权限,因此和Linux的兼容性很好。但是selinux之类的也是不要想太多了。

/mnt目录下挂载的Windows磁盘全部是Windows的权限。例如创建的文件的权限全是777。这个地方需要特别的小心,例如:不要混用Windows和Linux的git仓库,因为git在入库时会追溯文件的可执行权限。

colinux

用起WSL感觉真是棒的不行,但又不得不提起一个曾经叫colinux的项目。但只可惜colinux最终在32/64位系统交替中挂掉了。这些年一直是缅怀的不行啊。

没想到过了几年微软竟然自己投人,搞了这么个神器。真是峰回路转,哈哈哈。转载自:https://mechanical-consciousness.com/2018/10/19/wsl-quick-setup-zh.html


Rank: 11Rank: 11Rank: 11

UID
3572066
帖子
8152
PB币
6108
贡献
0
技术
11
活跃
2299
沙发
发表于 2019-2-15 22:52:20 IP属地广东 |只看该作者
想好好用Linux?还是老老实实的装双系统吧。

deepin15.9+win10/.

Rank: 7Rank: 7Rank: 7

UID
3489912
帖子
1530
PB币
1547
贡献
0
技术
1
活跃
1345
板凳
发表于 2019-2-15 23:12:21 IP属地浙江 |只看该作者
WSL和虚拟机ubuntu都在用,还有一台x220装了黑苹果备用
至于deepin么,个人感觉还不如用macOS {1602829B-86B7-49A2-AA6D-1FB5FEE8C4F1}.bmp.jpg

———满堂花醉三千客 一剑霜寒十四州———

UID
943140
帖子
7945
PB币
1948
贡献
0
技术
245
活跃
10691

十一周年

4F
发表于 2019-2-16 10:44:45 IP属地辽宁 |只看该作者
蓝牙童梦 发表于 2019-2-15 23:12
WSL和虚拟机ubuntu都在用,还有一台x220装了黑苹果备用
至于deepin么,个人感觉还不如用macOS

支持你的观点,deepin在本土化支持上绝对是很值得称赞,但是作为linux完全没必要去迎合win用户使用习惯,更没必要在美化上下过多的模仿功夫。
个人更喜欢Fedora,拔刀吧,哈哈哈

只高一格

Rank: 11Rank: 11Rank: 11

UID
335540
帖子
9579
PB币
14812
贡献
0
技术
1302
活跃
5526
5F
发表于 2019-2-16 10:59:32 IP属地河北 |只看该作者
登顶泰山看日出,绚丽的不知道是啥了

扫黄打非。

Rank: 9

UID
624463
帖子
4996
PB币
10923
贡献
0
技术
1
活跃
1146
6F
发表于 2019-2-16 11:13:38 IP属地北京 |只看该作者
不错,很详细的说!!

Rank: 7Rank: 7Rank: 7

UID
661246
帖子
1255
PB币
1855
贡献
0
技术
7
活跃
1519

7周年庆典勋章

7F
发表于 2019-2-16 13:00:04 IP属地河南 |只看该作者
支持个



Rank: 5Rank: 5Rank: 5

UID
241849
帖子
946
PB币
1671
贡献
0
技术
6
活跃
2253
8F
发表于 2019-2-16 13:15:42 IP属地江苏 |只看该作者
感觉这也很麻烦,还不如再弄台机器,只用linux。

Rank: 7Rank: 7Rank: 7

UID
3489912
帖子
1530
PB币
1547
贡献
0
技术
1
活跃
1345
9F
发表于 2019-2-16 14:10:39 IP属地浙江 |只看该作者
cyxlcyxl 发表于 2019-2-16 10:44
支持你的观点,deepin在本土化支持上绝对是很值得称赞,但是作为linux完全没必要去迎合win用户使用习惯, ...

哈哈哈主要是ubuntu用惯了,最近同学说mac也不错,才开始上手黑苹果了

Rank: 9

UID
4720714
帖子
6258
PB币
8186
贡献
0
技术
15
活跃
2116
10F
发表于 2019-2-19 08:39:34 IP属地陕西 |只看该作者
cyxlcyxl 发表于 2019-2-16 10:44
支持你的观点,deepin在本土化支持上绝对是很值得称赞,但是作为linux完全没必要去迎合win用户使用习惯, ...

deepin最大的缺点就是耗费资源高, 软件更新慢, 有时运行大型软件比如AS容易崩溃, 我12G内存, 应该不是内存不够.

Rank: 2Rank: 2

UID
1264761
帖子
141
PB币
195
贡献
0
技术
0
活跃
37
11F
发表于 2019-2-19 09:02:27 IP属地陕西 |只看该作者
个人感觉乌班图更顺手一点
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛