Anasayfa » nasıl » Windows 10'un Bash Kabuğundan Windows Programları Nasıl Çalıştırılır

    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..