홈페이지 » 어떻게 » Windows 10의 Bash 셸에서 Windows 프로그램을 실행하는 방법

    Windows 10의 Bash 셸에서 Windows 프로그램을 실행하는 방법

    크리에이터 업데이트에서 Windows 10의 Bash 셸은 이제 Windows 바이너리와 표준 명령 프롬프트 명령을 Bash에서 실행할 수 있습니다. 동일한 Bash 셸에서 Linux 및 Windows 프로그램을 모두 실행하거나 Windows 명령을 Bash 스크립트에 통합 할 수도 있습니다.

    당신이 알아야 할 사항

    이 기능에 대해 알아야 할 기본 세부 정보는 다음과 같습니다.

    • 사용자 계정: Bash 쉘에서 실행 된 프로그램은 현재 Windows 사용자 계정에 의해 실행 된 것처럼 실행됩니다..
    • 권한:이 프로그램은 Bash.exe 프로세스와 동일한 권한을가집니다. 따라서이 명령에 관리자 액세스 권한을 부여하려면 Bash 쉘을 관리자로 실행해야합니다.
    • 작업 디렉토리: Windows 프로그램은 Bash 쉘과 동일한 "작업 디렉토리"를 공유합니다. 따라서 현재 디렉토리의 내용을 나열하는 명령을 실행하면 Bash 쉘의 현재 작업 디렉토리 내용이 나열됩니다. 사용 CD 작업 디렉토리를 변경하는 명령.

    이를 염두에두고 프로그램을 실행하는 방법을 살펴 보겠습니다..

    Windows 프로그램을 실행하는 방법

    Windows 프로그램을 실행하려면 Bash 쉘에서 프로그램의 .exe 파일 경로를 입력하십시오. Windows C : 드라이브는 Bash의 / mnt / c에서 사용할 수 있습니다. Bash 환경은 대소 문자를 구별하므로 정확한 대소 문자를 지정해야합니다.

    C : \ Windows \ System32 \ PING.EXE에있는 Ping 유틸리티를 실행하려고한다고 가정 해 봅시다. 다음 명령을 실행합니다.

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

    Bash는 대소 문자를 구별하므로 다음 명령은 작동하지 않습니다.

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

    경로에 공백과 대괄호 같은 복잡한 문자 (예 : Program Files 폴더)가있는 경우이 작업은 조금 복잡합니다. 공백, 대괄호 및 기타 복잡한 문자 앞에 "\"문자를 붙이면 "이스케이프"해야합니다..

    예를 들어 C : \ Program Files (x86) \ Internet Explorer \ iexplore.exe에있는 Internet Explorer 프로그램을 실행한다고 가정 해 봅시다. Bash에서 다음 명령을 실행해야합니다.

    / mnt / c / 프로그램 \ 파일 \ (x86 \) / Internet \ Explorer / iexplore.exe

    공백과 괄호 문자 앞에 "\"가 있는지 확인하십시오. 이러한 문자는 "이스케이프"되어야합니다. 그렇지 않으면 Bash는 문자가 파일 경로의 일부임을 인식하지 못합니다..

    명령에 인수를 전달하는 방법

    Bash 쉘은 인수를 직접 실행 한 명령에 전달합니다..

    예를 들어 example.com에 ping을 수행하려면 다음을 실행하십시오.

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

    또는 메모장에서 Windows 호스트 파일을 열려면 다음을 실행하십시오.

    /mnt/c/Windows/System32/notepad.exe "C : \ Windows \ System32 \ drivers \ etc \ hosts"

    Windows 프로그램에 직접 파일 경로를 전달할 때 표준 Windows 파일 경로를 사용합니다. Bash가 직접 인수를 전달하기 때문입니다. Notepad.exe 및 기타 Windows 프로그램에서 Windows 파일 경로가 필요함.

    기본 제공 명령을 실행하는 방법

    일부 Windows 명령은 .exe 파일이 아니지만 명령 프롬프트 자체에 내장되어 있습니다. 예를 들어, 여기에는 지시 명령은 일반적으로 명령 프롬프트에서 실행할 수 있습니다. 이러한 명령을 실행하려면 다음 명령을 실행해야합니다. cmd.exe 명령 프롬프트와 관련된 이진 파일을 만들고 다음과 같이 명령을 / C와 함께 인수로 전달합니다.

    /mnt/c/Windows/System32/cmd.exe / C 명령

    예를 들어, 지시 명령이 명령 프롬프트에 내장되어 있으면 다음 명령을 실행합니다.

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

    디렉토리를 경로에 추가하는 방법

    Linux 용 Windows 서비스 환경은 Windows 실행 파일을 Linux 바이너리를 다루는 방식과 비슷하게 처리합니다. 즉, .exe 파일이 들어있는 디렉터리를 경로에 추가 한 다음 해당 .exe 파일을 직접 실행할 수 있습니다. 예를 들어 경로에 System32 디렉터리를 추가하려면 다음을 실행합니다.

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

    그런 다음 System32 폴더에있는 Windows .exe 파일을 다음과 같이 직접 실행할 수 있습니다.

    PING.exe example.com
    notepad.exe
    cmd.exe / C dir

    한 명령의 출력을 다른 명령으로 파이프하는 방법

    Windows 명령의 출력은 Linux 명령으로 파이프 될 수 있으며 반대의 경우도 가능합니다. 예를 들어, ipconfig.exe -all 명령을 사용하여 네트워크 인터페이스에 대한 세부 정보를 나열하고 Linux에 파이프하십시오. grep 명령을 사용하여 출력을 검색하십시오. 예를 들어 연결에 대한 모든 정보를 나열하고 "IPv4 주소"와 일치하는 섹션을 검색하려면 다음을 실행하십시오.

    /mnt/c/Windows/System32/ipconfig.exe -all | grep "IPv4 주소"

    이것이 기본 프로세스입니다. 이 명령은 Bash 스크립트에 통합 될 때도 작동하므로 Windows 명령과 Linux 유틸리티를 모두 포함하는 Bash 스크립트를 작성할 수 있습니다. Bash 쉘에서 실행되면 Bash 스크립트에서 작동합니다.

    그리고 다른 방법으로 가고 싶다면 "bash -c"명령을 사용하여 표준 Windows 명령 프롬프트에서 Bash 명령을 실행할 수 있습니다.