win wsl php,WSL 使用技巧

2023-05-16

启动wsl的多种方式:

[distro] ie ubuntu

wsl.exe or bash.exe

wsl [command] or bash -c [command]

Windows命令和Linux命令的融合:

windows中访问linux命令:

c45f84264fbf2e4ea470e09cf980ece5.png

wsl中直接访问Windows的程序:

33e6810a03cb64122d9b81ced24031eb.png

Windows的path会自动添加了wsl的PATH中的,只要可执行文件名带上 .exe 就会直接执行windows的命令的;如果当前的工作目录只存在于wsl中,则windows程序会fallback到c:\temp

不过,也可以通过如下方式,机制wsl中调起Windows程序:

echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop

1

echo0>/proc/sys/fs/binfmt_misc/WSLInterop

或者通过wsl.conf来配置:

/etc/wsl.conf

[interop]

enabled=false # enable launch of Windows binaries; default is true

appendWindowsPath=false # append Windows path to $PATH variable; default is true

1

2

3

[interop]

enabled=false# enable launch of Windows binaries; default is true

appendWindowsPath=false# append Windows path to $PATH variable; default is true

通过  wslconfig.exe 来配置默认的Linux子系统

修改成中文,需要子系统中安装中文包,如:

sudo apt-get install language-pack-zh-hans

1

sudoapt-getinstalllanguage-pack-zh-hans

然后再:

sudo update-locale LANG=zh_CN.UTF-8

1

sudoupdate-localeLANG=zh_CN.UTF-8

限制:

Windows程序不允许直接修改wsl内部的文件(可能根本就看不见)

Ubuntu子系统的安装位置:

%HOMEPATH%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc

1

%HOMEPATH%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc

Ubuntu子系统根目录:

%HOMEPATH%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

1

%HOMEPATH%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

注意:

Windows升级后可能会禁用wsl,导致wsl无法使用,解法:powershell管理员权限中执行:

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

1

Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux

注:这个就是【启用或关闭windows功能】中开启【适用于Linux的Windows子系统】的命令行用法

wsl 子系统中手动mount windows上的目录:

sudo mount -t drvfs C: /mnt/c -o metadata

1

sudomount-tdrvfsC:/mnt/c-ometadata

这样挂载的属主用户是root,可以通过-o来指定目录权限,用户id、组id:

sudo mount -t drvfs C: /mnt/c -o metadata,umask=22,uid=1000,gid=1000

1

sudomount-tdrvfsC:/mnt/c-ometadata,umask=22,uid=1000,gid=1000

自动启动WSL:(设置一个开机或用户登录windows时触发执行的计划任务就行了)

378e71b5bd62875fe83999ad50e073cf.png

注意: 计划任务可能有电源相关的条件,如果没有插电(只用电池),计划任务是不执行的,如果插电了,计划任务就立即触发了

参考:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win wsl php,WSL 使用技巧 的相关文章

随机推荐