Quando inicio bash
no Windows Subsystem para Linux, ele me coloca no diretório
/mnt/c/Users/<username>
Quando eu ls
este diretório, vejo os diretórios Desktop
, Documents
etc., que eu posso ver são no C:\Users\<username>
usando o Windows File Explorer. Como esse é o local em que o bash
programa foi iniciado, eu esperava que esse fosse o meu diretório pessoal, mas quando eu digito cd
ou cd ~
sou levado para
/home/<username>
que contém o meu .bashrc
, .profile
etc. arquivo que eu esperaria encontrar no meu diretório home em uma caixa de Linux. Além disso, entrar cd ../..
a partir daqui eu posso ver os diretórios bin
, etc
e assim por diante, mais uma vez como esperado em uma caixa de Linux.
Eu tenho duas perguntas sobre tudo isso:
- O que exatamente é
/mnt/c/Users/<username>
comparadoC:\Users\<username>
? Parece que eles são um na mesma --- então o que é/mnt/c/
? - Como posso visualizar os arquivos
/home/<username>
usando o Windows File Explorer? Não que eu realmente queira --- estou apenas tentando entender como o Windows está organizando essa coisa do Subsistema para Linux.
Respostas:
Para 2: o caminho atual agora está relacionado a qual distribuição você instalou da Microsoft Store em vez de um caminho global. Portanto, para o Ubuntu, agora está localizado em:
Presumo que as outras distribuições estarão em um local semelhante nas respectivas pastas em:
fonte
/mnt/c/
é onde eu guardo tudo na WSL. Eu adoraria se o WSL fosse revertido para o LWS; o que significa que seria incrível se todos nós rodássemos o Ubuntu com Linux Subsystems for Windows para executar uma cópia completa do Windows 10 integrada ao Ubuntu. Eu sei, isso seria muito mais difícil, mas é possível sonhar./mnt/c
é exatamente o mesmo queC:\
. É apenas a sintaxe para acessar a partir da WSL.C:\Users\<username>\AppData\Local\Lxss\rootfs
.fonte
C:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\
Você pode ciente de quão ruim se você editar/
manualmenteSobre o sistema de arquivos montado em
/mnt/c
Ao contrário do Windows, o Linux (e os outros sistemas baseados em Unix) usam uma única estrutura de pastas, independente do número de discos que você possui. Se você tiver vários discos, todos esses discos deverão ser montados na estrutura da pasta em algum momento.
/mnt
ou/media
O WSL possui um tipo especial de sistema de arquivos chamado DrvFS que fornece acesso aos discos usados no Windows. Você pode usar o DrvFS para montar, não apenas o sistema de arquivos do Windows, mas também discos de rede e outros tipos de mídia.
C:
disco no Windows é montado em/mnt/c
D:
disco no Windows, ele será montado em/mnt/d
Os arquivos que você pode ver
/mnt/c
são os mesmos que você possuiC:
. Se você modificar algum arquivo, também receberá as alterações nas janelas.Você pode usar o
mount
comando para acessar outros tipos de mídia (por exemplo, unidades removíveis ou compartilhamentos de rede).Sobre a localização de
/home/<username>
Na WSL, todo o sistema de arquivos linux está localizado em uma pasta do Windows. O local da pasta depende da versão do Windows e da distribuição WSL que você está usando.
%LOCALAPPDATA%\Lxss\rootfs
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. O nome do pacote varia dependendo da distribuição (por exemplo, é diferente para o Ubuntu e para o Debian)Você pode verificar muitas opções para saber a localização da pasta WSL . Por exemplo, acho que a opção mais fácil é usar lxRunOffline para conhecer a pasta de instalação.
Depois de saber o local da pasta de instalação, o
/home/<username>
item está abaixo<installation folder>\rootfs\home\username
.c:\wsl\ubuntu
/home/<username>
está emc:\wsl\ubuntu\rootfs\home\username
NOTA: O Linux e o Windows armazenam permissões de arquivo de maneiras diferentes. Atualmente, o WSL DrvFS armazena as permissões do Linux como Streams (metadados) anexados aos arquivos que você pode ver no Windows. A Microsoft não recomenda modificar arquivos linux usando programas do Windows. É possível que alguns aplicativos do Windows danifiquem as permissões do linux sem aviso prévio.
fonte
Suponho que possa depender de qual versão do Windows você está, mas para mim em 2018 no Windows 10 Pro de 64 bits, Versão 1709 (Compilação 16299.522 do SO) e também Versão 1803 (Compilação 17134.165 do SO) [uma atualização do Windows ocorreu ironicamente quando eu estava digitando isso] o local ainda está:
C:\Users\<username>\AppData\Local\lxss
O truque é que, quando você está no ponto
C:\Users\<username>\AppData\Local
, não verá umalxss
pasta (a menos que desmarque "Ocultar arquivos protegidos do sistema operacional (recomendado)" nas opções da pasta).No entanto, basta anexar
\lxss
na barra de endereços do Windows Explorer e ele o levará para a pasta.(Observe que eu não tinha um
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
ou algo parecido que foi mencionado na resposta de Michael Bonds)Atualizar
Acontece que há WSL herdado, que foi o que eu tinha instalado. Agora, o WSL é fornecido por meio de um aplicativo da loja da Microsoft. Existem versões para o Ubuntu 18.04 LTS e também agora alguns outros tipos de Linux (por exemplo, Debian). Se você deseja estar atualizado, desinstale o WSL herdado e instale a versão da loja da Microsoft .
A localização da sua pasta pessoal dependerá de qual desses tipos de WSL você instalou.
fonte
fonte
Quatro etapas para o Windows 10 Pro fixar seu Debian / Ubuntu / OpenSUSE $ HOME no menu Iniciar do Windows:
Agora você tem seu diretório pessoal fixado no menu Iniciar. Tentei criar um atalho, mas isso não vai a lugar nenhum inteligível.
fonte
Eu só precisava encontrar
/etc/environment
usando o Ubuntu 16.04 olhando para o armazenamento NTFS do Windows 10. Encontrei aqui:/mnt/c/
paraC:\
a nomenclatura do Windows./
para\
pelo mesmo motivo.USER_NAME
pelo seu nome de usuário do Windows.sudo -H Nautilus
para obter permissões para visualizar os arquivos de usuário armazenados na WSL.Do lado do Linux (Ubuntu 16.04), a nomenclatura seria:
fonte
Com o Windows 10 Insider atual (toque rápido: Windows 10 build 19025.1), você pode montar sua distribuição como uma unidade de rede. O WSL é acessível
wls$
, pois o caminho é o seu nome de distribuição (wsl -l -q
).Por exemplo
net use Z: \\wsl$\Debian /PERSISTENT:YES
fonte
No Bash, para visualizar o diretório atual no Windows File Explorer, basta digitar:
Não deixe de fora o "." Isso abrirá o Windows Explorer na pasta atual e você poderá ver onde está tudo em relação ao restante do seu sistema Windows.
fonte