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

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

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

당신이 알아야 할 것은

관련 : Windows 10의 새로운 Bash Shell로 할 수있는 모든 것

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

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

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

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

관련 : Windows의 Ubuntu Bash 파일 및 Bash의 Windows 시스템 드라이브에 액세스하는 방법

Windows 프로그램을 실행하려면 경로를 입력하십시오.Bash 셸에있는 프로그램의 .exe 파일입니다. Windows C : 드라이브는 Bash의 / mnt / c에 있습니다. Bash 환경은 대소 문자를 구분하므로 대문자를 올바르게 지정해야합니다.

C : WindowsSystem32PING.EXE에있는 Ping 유틸리티를 시작한다고 가정 해 보겠습니다. 다음 명령을 실행하십시오.

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

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

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

경로가 조금 더 복잡합니다Program Files 폴더와 같이 공백과 괄호와 같은 복잡한 문자를 포함합니다. 공백, 대괄호 및 기타 복잡한 문자 앞에 ""문자를 붙여서 "이스케이프"해야합니다.

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

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe

공백과 괄호 문자 앞에 ""를 기록하십시오. 이 문자는 "이스케이프 처리"되어야합니다. 그렇지 않으면 Bash는 해당 문자가 파일 경로의 일부임을 인식하지 못합니다.

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

Bash 셸은 인수를 실행하는 명령에 직접 전달합니다.

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

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

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

/mnt/c/Windows/System32/notepad.exe "C:WindowsSystem32driversetchosts"

다음과 같은 경우 표준 Windows 파일 경로를 사용합니다파일 경로를 Windows 프로그램으로 직접 전달 Bash가 인수를 직접 전달하기 때문입니다. Notepad.exe 및 기타 Windows 프로그램에는 Windows 파일 경로가 필요합니다.

내장 명령을 실행하는 방법

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

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

예를 들어 dir 명령 프롬프트에 내장 된 명령은 다음 명령을 실행합니다.

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

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

Linux 용 Windows 서비스 환경 취급Linux 바이너리를 처리하는 방식과 유사한 Windows 실행 파일 즉, .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 Address"

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

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