Windows에서 Bash 스크립트를 실행하는 방법이 있습니까? [닫은]


100

Windows 7 Ultimate를 구입하여 사용하고 있으며 응용 프로그램 개발에 사용하고 싶습니다. 단점 중 하나는 (모든 OS와 마찬가지로) Bash 스크립트를 실행할 수 없다는 것입니다. 일부 소프트웨어를 설치하여 Windows에서 Bash 스크립트를 실행하는 방법이 있습니까? 100 % 작동하지 않아도 괜찮지 만 가장 일반적인 기능을 사용할 수있는 한 훌륭 할 것입니다.


3
더 이상 ...하지 @Rajish
msanford


1
@msanford, 이것은 말이되지 않습니다. 중복이 닫히는 동안이 스레드가 유지되는 이유는 무엇입니까?
Pacerier 2015 년

@Pacerier 모드는 질문을 삭제하지 않는 경향이 있기 때문에 거의 확실하게 작성자에 의해 중복이 삭제되었습니다 . 그것은 아마도 내 의견이 언급 한 것입니다. 저자가 왜 삭제했는지 모르겠습니다. 또한 4 년 전이었습니다.
msanford 2015 년

답변:


80

다른 많은 GNU 및 Unix 유틸리티 중에서 Bash를 포함하는 Cygwin을 설치하십시오 (어쨌든 bash가 매우 유용 할 것 같지는 않음).

또 다른 옵션은 bash와 awk와 같은 더 중요한 유틸리티의 작은 집합을 포함하는 MinGW의 MSYS 입니다. 개인적으로 나는 Cygwin을 선호했을 것입니다. 펄과 파이썬과 같은 무거운 도구를 포함하고 있기 때문에 MSYS는 이것들을 간과하고 여러분이 직접 설치할 것이라고 가정합니다.

업데이트 됨 : 누구든지이 답변에 관심이 있고 MS-Windows 10을 실행중인 경우 MS-Windows 10에는 " Linux 용 Windows 하위 시스템 "기능이 있습니다.이 기능을 사용하면 Ubuntu의 사용자 모드 이미지를 설치할 수 있습니다. 그런 다음 Bash를 실행하십시오. 이는 Bash 스크립트 디버깅 및 실행을 위해 Ubuntu와 100 % 호환성을 제공하지만이 설정은 Windows에서 완전히 독립형이며 DrvFS 기능을 통해 파일에 대한 제한된 액세스를 제외하고는 Bash 스크립트를 사용하여 Windows 기능 (예 : 프로세스 및 API)과 상호 작용할 수 없습니다. .


2
자세한 내용은 WSL (Linux 용 Windows 하위 시스템) 설명서 를 참조하세요.
stomy

