/ root /在Windows 10上的位置Ubuntu

时间:2016-04-18 23:50:17

标签: ubuntu terminal windows-10 windows-subsystem-for-linux

我在Windows 10上的Ubuntu上安装了bash - 内部预览版。但是,如果将一个终端用于Ubuntu终端,则Windows终端使用起来很麻烦。我想知道是否有办法从Windows访问Ubuntu文件系统,以便我可以在其他编辑器中进行开发并从Ubuntu-bash运行代码?

3 个答案:

答案 0 :(得分:6)

任何可以打开Windows命令提示符的终端程序都应该能够运行bash(bash.exe启动Windows Linux Subsytem),因此不必使用command.exe。

Conemu(由@anotherfred提及)或Cmder是粉丝的最爱。如果你愿意,你也可以使用Powershell。

您可以从/ mnt / c中的WSL访问Windows文件(如果您有d:驱动器等,则可以访问/ mnt / d)。如果您想要执行命令行操作并仍使用您喜欢的Windows编辑器访问文件,那么该工作相对较好。

您可以在Windows上看到WSL file system

%LocalAppData%\lxss\rootfs

虽然我不会在Windows中捣乱它。

/ root 将在

之下
%LocalAppData%\lxss\rootfs\root

/ home 将在

之下
%LocalAppData%\lxss\rootfs\home

这两个是单独安装的,因此在删除WSL时不会删除它们。

答案 1 :(得分:2)

自2017年底发布的Windows 10版本(包括Fall Creators Update和Windows Insiders Builds 17063+)支持在同一台机器上运行的多个Linux发行版。因此,WSL必须将每个分发的根文件系统存储在不同的位置。

根文件系统

不再

%LocalAppData%\lxss\rootfs

文件系统文件夹的新位置

从Windows应用商店安装的每个Linux发行版都将根文件系统存储在

的不同文件夹中
%LocalAppData%\Packages\<distro folder>\LocalState

<distro folder>从一个发行版到另一个发行版各不相同。例如,以下是我的测试计算机中的<distro folder>

  • Ubuntu 16.04:CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc
  • Ubuntu 18.04:CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
  • Debian:TheDebianProject.DebianGNULinux_76v4gfsz19hv4
  • Kali linux:KaliLinux.54290C8133FEE_ey8k8hqnwqnmg

如果您想访问 root 主页文件系统,则必须使用适当的文件夹。例如,要转到KaliLinux的文件夹,您必须转到:

%LocalAppData%\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\rootfs   # root
%LocalAppData%\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\home     # home

使用lxRunOffline

获取路径

LxRunOffline是一个管理WSL Linux发行版的工具。它可用于将WSL分发安装或移动到您计算机的任何文件夹中。

您可以使用lxRunOffline get-dir获取安装文件夹的路径。 root 位于rootfs子文件夹中。

C:\> lxrunoffline list
Ubuntu-18.04
ubuntu-copy

C:\> lxrunoffline get-dir -n Ubuntu-18.04
C:\Users\nnn\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

C:\> lxrunoffline get-dir -n ubuntu-copy
d:\wsl\installed\ubuntu-copy

以编程方式获取路径

如果您有兴趣,可以使用程序获取路径。有关已安装的发行版及其配置的信息存储在Windows注册表中。

您可以使用regedit和以下路径检查信息:

HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss

您已安装的各种发行版的所有配置。例如,您可以使用Powershell获取默认分发的基本路径信息。

$WSLREGKEY="HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss"
$WSLDEFID=(Get-ItemProperty "$WSLREGKEY").DefaultDistribution
$DISTROPATH=(Get-ItemProperty "$WSLREGKEY\$WSLDEFID").BasePath
echo "the filesystems are located at $DISTROPATH"

要检查所有已安装发行版的文件系统,您也可以使用Powershell。

(Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName,BasePath

答案 2 :(得分:1)

反之亦然:bash正在访问您在/mnt/c找到的Windows文件系统。您的文件(应该是)在您的Windows文件系统中,您可以正常编辑它们。

如果您只是不喜欢终端界面,请尝试使用conemu(https://conemu.github.io/)之类的内容。对于命令shell,powershell或你喜欢的任何shell来说,这是一个方便而漂亮的界面。