Linux için Windows Alt Sistemindeki giriş dizini nedir?


86

bashLinux için Windows Subsystem'a başladığımda , bu dizinde beni bırakır

/mnt/c/Users/<username>

Ne zaman lsbu dizin, ben dizinleri görmek Desktop, Documentsvb ben içindedir görebilirsiniz C:\Users\<username>, Windows Dosya Gezgini kullanarak. Nerede bu yana bashprogram başladı, ben Bunu ana dizinidir beklenen ama ne zaman yazın ya cdya cd ~ben getirilen am

/home/<username>

Sözlerimin içeren .bashrc, .profilevb bir Linux kutuya benim ev dizininde bulmak beklenir dosyası. Üstelik girmesini cd ../..buradan ben dizinleri görebilirsiniz bin, etcve benzeri, yine bir Linux paketinde bekliyordu.

Bütün bunlarla ilgili iki sorum var:

  1. Tam olarak /mnt/c/Users/<username>neyle karşılaştırılır C:\Users\<username>? Görünüşe göre onlar aynı, /mnt/c/peki ne ?
  2. /home/<username>Windows Dosya Gezgini'ni kullanarak dosyaları nasıl görebilirim ? Gerçekten istediğimden değil --- Sadece Windows'un bu Alt Sistemi Linux için nasıl organize ettiği konusunda bir fikir edinmeye çalışıyorum.

Yanıtlar:


102

2 için: Geçerli yol, artık bir genel yol yerine Microsoft Mağazası'ndan hangi dağıtım yüklediğinizle ilgilidir. Yani, Ubuntu için şimdi şurada:

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

Diğer dağıtımların aşağıdaki klasörleri altında benzer bir yerde olacağını varsayıyorum:

%LOCALAPPDATA%\Packages\

11
Bu uygulamayı rahatsız edici bulabilen başka biri var mı? HOME klasörümün bir repo içindeki MY verilerim için TEK güvenli yer olması gerekmiyor mu? Bu yaklaşımla, kırık bir repo ve yeniden yükleme hortumları MY DATA'yı NO korumaya çalışma girişiminde bulunmadan VE bir Zaten bir GERÇEK / ev sahibiyken gizlenir. Veriler neden orada devam etmiyor? Bu daha tehlikelidir çünkü şimdi dağıtımları denemek / kullanmak / takas etmek için teşvik ediliyoruz (WLinux). Gerçekten birileri bütün bunları düşünmemiş gibi hissediyor.
rainabba

Benim durumumda (1809) bu klasör CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
jao

2
Önemli Not: Windows araçlarını kullanarak hala Linux dosyalarının etrafında dolaşmamalısınız. Bakınız: blogs.msdn.microsoft.com/commandline/2016/11/17/… (ayrıca blog gönderisinin kendisine de bakın)
coltoneakins

fantastik. Windows / mingw için gitmenin bir başka nedeni daha iyi çalışıyor ... gerçek günlük iş yüklerine daha fazla düşünüldü. Düzgün remap yapmanın bir yolu var mı?
enorl76

1
@rainabba İlk allıkta katılıyorum ama bazı düşüncelerden sonra hala tam gelişmiş Ubuntu yerine Windows kullanmayı seçiyorum. Bu yüzden WSL'yi Linux araçlarına erişmenin bir yolu olarak görüyorum ama hala windows dosya sistemimi birinci sınıf vatandaş olarak görüyorum. Yani /mnt/c/ben WSL her şeyi burada depolar. WSL, LWS'ye ters çevrilseydi çok isterdim; Bu, Ubuntu’ya tümleşik bir Windows 10 kopyası çalıştırmak için Windows’ta Linux için Alt Sistemler kullanarak Ubuntu kullanıyor olmamız harika olurdu. Biliyorum, bu çok daha zor olurdu ama biri hayal edebiliyor.
Chev,

29
  1. /mnt/ctam olarak aynı C:\. WSL'den almak için sadece sözdizimi.
  2. İçeri bak C:\Users\<username>\AppData\Local\Lxss\rootfs.

8
Uyarı: blogs.msdn.microsoft.com/commandline/2016/11/17/… evet burası fakat hiçbir şeyi değiştirmeyin.
chx

6
2018 itibariyle, bu cevap artık geçerli değil. @ MichaelBond'un cevabına bakınız.
dr01

