Начална » как да » Как да стартирате Windows програми от Bash Shell на Windows 10

    Как да стартирате Windows програми от Bash Shell на Windows 10

    В Обновяването на Създателите, Windows 10 на Bash сега ви позволява да стартирате Windows двоични файлове и стандартни команди Command Prompt, точно от Bash. Можете да стартирате както Linux, така и Windows програми от една и съща обвивка на Bash, или дори да включите Windows команди в Bash скрипт.

    Какво трябва да знаете

    Ето някои основни подробности, които трябва да знаете за тази функция:

    • Потребителски акаунт: Програми, стартирани от обвивката на Bash, ще се изпълняват така, сякаш са стартирани от текущия потребителски акаунт на Windows.
    • Разрешения: Тези програми ще имат същите разрешения като процеса Bash.exe. Така че, ако искате тези команди да имат администраторски достъп, ще трябва да стартирате Bash черупката като администратор.
    • Работна директория: Windows програмите споделят една и съща "работна директория" като Bash shell. Така че, ако изпълните команда, която изброява съдържанието на текущата директория, тя ще изброи съдържанието на текущата работна директория в Bash shell. Използвай CD команда за промяна на работни директории.

    Имайки това предвид, нека да разгледаме как да стартираме програма.

    Как да стартирате Windows програма

    За да стартирате Windows програма, въведете пътя към .exe файла на програмата в Bash shell. Не забравяйте, че вашият Windows C: диск е достъпен в / mnt / c в Bash. Околната среда на Bash също е чувствителна към малки букви, така че трябва да посочите правилните главни букви.

    Да речем, че искате да стартирате Ping помощната програма, намираща се в C: Windows System32 PING.EXE. Ще изпълните следната команда:

    /mnt/c/Windows/System32/PING.EXE

    Следната команда няма да работи, защото Bash е чувствителен към малки и главни букви:

    /mnt/c/windows/system32/ping.exe

    Това е малко по-сложно, ако пътят съдържа сложни символи като интервали и скоби, като папките на Program Files. Трябва да "избягате" от интервали, скоби и други сложни символи, като ги префиксирате с "\ t.

    Например, да кажем, че искате да стартирате програмата Internet Explorer, намираща се в C: Program Files (x86) Internet Explorer iexplore.exe. Трябва да изпълните следната команда в Bash:

    / mnt / c / Файлове на програмата (x86) / Internet Explorer / iexplore.exe

    Обърнете внимание на символите "\ _" преди пространството и скобите. Тези знаци трябва да бъдат „избягали“ или Bash няма да осъзнае, че символите са част от пътя на файла.

    Как да предадем аргумента на командването

    Bash обвивката предава аргументи директно на командите, които изпълнявате.

    Например, ако искате да пингвате example.com, бихте изпълнили:

    /mnt/c/Windows/System32/PING.EXE example.com

    Или, ако искате да отворите файла с хостове на Windows в Notepad, трябва да стартирате:

    /mnt/c/Windows/System32/notepad.exe "C: Windows System32 драйвери и др.

    Използвате стандартния път на файла на Windows, когато предавате пътя на файла директно към програма на Windows. Това е така, защото Баш предава аргумента директно. Notepad.exe и други програми на Windows очакват пътека за файлове на Windows.

    Как да стартирате вградена команда

    Някои команди на Windows не са .exe файлове, но са вградени в самата команда. Например, това включва реж Командата, която обикновено можете да изпълните в командния ред. За да изпълните такава команда, трябва да стартирате cmd.exe бинарната, асоциирана с командния ред, и я препраща като аргумент с / C, така:

    /mnt/c/Windows/System32/cmd.exe / C команда

    Например, за да стартирате реж вградена в командния ред, трябва да изпълните следната команда:

    /mnt/c/Windows/System32/cmd.exe / C директория

    Как да добавите директории към пътя

    Средата на Windows Services for Linux третира изпълнимия файл на Windows, подобен на начина, по който третира двоичните файлове на Linux. Това означава, че можете да добавите директория, съдържаща .exe файлове на пътя и след това да изпълните тези .exe файлове директно. Например, за да добавите директорията System32 към пътя си, трябва да изпълните:

    export PATH = $ PATH: / mnt / c / Windows / System32

    След това можете директно да стартирате Windows .exe файловете, намиращи се в папката System32, като:

    PING.exe example.com
    notepad.exe
    cmd.exe / C реж

    Как да направим изхода на една команда към друга

    Изходът на командата на Windows може да бъде свързан към командата Linux и обратно. Например, можете да използвате ipconfig.exe -всички командата за изброяване на подробности за мрежовите интерфейси и връзката с Linux Впиши команда за търсене в изхода. Например, за да изведете цялата информация за връзката си и да потърсите секции, съответстващи на „IPv4 адрес“, бихте изпълнили:

    /mnt/c/Windows/System32/ipconfig.exe -всички | grep "IPv4 адрес"

    Това е основният процес. Тези команди също ще работят, когато са включени в Bash скрипт, така че можете да напишете Bash скрипт, който включва както Windows команди, така и Linux комунални услуги. Ако се изпълни в Bash черупката, тя ще работи в Bash скрипт.

    И ако искате да отидете по друг начин, можете да използвате командата "bash -c", за да стартирате Bash команди от стандартния команден ред на Windows.