Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows ve Linux dosya sistemleri arasında çalışırken göz önünde bulundurulması gereken bazı noktalar vardır. Bu kılavuzda, Windows ve Linux tabanlı komutları karıştırmaya yönelik birlikte çalışabilirlik desteği örnekleri de dahil olmak üzere bunların birkaçını sizin için özetledik.
Dosya sistemleri arasında dosya depolama ve performans
Bunu yapmak için belirli bir nedeniniz yoksa, dosyalarınızla işletim sistemleri arasında çalışmamanızı öneririz. Linux komut satırında (Ubuntu, OpenSUSE vb.) çalışıyorsanız en hızlı performans hızı için dosyalarınızı WSL dosya sisteminde depolayın. Bir Windows komut satırında (PowerShell, Komut İstemi) çalışıyorsanız, dosyalarınızı Windows dosya sisteminde depolayın.
Örneğin, WSL proje dosyalarınızı depolarken:
- Linux dosya sistemi kök dizinini kullanın:
/home/<user name>/Project - Windows dosya sistemi kök dizini değil:
/mnt/c/Users/<user name>/Project$veyaC:\Users\<user name>\Project
WSL komut satırındaki dosya yolunda /mnt/ gördüğünüzde, bu bağlı bir sürücüden çalıştığınız anlamına gelir. Bu nedenle, Windows dosya sistemi C:\ sürücüsü (C:\Users\<user name>\Project) bir WSL komut satırına bağlandığında şöyle görünür: /mnt/c/Users/<user name>/Project$. Proje dosyalarınızı bağlı bir sürücüde depolamak mümkündür, ancak bunları doğrudan sürücüde \\wsl$ depolarsanız performans hızınız artar.
Geçerli dizininizi Windows Dosya Gezgini'nde görüntüleme
Komut satırından Windows Dosya Gezgini'ni açarak, aşağıdakileri kullanarak dosyalarınızın depolandığı dizini görüntüleyebilirsiniz:
explorer.exe .
Alternatif olarak, komutunu da kullanabilirsiniz: powershell.exe /c start . Geçerli dizini açmak için komutun sonuna nokta eklediğinizden emin olun.
Kullanılabilir tüm Linux dağıtımlarınızı ve bunların kök dosya sistemlerini Windows Dosya Gezgini'nde görüntülemek için adres çubuğuna şunu girin: \\wsl$
Dosya adı ve dizin büyük/küçük harf duyarlılığı
Büyük/küçük harf duyarlılığı, büyük harf (FOO.txt) ve küçük harf (foo.txt) harflerin dosya adında veya dizinde ayrı (büyük/küçük harfe duyarlı) veya eşdeğer (büyük/küçük harfe duyarsız) olarak işlenip işlenmeyeceğini belirler. Windows ve Linux dosya sistemleri büyük/küçük harf duyarlılığını farklı şekillerde işler - Windows büyük/küçük harflere duyarlı değildir ve Linux büyük/küçük harflere duyarlıdır. Büyük/küçük harf duyarlılığını ayarlama makalesinde, özellikle WSL ile diskleri bağlarken büyük/küçük harf duyarlılığını ayarlama hakkında daha fazla bilgi edinin.
Windows ve Linux komutları arasında birlikte çalışabilirlik
Windows ve Linux araçları ve komutları WSL ile birbirinin yerine kullanılabilir.
- Windows araçlarını (örneğin, notepad.exe) bir Linux komut satırından (örneğin, Ubuntu) çalıştırın.
- Linux araçlarını (örn. grep) bir Windows komut satırından (örn. PowerShell) çalıştırın.
- Linux ve Windows arasında ortam değişkenlerini paylaşın. (Yapı 17063+)
Windows komut satırından Linux araçlarını çalıştırma
Windows Komut İstemi'nden (CMD) veya PowerShell'den, wsl <command> (veya wsl.exe <command>) kullanarak Linux ikili dosyalarını çalıştırın.
Örneğin:
C:\temp> wsl ls -la
<- contents of C:\temp ->
İkili dosyalar şu şekilde çağrılır:
- Geçerli CMD veya PowerShell istemiyle aynı çalışma dizinini kullanın.
- WSL varsayılan kullanıcısı olarak çalıştırın.
- Arama işlemi ve terminal ile aynı Windows yönetim haklarına sahiptir.
WSL'de çalıştırılan herhangi bir komut gibi, wsl (veya wsl.exe) ardından gelen Linux komutu işlenir. sudo, piping ya da dosya yeniden yönlendirme gibi şeyler çalışır.
Varsayılan Linux dağıtımınızı güncelleştirmek için sudo kullanma örneği:
C:\temp> wsl sudo apt-get update
Bu komut çalıştırıldıktan sonra varsayılan Linux dağıtım kullanıcı adınız listelenir ve sizden parolanız istenir. Parolanızı doğru girdikten sonra dağıtımınız güncelleştirmeleri indirir.
Linux ve Windows komutlarını karıştırma
PowerShell kullanarak Linux ve Windows komutlarını karıştırmaya birkaç örnek aşağıda verilmiştir.
Linux komutunu ls -la kullanarak dosyaları listelemek için ve PowerShell komutunu findstr kullanarak "git" içeren sözcüklerin sonuçlarını filtrelemek için komutları birleştirin:
wsl ls -la | findstr "git"
PowerShell komutunu dir kullanarak dosyaları listelemek için ve Linux komutunu grep kullanarak "git" içeren sözcüklerin sonuçlarını filtrelemek için komutları birleştirin:
C:\temp> dir | wsl grep git
Linux komutunu ls -la kullanarak dosyaları listelemek için ve PowerShell komutunu kullanarak > out.txt bu listeyi "out.txt" adlı bir metin dosyasına yazdırmak için komutları birleştirin:
C:\temp> wsl ls -la > out.txt
içine wsl.exe geçirilen komutlar, değişiklik yapılmadan WSL işlemine iletilir. Dosya yolları WSL biçiminde belirtilmelidir.
PowerShell kullanarak Linux dosya sistemi yolundaki ls -la dosyaları listelemek için Linux komutunu /proc/cpuinfo kullanmak için:
C:\temp> wsl ls -la /proc/cpuinfo
PowerShell kullanarak Windows dosya sistemi yolundaki ls -la dosyaları listelemek için Linux komutunu C:\Program Files kullanmak için:
C:\temp> wsl ls -la "/mnt/c/Program Files"
Linux'tan Windows araçlarını çalıştırma
WSL, Windows araçlarını [tool-name].exe kullanarak doğrudan WSL komut satırından çalıştırabilir. Örneğin, notepad.exe.
Bu şekilde çalıştırılacak uygulamalar aşağıdaki özelliklere sahiptir:
- Çalışma dizinini WSL komut istemi olarak tutun (çoğunlukla özel durumlar aşağıda açıklanmıştır).
- WSL işlemiyle aynı izin haklarına sahip olun.
- Etkin Windows kullanıcısı olarak çalıştırın.
- Windows Görev Yöneticisi'nde, CMD isteminden doğrudan yürütülür gibi görünür.
WSL'de çalıştırılan Windows yürütülebilir dosyaları yerel Linux yürütülebilir dosyalarına benzer şekilde işlenir; boru, yeniden yönlendirme ve hatta arka plan oluşturma beklendiği gibi çalışır.
Windows aracını çalıştırmak için Linux aracını ipconfig.exegrep kullanarak "IPv4" sonuçlarını filtreleyin ve Sütun alanlarını kaldırmak için Linux aracını cut kullanın; bir Linux dağıtımından (örneğin, Ubuntu) şunu girin:
ipconfig.exe | grep IPv4 | cut -d: -f2
Şimdi Windows ve Linux komutlarını bir araya getirmeye yönelik bir örnek deneyelim. Linux dağıtımınızı açın (örneğin. Ubuntu) ve bir metin dosyası oluşturun: touch foo.txt. Şimdi doğrudan dosyaları ve bunların oluşturma ayrıntılarını listelemek için Linux komutunuls -la, sonuçları yalnızca dosyanızın findstr.exe sonuçlarda göstermesi için filtrelemek için Windows PowerShell aracını foo.txt kullanın:
ls -la | findstr.exe foo.txt
Windows araçları dosya uzantısını içermeli, dosya olayıyla eşleşmeli ve yürütülebilir olmalıdır. Yürütülemeyen dosyalar, toplu işlem betikleri dahil. CMD yerel komutları, örneğin dir gibi, cmd.exe /C komutuyla çalıştırılabilir.
Örneğin, şunu girerek Windows dosya sisteminizin C:\ dizininin içeriğini listeleyin:
cmd.exe /C dir
microsoft.com web sitesine yankı isteği göndermek için komutunu da kullanabilirsiniz ping :
ping.exe www.microsoft.com
Parametreler Windows ikilisine değiştirilmemiş olarak geçirilir. Örneğin, aşağıdaki komut C:\temp\foo.txt dosyasını notepad.exe içinde açacaktır.
notepad.exe "C:\temp\foo.txt"
Bu da çalışır:
notepad.exe C:\\temp\\foo.txt
WSLENV ile Windows ve WSL arasında ortam değişkenlerini paylaşma
WSL ve Windows, WSLENVWSL üzerinde çalışan Windows ve Linux dağıtımları arasında köprü oluşturmak için oluşturulan özel bir ortam değişkenine sahiptir.
Değişkenin WSLENV özellikleri:
- Paylaşılır; hem Windows hem de WSL ortamlarında bulunur.
- Windows ile WSL arasında paylaştıracak ortam değişkenlerinin listesidir.
- Ortam değişkenlerini Windows ve WSL'de düzgün çalışacak şekilde biçimlendirebilir.
- WSL ile Win32 arasındaki akışta yardımcı olabilir.
Uyarı
17063'ten önce yalnızca WSL'nin erişebildiği Windows ortam değişkeniydi PATH (böylece WSL'nin altından Win32 yürütülebilir dosyaları başlatabilirsiniz). 17063'den itibaren WSLENV desteklenmeye başlanır.
WSLENV kayıt duyarlıdır.
WSLENV bayrakları
Çevre değişkeninin nasıl çevrileceğini etkileyen dört bayrak WSLENV içinde mevcuttur.
WSLENV Bayraklar:
-
/p- WSL/Linux stil yolları ile Win32 yolları arasındaki yolu çevirir. -
/l- ortam değişkeninin yolların listesi olduğunu gösterir. -
/u- bu ortam değişkeninin yalnızca Win32'den WSL çalıştırılırken dahil edilmesi gerektiğini gösterir. -
/w- bu ortam değişkeninin yalnızca WSL'den Win32 çalıştırılırken dahil edilmesi gerektiğini gösterir.
Bayraklar gerektiğinde birleştirilebilir.
WSLENV hakkında SSS'ler ve WSLENV değerini önceden tanımlanmış diğer ortam değişkenlerinin bir birleşimine ayarlama örnekleri de dahil olmak üzere WSLENV hakkında daha fazla bilgi edinin. Her biri eğik çizgi ve ardından bayraklar eklenerek değerin nasıl çevrileceğini ve değişkenlerin betikle geçirilmesi gerektiğini belirtin. Bu makale, WSL ile Win32 arasında GOPATH paylaşmak üzere yapılandırılmış Go programlama diliyle geliştirme ortamı ayarlamaya yönelik bir örnek de içerir.
Birlikte çalışabilirliği devre dışı bırakma
Kullanıcılar, aşağıdaki komutu kök olarak çalıştırarak tek bir WSL oturumu için Windows araçlarını çalıştırma özelliğini devre dışı bırakabilir:
echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop
Windows ikili dosyalarını yeniden etkinleştirmek için tüm WSL oturumlarından çıkın ve bash.exe yeniden çalıştırın veya aşağıdaki komutu kök olarak çalıştırın:
echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop
Birlikte çalışma devre dışı bırakıldığında WSL oturumları arasında kalıcı olmaz; yeni bir oturum başlatıldığında birlikte çalışma yeniden etkinleştirilir.
Windows Subsystem for Linux