1
WSL은 :( ... 10 S 지금 Windows 용으로 사용되지있어
하비에르 가르시아 만사를

2
더 이상 사용되지 않는 것이 아니라 더 저렴한 Windows " S mall Edition" 을 구입하면 얻을 수없는 기능 중 하나 일뿐 입니다. Home Edition, IIRC에서도 사용할 수 없습니다.
Guss


@MuhammadFaizanKhan-Windows에 대한 Git 포트와 몇 가지 다른 "명령 줄 지향"응용 프로그램 (주목할만한 예로서 Github Desktop)도 Bash의 Windows 포트와 함께 제공됩니다. 이보다 더 자주는 MinGW 포트입니다 (즉, Posix 호환성을 위해 MinGW 및 MSYS를 사용하여 컴파일 됨). 특히 Windows 용 Git 설치를 보면 mingw32기본적으로 MSYS가 포함 된 디렉토리를 볼 수 있습니다. 따라서 Windows 용 Git은 "nicer"설치 프로그램과 함께 Git (MSYS 설치 프로그램에서 선택 사항)을 포함하는 MinGW입니다. superuser.com/a/1362301/10942
Guss

30

내가 찾을 수있는 가장 좋은 옵션은 Git Windows입니다. 설치 한 다음 마우스 오른쪽 버튼을 클릭하고 "Git Bash Here"를 클릭하면 bash 창이 열립니다.여기에 이미지 설명 입력

다음과 같은 bash 창이 열립니다. 여기에 이미지 설명 입력

그리고 리눅스 명령이 작동합니다 ...

나는 'sh', 'vi', 'ssh', 'curl'등 명령을 시도했습니다.


이것은-너무 간단하지 않습니까?
Kalpesh Soni

넵 정말 편리
Garvit 자이나교

4
셸만 원하는 경우 Git의 추가 부풀림없이 MinGW를 설치할 수도 있습니다.
Stefan Z Camilleri

이 1 분 튜토리얼은 여기에서 볼 수 있습니다. youtube.com/watch?v=7keNZT9579k
Muhammad Faizan Khan

25

좀 더 네이티브를 찾고 있다면 getGnuWin32 를 사용 하여 포팅 된 모든 유닉스 명령 줄 도구를 설치할 수 있습니다 . 그리고 winBash대부분 의 작업 유닉스 환경을 제공합니다. 더 나은 터미널 에뮬레이터를 위해 console2 를 추가 하면 Windows에서 거의 말할 수 없습니다!

Cygwin은 전반적으로 더 나은 툴킷이지만 Windows와 Windows 사이의 구분으로 인해 깜짝 문제가 발생했습니다. 이러한 솔루션 중 어느 것도 기본 Linux 시스템만큼 좋은 것은 없습니다.

다음을 사용하여 조사 할 수 있습니다 버추얼 박스를 선택의 배포판과 리눅스 VM을 만들 수 있습니다. 호스트 OS와 폴더를 공유하도록 설정하면 진정한 Linux 개발 환경을 사용하고 Windows와 공유 할 수 있습니다. EOL 마커를 조심하세요.


또는 CoLinux : colinux.org
Guss

colinux는 64 비트 (아직)에서 작동하지 않습니다
hexicle

win-bash 프로젝트의 후계자를 아는 사람이 있습니까? 더 이상 활발하게 개발되지 않고 bash v 1.14에 고정되어 있습니다 (이 게시물 현재 bash는 v 4.4 임)
Bjartr

@Bjartr 마이크로 소프트 사람들은 수 있도록 기능을 추가 한 윈도우 7에서 실행 배쉬의 기본 버전
스펜서 Rathbun

@SpencerRathbun Windows 10에서만 실행됩니다. 저는 Windows 7에 있습니다. 또한 Linux와 Windows 실행 파일 및 경로를 혼합하여 어떻게 작동하는지 확신 할 수 없으므로 cygwin bash보다 (내 관점에서) 더 좋지 않을 수도 있습니다. .
Bjartr

11

최선의 선택? Windows 10. 기본 Bash 지원!


2
아니요, 최선의 선택은 아닙니다. bash IN 창이 아니라 Linux를 그런 식으로 실행하면됩니다. 해당 bash에서 Windows 실행 파일을 실행할 수 없습니다 cbwin.
ankostis

'최고'옵션은 아마도 취향의 문제 일 것입니다. 그래서 아마도 당신이 옳습니다. 그러나 내 Windows PC에서 (대부분의) bash 스크립트를 실행할 수 있습니다.
Paul0515

1
호스트 OS (Windows)와 상호 작용하지 않는 한 가상의 모든 bash 스크립트를 실행할 수 있습니다. WSL bash는 원래 ELF 바이너리 (예 : Ubuntu)를 실행할 수 있는 경량 가상화 하위 시스템 이지만 이스케이프 할 수는 없습니다!
ankostis

10

Windows에서 항상 Cygwin 을 설치 하여 Unix 셸을 실행할 수 있습니다 . 저는 Window XP에서 Cygwin을 광범위하게 사용했습니다.


Cygwin에서 UNIX Shell을 실행하려면 어떤 패키지를 설치해야합니까?
Tower

@rFactor Cygwin 페이지에는 필요한 모든 구성 요소가 포함 된 Windows 설치 프로그램이 포함되어 있습니다.
Spencer Rathbun 2011-06-20

Cygwin 사이트는 포팅 된 내용과 설치 방법을 설명합니다. 셸만 있으면 기본 Cygwin 설치로 충분합니다.
Michael Shopsin

9

git-extentions ( https://code.google.com/p/gitextensions/ )를 설치 한 후 명령 프롬프트에서 .sh 파일을 실행할 수 있습니다. (./script.sh가 필요하지 않습니다. bat / cmd 파일처럼 실행하십시오.) 또는 MinGW Git bash 쉘을 사용하여 "전체"bash 환경에서 실행할 수 있습니다.

나는 Cygwin의 열렬한 팬이 아니기 때문에 (예, 정말 강력하다고 확신합니다), 나를 위해 완벽하게 설치하지 않고도 Windows에서 bash 스크립트를 실행합니다.


1
나는 git-extensions가 무엇인지 모르지만 설명에 따르면 git의 그래픽 사용자 인터페이스라고 나와 있습니다. 이 도구에서 쉘 스크립트를 어떻게 실행 하시겠습니까? 아마도 포함 된 msys bash로 실행하려고할까요?
비참한 변수

확인하기 위해-git-extensions에는 bash 사본이 포함되어 있으며 경로에 설정됩니다. 나는 bashpowershell 인스턴스에서 시도하고 실패하고 git-extensions를 설치하고 재 시도했으며 나를 위해 일했습니다.
rtpHarry

4

기본적으로 실행하려면 Cygwin을 사용해야 할 것입니다 (Windows를 사용할 때 없이는 살 수 없습니다). 그래서 방망이에서 즉시, Cygwin에 +1. 다른 것은 문명화되지 않을 것입니다.

그러나 최근에 나는 유틸리티 조합을 사용하여 Bash 스크립트를 Windows로 쉽게 포팅하기 시작했습니다. 따라서 안티 리눅스 동료들이 GNU 유틸리티로 더 잘 처리되는 복잡한 작업을 쉽게 실행할 수 있습니다.

일반적으로 한 창에서 원본 스크립트를 열고 다른 창에서 배치 파일을 작성하여 매우 짧은 시간에 Bash 스크립트를 Batch로 이식 할 수 있습니다. 내가 사용하는 도구는 다음과 같습니다.

나는 GnuWin32보다 UnxUtils를 선호하는데, 그 이유는 [내가 틀렸다면 누군가 나를 고쳐주세요] GnuWin 유틸리티는 일반적으로 설치되어야하는 반면, UnxUtils는 바로 작동하는 독립 실행 형 바이너리이기 때문입니다.

그러나 CoreUtils에는 Windows (curl.haxx.se/download.html)에서도 사용할 수있는 cURL과 같은 친숙한 * NIX 유틸리티가 포함되어 있지 않습니다.

프로젝트 용 폴더를 만들고 항상 SET PATH =. .bat 파일에서 기본 CMD 셸 명령 이외의 다른 명령이 참조되지 않도록합니다 (또한 Batch 스크립트가 예상대로 작동하기 위해 프로젝트 폴더에 필요한 특정 UnxUtils).

그런 다음 필요한 CoreUtils .exe 파일을 프로젝트 폴더에 복사하고 ". \ curl.exe -s google.com"등과 같은 .bat 파일에서 참조합니다.

Bat2Exe 프로그램은 마법이 일어나는 곳입니다. 배치 파일이 완료되고 성공적으로 테스트되면 Bat2Exe.exe를 시작하고 프로젝트 폴더의 경로를 지정합니다. 그런 다음 Bat2Exe는 해당 특정 폴더의 모든 파일을 포함하는 Windows 바이너리를 만들고 기본 실행 파일로 사용하기 위해 발견되는 첫 번째 .bat를 사용합니다. 생성되는 최종 .exe 파일의 아이콘으로 사용할 .ico 파일을 포함 할 수도 있습니다.

이러한 유형의 프로그램 중 몇 가지를 시도해 보았고 생성 된 바이너리 중 상당수가 맬웨어로 플래그 지정되었지만 내가 참조한 Bat2Exe 버전은 완벽하게 작동하고 생성 된 .exe 파일이 완전히 깨끗하게 검사됩니다.

결과 실행 파일은 일반적으로 사용할 많은 도구의 기능을 활용할 수 있다는 점을 제외하고는 일반 배치 파일과 마찬가지로 두 번 클릭하여 대화 형으로 실행하거나 매개 변수 등을 사용하여 명령 줄에서 실행할 수 있습니다. Bash에서.

이 작업이 상당히 길어지고 있다는 것을 알고 있지만, 조금 벗어나면 동료가 휴대용 Cygwin 설치가 포함 된 네트워크 공유에서 시작할 수 있도록 PortaBashy라고하는 Batch 스크립트도 작성했습니다. 그런 다음 % PATH % 변수를 일반 * NIX 형식 (/ usr / bin : / usr / sbin : / bin : / sbin) 등으로 설정하고 Bash 쉘 자체로 시작하거나 더 강력하고 예쁜 MinTTY 터미널 에뮬레이터.

당신이하려는 일을 성취하는 방법은 항상 많습니다. 이는 작업에 적합한 도구를 결합하는 문제 일 뿐이며 여러 번 개인 취향에 따라 결정됩니다.


1

이를 수행 할 수있는 이론적 가능성이 하나 더 있습니다. Windows의 전문가 버전에는 POSIX 지원이 내장되어 있으므로 bash는 Windows 용으로 기본적으로 컴파일 될 수 있습니다.

안타깝지만 아직 컴파일 된 것을 찾지 못했습니다 ...


3
Windows의 POSIX sybsystem이 중단되었습니다 [1]. 수정되지 않은 Ubuntu-bash를 실행하기 위해 "Drawbridge"경량 가상화 시스템을 기반으로하는 "Linux 용 Windows 하위 시스템"으로 대체됩니다. 그러나 약간의 뉘앙스가 있습니다. 예를 들어이 시스템 내부에서는 더 이상 Windows 실행 파일을 호출 할 수 없습니다! [1] blogs.msdn.microsoft.com/wsl/2016/04/22/…
ankostis

@ankostis, 사실, CU를 사용하면 ...
Paul0515
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.