Windows 10'un Bash Kabuğundan Windows Programları Nasıl Çalıştırılır
Oluşturucu Güncelleştirmesi'nde, Windows 10'un Bash kabuğu şimdi Windows ikili dosyalarını ve standart Komut İstemi komutlarını doğrudan Bash'den çalıştırmanıza izin veriyor. Hem Linux hem de Windows programlarını aynı Bash kabuğundan çalıştırabilir, hatta Windows komutlarını bir Bash komut dosyasına dahil edebilirsiniz.
Ne bilmek istiyorsun
İşte bu özellik hakkında bilmeniz gereken bazı temel bilgiler:
- Kullanıcı hesabı: Bash kabuğundan başlatılan programlar, geçerli Windows kullanıcı hesabı tarafından başlatılmış gibi çalışacak.
- İzinler: Bu programlar Bash.exe işlemiyle aynı izinlere sahip olacaktır. Bu komutların Yönetici erişimine sahip olmasını istiyorsanız, Bash kabuğunu Yönetici olarak çalıştırmanız gerekir..
- Çalışma dizini: Windows programları, Bash kabuğu ile aynı "çalışma dizinini" paylaşır. Bu nedenle, geçerli dizinin içeriğini listeleyen bir komut çalıştırırsanız, mevcut çalışan dizinin içeriğini Bash kabuğunda listeleyecektir. Kullan
CD
çalışma dizinlerini değiştirme komutu.
Bunu akılda tutarak, nasıl bir program çalıştırılacağına bakalım.
Bir Windows Programını Çalıştırma
Bir Windows programını çalıştırmak için, programın .exe dosyasının yolunu Bash kabuğuna girin. Windows C: sürücünüzün Bash içindeki / mnt / c adresinde bulunduğunu unutmayın. Bash ortamı da büyük / küçük harf duyarlıdır, bu nedenle doğru büyük / küçük harfleri belirtmeniz gerekir..
Diyelim ki C: \ Windows \ System32 \ PING.EXE konumunda bulunan Ping yardımcı programını başlatmak istiyorsunuz. Aşağıdaki komutu çalıştırırsınız:
/mnt/c/Windows/System32/PING.EXE
Bash büyük / küçük harfe duyarlı olduğu için aşağıdaki komut işe yaramaz:
/mnt/c/windows/system32/ping.exe
Yol, Program Dosyaları klasörleri gibi boşluklar ve parantezler gibi karmaşık karakterler içeriyorsa, bu biraz daha karmaşıktır. Boşluklardan, köşeli parantezlerden ve diğer karmaşık karakterlerden “\” karakteri ile ön ekleyerek “kaçmanız” gerekir..
Örneğin, C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe konumunda bulunan Internet Explorer programını çalıştırmak istediğinizi varsayalım. Bash'de aşağıdaki komutu çalıştırmanız gerekir:
/ mnt / c / Program \ Dosyalar \ \ (x86 \) / Internet \ Explorer / iexplore.exe
Boşluk ve parantez karakterlerinden önce “\” işaretine dikkat edin. Bu karakterler "kaçmış" olmalı veya Bash karakterlerin bir dosya yolunun parçası olduğunu anlamıyor.
Bir Komut Değişkenine Nasıl Geçilir?
Bash kabuğu, bağımsız değişkenleri doğrudan yürüttüğünüz komutlara iletir..
Örneğin, example.com'a ping atmak istiyorsanız, şunları çalıştırırsınız:
/mnt/c/Windows/System32/PING.EXE example.com
Veya Windows hosts dosyasını Not Defteri'nde açmak istiyorsanız, aşağıdakileri çalıştırın:
/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts"
Bir dosya yolunu doğrudan bir Windows programına geçirirken standart Windows dosya yolunu kullanırsınız. Çünkü Bash tartışmayı doğrudan geçiyor. Notepad.exe ve diğer Windows programları bir Windows dosya yolu bekler.
Yerleşik Komut Nasıl Çalıştırılır
Bazı Windows komutları .exe dosyası değildir, ancak Komut İstemi'nin içine yerleştirilmiştir. Örneğin, bu içerir dir
Komut İsteminde normal olarak çalıştırabileceğiniz bir komut. Böyle bir komutu çalıştırmak için, cmd.exe
Komut İstemi ile ilişkilendirilmiş bir ikili dosya ve / c ile argüman olarak komutu iletin, şöyle:
/mnt/c/Windows/System32/cmd.exe / C komutu
Örneğin, çalıştırmak için dir
Komut İstemi'nde yerleşik olarak bulunan komut, aşağıdaki komutu çalıştırırsınız:
/mnt/c/Windows/System32/cmd.exe / C dir
Yola Dizin Ekleme
Linux için Windows Hizmetleri ortamı, Windows çalıştırılabilir dosyalarına Linux ikili dosyalarını işleme biçimine benzer şekilde davranır. Bu, .exe dosyalarını içeren bir dizini yola ekleyebileceğiniz ve doğrudan bu .exe dosyalarını çalıştırabileceğiniz anlamına gelir. Örneğin, System32 dizinini yolunuza eklemek için şunları çalıştırmalısınız:
dışa aktarma PATH = $ PATH: / mnt / c / Windows / System32
Böylece doğrudan System32 klasöründe bulunan Windows .exe dosyalarını çalıştırabilirsiniz:
PING.exe example.com
notepad.exe
cmd.exe / C dir
Bir Komutun Çıktısını Başka Birine Nasıl Borular
Bir Windows komutunun çıktısı bir Linux komutuna yönlendirilebilir ve bunun tersi de geçerlidir. Örneğin, ipconfig.exe - tümü
ağ arayüzlerinizle ilgili ayrıntıları listeleme ve Linux'a aktarma komutunu verin grep
çıktıyı aramak için komut. Örneğin, bağlantınızla ilgili tüm bilgileri listelemek ve “IPv4 Adresi” ile eşleşen bölümleri aramak için aşağıdakileri çalıştırın:
/mnt/c/Windows/System32/ipconfig.exe -all | grep "IPv4 Adresi"
Temel süreç bu. Bu komutlar ayrıca bir Bash betiğine dahil edildiğinde de çalışacaktır, böylece hem Windows komutlarını hem de Linux yardımcı programlarını içeren bir Bash komut dosyası yazabilirsiniz. Bash kabuğunda çalışıyorsa, bir Bash komut dosyasında çalışacaktır..
Diğer yoldan gitmek isterseniz, Bash komutlarını standart Windows Komut İsteminden çalıştırmak için “bash -c” komutunu kullanabilirsiniz..