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



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

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

СВЪРЗАНИ: Всичко, което можете да правите с новата Bash Shell на Windows 10





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

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

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



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

СВЪРЗАНИ: Как да получите достъп до вашите Ubuntu Bash файлове в Windows (и вашия системен диск на Windows в Bash)

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

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



cd

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

dir

Реклама

Това е малко по-сложно, ако пътят съдържа сложни знаци като интервали и скоби, като папките с програмни файлове. Трябва да избягвате интервали, скоби и други сложни знаци, като им поставите префикс със символ .

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

cmd.exe

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

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

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

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

dir

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

ipconfig.exe -all

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

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

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

grep Реклама

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

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

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

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

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

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

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe
/mnt/c/Windows/System32/PING.EXE example.com
/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'

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

Резултатът от команда на Windows може да бъде тръбен към команда на Linux и обратно. Например, можете да използвате командата |_+_|, за да изброите подробности за вашите мрежови интерфейси и да ги изпратите към Linux |_+_| команда за търсене на изхода. Например, за да изброите цялата информация за вашата връзка и да търсите секции, съответстващи на IPv4 адрес, трябва да изпълните:

/mnt/c/Windows/System32/cmd.exe /C command

Реклама

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

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

СВЪРЗАНИ: Как да създадете и стартирате Bash Shell скриптове на Windows 10

ПРОЧЕТЕТЕ СЛЕДВАЩО Снимка на профила за Крис Хофман Крис Хофман
Крис Хофман е главен редактор на How-To Geek. Той пише за технологиите повече от десетилетие и е бил колумнист на PCWorld в продължение на две години. Крис е писал за The New York Times, интервюиран е като технологичен експерт в телевизионни станции като NBC 6 в Маями и работата му е отразявана от новинарски издания като BBC. От 2011 г. Крис е написал над 2000 статии, които са прочетени близо един милиард пъти --- и това е само тук, в How-To Geek.
Прочетете пълната биография

Интересни Статии