11
Şimdi o gitti El ile C:\Users\[USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_[CODE]\LocalState\rootfs\ düzenlediğinizde ne kadar kötü olduğunun farkında olabilirsiniz/
mementototem

kopyalamaya karşı makarna, aracılığıyla kolay erişim için `% LOCALAPPDATA% \ Paketler \ CanonicalGroupLimited.UbuntuonWindows_ [KOD] \ LocalState \ rootfs`
dal

"Klasör seçenekleri> Görüntüle: Gelişmiş ayarlar: Korunan işletim sistemi dosyalarını gizle (Önerilen)" seçeneğinin işaretini kaldırmadığınız sürece lxss klasörünün Dosya Gezgini'nde gizleneceğini unutmayın. Ancak gizli olmasına rağmen, klasör yoluna girerseniz, klasörü Dosya Gezgini'nde açabilirsiniz.
Daryn

17

Üzerine monte edilmiş dosya sistemi hakkında /mnt/c

  1. Tam olarak / mnt / c / Users / C: \ Users \ ile karşılaştırıldığında nedir? Görünüşe bakılırsa aynı --- --- / mnt / c / nedir?

Windows'un aksine Linux (ve Unix tabanlı diğer sistemler) sahip olduğunuz disk sayısından bağımsız olarak tek bir klasör yapısı kullanır. Birden fazla diskiniz varsa, tüm bu disklerin bir noktada klasör yapısına monte edilmesi gerekir .

  • Tipik olarak, (sistem önyükleme için kullanılandan daha farklı) tüm diskleri edilir monte adlı bir klasörde /mntveya/media

WSL, Windows'ta kullanılan disklere erişim sağlayan DrvFS adlı özel bir dosya sistemine sahiptir. Yalnızca Windows dosya sisteminizi değil, ağ disklerini ve diğer medya türlerini de bağlamak için DrvFS'yi kullanabilirsiniz.

  • WSL’de, varsayılan olarak, C:pencerelerdeki disk/mnt/c
  • Başka bir diskiniz varsa, örneğin D:pencerelerdeki bir diskiniz varsa, altına/mnt/d

Görebildiğiniz dosyalar içinde /mnt/cbulunduğunuzla aynıdır C:. Bazı dosyaları değiştirirseniz, değişiklikleri pencerelerde de alırsınız.

Sen olabilir kullanmak mountdiğer medya türleri erişmek için komutu (örn çıkarılabilir sürücüler veya ağ paylaşımları).


Yeri hakkında /home/<username>

  1. Dosyaları / home / Windows Dosya Gezgini'ni kullanarak nasıl görebilirim? Gerçekten istediğimden değil --- Sadece Windows'un bu Alt Sistemi Linux için nasıl organize ettiği konusunda bir fikir edinmeye çalışıyorum.

WSL'de, tüm linux dosya sistemi bir Windows klasörünün altında bulunur. Klasörün konumu, Windows sürümüne ve kullandığınız WSL dağıtımına bağlıdır.

  • WSL'nin ilk sürümleri linux dosya sistemini%LOCALAPPDATA%\Lxss\rootfs
  • Windows Mağazası'ndan yüklenen WSL dağıtımları , Windows Build 16215'ten başlayarak (2017 yılının ortası gibi) bir klasör kullanın %LOCALAPPDATA%\Packages\...\LocalState\rootfs. Paketin adı dağılıma bağlı olarak değişir (örneğin Ubuntu için Debian'dan farklıdır)
  • LxRunOffline veya WSL-DistroLauncher gibi başka araçlar kullanılarak yüklenen Linux dağıtımları , linux dosya sistemini herhangi bir yerde saklayabilir.

WSL klasörünün konumunu bilmek için birçok seçeneği kontrol edebilirsiniz . Örneğin, en kolay seçeneğin yükleme klasörünü bilmek için lxRunOffline kullanmak olduğunu düşünüyorum .

## You can use lxrunoffline to check which WSL distributions have installed
## using:   lxrunoffline list

C:\> lxrunoffline list
backup
Ubuntu-18.04    

## And you can use it to get the location of any of these WSL installations
## using:   lxrunoffline get-dir -n <name of distribution>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

Kurulum klasörünün yerini öğrendikten sonra /home/<username>, altındadır <installation folder>\rootfs\home\username.

  • Örneğin, yükleme klasörünüz c:\wsl\ubuntu
  • /home/<username>olduğuc:\wsl\ubuntu\rootfs\home\username

NOT: Hem Linux hem de Windows dosya izinlerini farklı şekillerde saklar. Günümüzde, WSL DrvFS, Linux izinlerini Windows'ta görebileceğiniz dosyalara eklenmiş Akışlar (meta veriler) olarak depolar. Microsoft, Windows programlarını kullanarak linux dosyalarını değiştirmenizi önermemektedir. Bazı Windows uygulamalarının , linux izinlerine önceden bildirmeden zarar vermesi mümkündür.


5

Sanırım hangi pencerelerin üzerinde olduğunuza bağlı olabilir, ancak benim için 2018’de Windows 10 Pro 64-bit, Sürüm 1709’da (OS Build 16299.522) ve ayrıca Sürüm 1803’de (OS Build 17134.165) [i. bu yazıyordu] konum hala:

C:\Users\<username>\AppData\Local\lxss

İşin püf noktası, siz olduğunuzda C:\Users\<username>\AppData\Localbir lxssklasör görmeyeceksiniz (klasör seçeneklerinde "Korunan işletim sistemi dosyalarını gizle (Önerilen)" seçeneğinin işaretini kaldırmadıysanız).

Ancak, sadece \lxsswindows explorer adres çubuğuna ekleyin ve sizi klasöre götürür.

(Not I did not a sahip %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscya da Michael Bağlar cevap sözü edilen benzer bir şey)

Güncelleştirme

Kurulduğum şey olan eski WSL'nin olduğu ortaya çıktı. Şimdi WSL bir Microsoft mağaza uygulaması aracılığıyla sağlanmaktadır. Ubuntu 18.04 LTS versiyonları ve ayrıca Linux'un diğer bir kaç lezzeti var (örneğin Debian). Güncel olmak istiyorsanız, eski WSL'yi kaldırmak ve Microsoft mağaza sürümünü yüklemek isteyebilirsiniz .

Giriş klasörünüzün bulunduğu yer, bu WSL türlerinden hangisine yüklediğinize bağlı olacaktır.


4
  1. WSL bash konsolunu kullanarak, giriş dizininizde, "test_here.txt" gibi isteğe bağlı belirli bir ada sahip bir dosya oluşturun.
  2. Sonra Windows Gezgini'ni kullanarak, arama kutusunu kullanarak test_here.txt dosyasını arayın.
  3. Bulunan dosyada> sağ tıklayın> Dosya konumunu aç.

Bunu denedim. Çalışmıyor. Dosyayı aramada göremiyorum. Ancak, eğer dosyayı / mnt / c / Users / <kullanıcı adı> içine bırakırsam açıkça çalışır.
Eamonn Kenny

Korkarım WSL'yi denedim ama artık kullanmıyorum. Ben onu pek yararlı bulmadım. (WSG yerine her gün cygwin kullanıyorum ve çok faydalı buluyorum.) Bu yüzden artık doğrulayamıyorum, üzgünüm;)
Ellis

Rootfs aranıyor. unbuntu dosya sisteminde oradan gezinebilirsiniz.
tigr

2

Debian / Ubuntu / OpenSUSE $ HOME'nuzu Windows başlangıç ​​menüsüne sabitlemek için Windows 10 pro için dört adım:

  1. Başlat menüsünden Başlat Dosya Gezgini
  2. Adres çubuğuna (arama çubuğunu değil)% LOCALAPPDATA% yazın.
  3. Arama çubuğunda $ HOME dizin adınızı arayın, benim durumumda ekenny oldu. Bunun yaklaşık 3 versiyonu olacak ama sen gerçekten uzun yolu olan birini istiyorsun.
  4. Ana dizininizi sağ tıklayın ve "Başlatmak için İğnele" yi tıklayın.

Şimdi ana dizininizi başlangıç ​​menünüze sabitlediniz. Bir kısayol oluşturmayı denedim ama anlaşılabilir bir yere gitmiyor.


0

Sadece /etc/environmentUbuntu 16.04'ü Windows 10 NTFS deposuna bakarak bulmam gerekiyordu . Burada buldum:

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Değiştim /mnt/c/için C:\, Windows isimlendirme.
  • Ben de tüm oluşumlarını değiştirdi /için \aynı nedenle.
  • USER_NAMEWindows Kullanıcı Adınızla değiştirmeniz gerekir .
  • sudo -H NautilusWSL'de depolanan Kullanıcı Dosyalarını görüntülemek için izinler almak zorundaydım .
  • Linux dosyalarınızı ASLA bir Windows uygulaması kullanarak WSL'de güncellemeyin. Linux verilerinizi bozar .

Linux (Ubuntu 16.04) tarafından, isimlendirme:

$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0

0

Mevcut Windows 10 Insider ile (Hızlı zil: Windows 10 build 19025.1), dağıtımınızı bir ağ sürücüsü olarak bağlayabilirsiniz. WSL'ye erişilebilir wls$, yol sizin dağıtım adınızdır ( wsl -l -q).

Örneğin net use Z: \\wsl$\Debian /PERSISTENT:YES


Bunun WSL2 ile sınırlı olduğundan emin misiniz? 1903 itibariyle WSL dosya yapısının içeriğini Windows içinden keşfedebileceğinizi düşündüm. Bir harita ağı konumu oluşturmak bu değişiklikle mümkün olabilirdi.
Ramhound

Yazdığım gibi WSL2 hakkında emin değilim. İki nokta vardır: WSL2'yi (derleme 18432'den itibaren) tanıtmak ve WSL 2 tarafından desteklenen dağıtım. Bu özellik WSL2 ile birlikte görünür ve umarım herhangi bir dağıtımla çalışır.
tay

1909 (WSL2) 18363.476, 18432 değil (Insider Preview 20H1) demediğiniz sürece, bu yalnızca 20H1 sürümlerinde mi?
Ramhound

-1

Bash'te, geçerli dizini Windows Dosya Gezgini'nde görüntülemek için sadece şunu girin:

explorer .

"" Dışında bırakma. Bu, mevcut klasörde windows explorer'ı açacaktır ve her şeyin windows sisteminizle ilişkili olarak nerede olduğunu görebilirsiniz.


Katkınız için teşekkür ederim, ancak bu, Bash'in çalıştığı WSL'de (Linux için WIndows Subsystem) değil. Cevabınızı silmenizi öneririm, aksi halde reddedilir.
rmcsharry

Bu
WSL'de
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.