그래서 최근 bash 쉘 사용법을 배우고 싶어서 Windows용 Linux Ubuntu 설치를 다운로드했습니다. 지금까지 즐겨왔는데 위와 같이 할 수 있는 방법이 있는지 궁금합니다. 내 컴퓨터에 iTunes가 설치되어 있고 Linux 터미널에서 iTunes를 열고 싶다고 가정해 보겠습니다. 그게 가능합니까? 터미널의 데스크톱 폴더로 이동하여 .lnk 파일을 열려고 했지만 "바이너리 파일을 실행할 수 없습니다: Exec 형식 오류" 메시지가 표시됩니다. 가능한지 아는 사람 있나요?
답변1
예, WSL은 Windows 애플리케이션 실행을 지원합니다.실행 파일(iTunes 등)을 셸 내에서 실행합니다. 그러나 댓글에서 언급했듯이 lnk
파일은~ 아니다지원되지 않기 때문에 지원됩니다.실행 파일. 그들은연결실행 파일에.
WSL은 또한 기본적으로 Windows 경로를 Linux 경로에 추가할 수 있을 만큼 훌륭합니다. 따라서 경로(예: notepad.exe
)에 있는 애플리케이션의 경우 해당 형식을 사용하여 직접 실행할 수 있습니다 appname.exe
.
경로에 없는 앱(예 itunes.exe
: )의 경우 실제(실행 파일)의 위치를 확인 .exe
하고 전체 경로로 실행해야 합니다. 이는 Linux의 모든 Linux 실행 파일이나 Windows PowerShell 또는 CMD의 모든 Windows 실행 파일과 실제로 동일합니다.
iTunes의 전체 경로를 찾으려면 lnk
탐색기에서 파일을 마우스 오른쪽 버튼으로 클릭하고"속성". 그만큼"표적"필드에는 C:\Program Files\iTunes\iTunes.exe
.
이전에 언급한 것처럼 Windows PowerShell 또는 CMD 인터프리터(Linux의 Windows "동등한" 항목)에서 이를 시작하려는 경우 bash
에도 전체 경로가 필요하므로 다음을 실행합니다.
C:\Program Files\iTunes\iTunes.exe
WSL에서 특정 경로를 시작하려면 bash
다음을 사용합니다.
/mnt/c/Program\ Files/iTunes/iTunes.exe
Windows 경로를 Linux 경로로 변환하는 데 도움이 필요한 경우 해당 명령이 있습니다.
wslpath 'C:\Program Files\iTunes\iTunes.exe'
Windows/WSL 상호 운용성에 대한 자세한 내용은 다음을 참조하세요.이 문서.
답변2
WSL은 일부를 통해 기본적으로 Windows 바이너리를 시작할 수 있습니다.상호운용성그리고의 사용binfmt_misc
LNK
OTOH는 실행 파일이 아니라 실행 파일뿐만 아니라 모든 종류의 파일에 연결하기 위해 Windows Shell용 메타데이터를 저장하는 일종의 파일입니다. 일반 파일이므로 일부 응용프로그램으로 열어야 합니다. cmd에서 기본 관련 프로그램으로 파일을 여는 방법은 다음을 사용하는 것입니다.start
. 따라서 이전 WSL에서는 다음과 같이 할 수 있습니다.
cmd.exe /c start ~/Desktop/iTunes.lnk
분명히 %Windir%\System32
경로에 있어야 하며(기본적으로 수행됨) 그렇지 않으면 WSL 환경을 수정해야 합니다. PowerShell에서 이에 상응하는 것은 다음과 같습니다.Start-Process
또는Invoke-Item
powershell.exe -Command Start-Process ~/Desktop/iTunes.lnk
powershell.exe -Command Invoke-Item ~/Desktop/iTunes.lnk
explorer.exe
대부분의 파일 종류에 대해 직접 사용할 수도 있습니다.
explorer.exe ~/Desktop/iTunes.lnk
그러나 WSL2에는 이를 수행하는 새로운 명령이 있습니다.
wslview ~/Desktop/iTunes.lnk
보다
예를 들어, 아래 명령 중 하나를 사용하면 탐색기에서 현재 디렉터리가 열립니다.
explorer.exe .
wslview .
powershell.exe -Command Start-Process .
powershell.exe -C Invoke-Item .
cmd /c start .
또는 일부 PDF 파일을 열려면
explorer.exe my.pdf
wslview my.pdf
powershell.exe -Command Start-Process my.pdf
powershell.exe -C Invoke-Item my.pdf
cmd /c start my.pdf