Cosa hai bisogno di sapere
Ecco alcuni dettagli di base che devi conoscere su questa funzione:
- Account utente: I programmi lanciati dalla shell Bash verranno eseguiti come se fossero lanciati dall'account utente di Windows corrente.
- permessi: Questi programmi avranno le stesse autorizzazioni del processo Bash.exe. Quindi, se vuoi che questi comandi abbiano accesso come amministratore, dovrai eseguire la shell Bash come amministratore.
-
Directory di lavoro: I programmi Windows condividono la stessa "directory di lavoro" della shell Bash. Quindi, se si esegue un comando che elenca i contenuti della directory corrente, verrà elencato il contenuto della directory di lavoro corrente nella shell Bash. Utilizzare il
cd
comando per cambiare le directory di lavoro.
Con questo in mente, diamo un'occhiata a come eseguire un programma.
Come eseguire un programma Windows
Per eseguire un programma Windows, immettere il percorso del file.exe del programma nella shell Bash. Ricorda che l'unità Windows C: è disponibile in / mnt / c in Bash. Anche l'ambiente Bash è sensibile al maiuscolo / minuscolo, pertanto è necessario specificare la maiuscola corretta.
Diciamo che volevi lanciare l'utilità Ping che si trova in C: Windows System32 PING.EXE. Dovresti eseguire il seguente comando:
/mnt/c/Windows/System32/PING.EXE
Il seguente comando non funzionerebbe, perché Bash è case-sensitive:
/mnt/c/windows/system32/ping.exe
Ad esempio, supponiamo di voler eseguire il programma Internet Explorer situato in C: Programmi (x86) Internet Explorer iexplore.exe. Dovresti eseguire il seguente comando in Bash:
/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe
Nota "" prima dei caratteri spazio e parentesi. Questi caratteri devono essere "scappati" o Bash non realizzerà che i caratteri fanno parte di un percorso di file.
Come passare un argomento a un comando
La shell Bash passa gli argomenti direttamente ai comandi che esegui.
Ad esempio, se si desidera eseguire ping su example.com, eseguire:
/mnt/c/Windows/System32/PING.EXE example.com
Oppure, se volessi aprire il file degli host Windows nel Blocco note, eseguiresti:
/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'
Si utilizza il percorso file standard di Windows quando si passa un percorso file direttamente a un programma Windows. Questo perché Bash passa direttamente l'argomento. Notepad.exe e altri programmi Windows si aspettano un percorso di file di Windows.
Come eseguire un comando incorporato
Alcuni comandi di Windows non sono file.exe, ma sono incorporati nel prompt dei comandi stesso. Ad esempio, questo include il
dir
comando normalmente eseguito in un prompt dei comandi. Per eseguire tale comando, è necessario eseguire il
cmd.exe
binario associato al prompt dei comandi e passare il comando come argomento con / C, in questo modo:
/mnt/c/Windows/System32/cmd.exe /C command
Ad esempio, per eseguire il
dir
comando incorporato nel prompt dei comandi, eseguire il seguente comando:
/mnt/c/Windows/System32/cmd.exe /C dir
Come aggiungere le directory al percorso
L'ambiente Windows Services per Linux tratta gli eseguibili di Windows in modo simile al modo in cui tratta i binari di Linux. Ciò significa che è possibile aggiungere una directory contenente file.exe al percorso e quindi eseguire direttamente tali file.exe. Ad esempio, per aggiungere la directory System32 al tuo percorso, devi eseguire:
export PATH=$PATH:/mnt/c/Windows/System32
È quindi possibile eseguire direttamente i file.exe di Windows che si trovano nella cartella System32, in questo modo:
PING.exe example.com
notepad.exe
cmd.exe /C dir
Come convogliare l'output di un comando ad un altro
L'output di un comando Windows può essere reindirizzato a un comando Linux e viceversa. Ad esempio, puoi usare il
ipconfig.exe -all
comando per elencare i dettagli sulle interfacce di rete e collegarlo a Linux
grep
comando per cercare l'output. Ad esempio, per elencare tutte le informazioni sulla tua connessione e cercare le sezioni che corrispondono a "Indirizzo IPv4", devi eseguire:
/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'
E, se vuoi andare dall'altra parte, puoi usare il comando "bash -c" per eseguire i comandi di Bash dal Prompt dei comandi standard di Windows.