SH 파일은 리눅스용 bash 스크립팅 언어로 작성된 셸 스크립트 파일입니다. 이 파일에는 명령줄에서 일반적으로 실행할 수 있는 명령어들이 담겨 있으며, 터미널에서 호출하여 실행하거나 더블클릭으로 열 수 있습니다. 하지만 Windows는 SH 파일이 무엇인지, 어떻게 실행해야 하는지 인식하지 못합니다. Windows에서 SH 파일을 실행하는 방법을 찾고 계신다면, 이 글에서 가능한 모든 방법을 소개해 드리겠습니다.

SH 파일이란 무엇인가?
SH 파일(스크립트 파일이라고도 함)은 Bash 응용 프로그램이 사용하는 스크립트입니다. 이 파일의 명령어는 Bash 언어로 작성되며, 주로 프로그램 개발자들이 사용합니다. 프로그램을 실행하기 위한 명령어들이 포함되어 있기 때문에 매우 중요한 파일입니다. 다만 이러한 파일은 기본적으로 리눅스 환경을 위한 것이므로, Windows에서 실행하려면 별도의 소프트웨어나 환경이 필요합니다. 이 글에서 소개하는 방법들을 통해 그 환경을 구축할 수 있습니다.
SH 파일에 대한 자세한 정보가 필요하시다면 관련 문서를 참고하시기 바랍니다. 그럼 지금부터 Windows에서 SH 파일을 실행하는 방법을 알아보겠습니다.
방법 1: Cygwin을 사용하여 SH 파일 실행하기
Cygwin은 Unix와 유사한 오픈소스 명령줄 인터페이스 환경입니다. Unix 또는 Linux 응용 프로그램을 리눅스와 유사한 인터페이스 내에서 Windows 운영체제에 컴파일하고 실행할 수 있게 해줍니다. Cygwin을 사용하면 SH 파일을 아무 문제 없이 손쉽게 실행할 수 있습니다.
- 공식 Cygwin 사이트로 이동하여 32비트 또는 64비트 설치 파일을 다운로드합니다: Cygwin

- 다운로드한 설치 파일을 열고 Cygwin 다운로드 및 설치 과정을 진행합니다. 설치 과정에서 여러 옵션이 제공되므로 원하는 항목을 선택하면 됩니다.
- 설치가 완료되면 바탕화면의 바로 가기를 더블클릭하여 Cygwin64 Terminal을 엽니다.
- 다음 명령어를 사용하여 파일이 있는 디렉터리로 이동합니다:
cd C:Users/Username/Desktop
이제 데스크톱으로 디렉터리가 변경됩니다. 다음 명령어를 입력하여 SH 파일을 실행합니다:
sh appuals.sh

방법 2: Windows 10의 Linux용 Windows 하위 시스템(WSL) 사용하기
Linux용 Windows 하위 시스템(WSL)은 Windows 10 운영체제가 설치된 컴퓨터에서 Linux 명령줄을 실행할 수 있게 해주는 기능입니다. 이 기능은 2016년 Windows 10에 처음 추가되었습니다. 리눅스에서 Wine이라는 소프트웨어로 Windows 프로그램을 실행할 수 있는 것처럼, 이제 Windows에는 리눅스 소프트웨어를 실행하기 위한 WSL이 있습니다. 다만 이 기능을 활성화하고 사용하려면 여러 단계가 필요하기 때문에, 세 가지 주요 단계로 나누어 설명하겠습니다.
1단계: Linux용 Windows 하위 시스템 활성화
- Windows 키를 누른 상태에서 R을 눌러 실행(Run) 창을 연 후, appwiz.cpl을 입력하고 Enter를 누릅니다.

- 왼쪽 메뉴에서 Windows 기능 켜기/끄기를 클릭합니다.

- 목록 맨 아래로 스크롤하여 Linux용 Windows 하위 시스템에 체크하고 확인을 눌러 설치합니다.

- 완료되면 다음 단계로 넘어갑니다.
2단계: Windows용 Linux 배포판 설치
Windows에 Linux 배포판을 설치하는 방법은 세 가지가 있습니다. 특정 사용자에게 한 가지 방법이 작동하지 않는 경우가 있으므로, 아래에 세 가지 방법을 모두 소개합니다:
- Windows 키를 누른 상태에서 R을 눌러 실행(Run) 창을 열고, 따옴표 없이 'ms-windows-store:'를 입력한 후 Enter를 누릅니다.

- Ubuntu를 검색하고, 아래에 표시된 항목을 클릭하여 다운로드합니다:

- 두 번째 방법은 다음 PowerShell 명령어를 사용하여 Linux 배포판을 다운로드하는 것입니다:
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing

- 세 번째 방법은 다음 curl 명령어를 사용하여 배포판을 다운로드하는 것입니다:
curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604

참고: Windows 10 빌드 번호가 1706 미만이라면 curl을 수동으로 다운로드하고 curl.exe가 있는 위치로 디렉터리를 변경해야 합니다. 반면 빌드 번호가 1706 이상이라면 curl이 기본 포함되어 있으며, 관리자 권한으로 cmd를 실행해야 합니다.
- 배포판을 다운로드하면 설치가 자동으로 시작되며, 동의하고 새 사용자 이름과 비밀번호를 입력하기만 하면 됩니다:

3단계: 새로 설치한 배포판 초기화 및 SH 파일 실행
- 대부분의 배포판은 처음 설치 시 비어 있거나 최소화된 패키지 목록을 가지고 있습니다. 따라서 다음 명령어로 패키지를 업데이트하고 업그레이드해야 합니다:
sudo apt update && sudo apt upgrade

- 배포판 설정이 끝나면 다음 명령어를 사용하여 SH 파일 위치로 디렉터리를 변경할 수 있습니다:
cd /mnt
이 명령은 Windows 드라이브를 마운트합니다. 이제 원하는 위치로 이동할 수 있습니다:
cd c/Users/Username/Desktop/
참고: 예시 파일이 바탕화면에 있었기 때문에 디렉터리를 바탕화면으로 변경했습니다.
- 다음 명령어를 입력하여 SH 파일을 실행합니다:
sh appuals.sh

방법 3: Git 명령줄을 사용하여 SH 파일 실행하기
Git은 모든 운영체제에서 사용할 수 있는 무료 오픈소스 분산 버전 관리 시스템 도구입니다. 기본적으로 Git은 Linux와 macOS 컴퓨터에 명령줄 옵션으로 설치되어 있으며, Windows에서도 공식 사이트에서 다운로드할 수 있습니다.
- 다음 링크로 이동하여 사용 중인 운영체제에 맞는 Git을 다운로드합니다: Git

- 다운로드한 설치 파일을 열어 Git을 설치합니다. 설치 과정을 진행하면서 필요한 옵션과 불필요한 옵션을 확인하세요.
- Windows 키를 누른 상태에서 S를 눌러 검색 기능을 열고, Git Bash를 입력한 후 Enter를 누릅니다.

- 다음 명령어로 파일이 있는 디렉터리로 이동합니다:
cd desktop
참고: 'desktop'은 파일이 있는 폴더의 이름으로 대체할 수 있습니다.
- 이제 SH 실행 명령어를 입력합니다:
sh appuals.sh

방법 4: 스크립트 파일을 배치 파일로 변환하기
이 방법은 일반 사용자에게는 권장되지 않으며, 스크립트 파일과 배치(.bat) 파일 명령어를 잘 아는 사용자를 위한 것입니다. SH 파일의 형식과 확장자만 변경하면 되지만, 스크립트 파일을 배치 파일로 변환하는 기술이 필요하므로 두 파일의 형식을 정확히 알지 못한다면 이 방법은 피하는 것이 좋습니다. 아래에서 샘플 코드 변경에 필요한 간단한 단계를 보여드리겠습니다.
- SH 파일을 마우스 오른쪽 버튼으로 클릭하고 연결 프로그램 > 메모장을 선택합니다.

- 아래와 같이 코드에서 shebang 줄을 제거합니다:

참고: 주석은 이 샘플과 달리 '::'라는 다른 문법을 사용합니다.
- 파일을 클릭하고 목록에서 저장을 선택하여 변경 사항을 저장합니다.

- SH 파일을 마우스 왼쪽 버튼으로 클릭한 상태에서 F2 키를 눌러 파일 이름을 변경합니다. 파일을 오른쪽 버튼으로 클릭하고 이름 바꾸기를 선택해도 됩니다.

확장자를 .sh에서 .bat으로 변경하고 변경 사항에 대해 예를 클릭합니다.
- Windows 키를 누른 상태에서 S를 눌러 검색 기능을 열고, cmd를 입력한 후 Enter를 누릅니다.
- cd 명령어를 사용하여 파일이 있는 경로로 디렉터리를 변경합니다:
cd desktop
참고: 'desktop'은 접근하려는 폴더 이름으로 대체할 수 있습니다.
- 이제 확장자를 포함한 파일 이름을 입력하기만 하면 됩니다:
appuals.bat

다만 스크립트 파일에서 작동하던 문법이 배치 파일에서는 작동하지 않는다는 점에 유의하세요. 위 예시에서 볼 수 있듯이, 주석이 무시되고 echo 'on/off' 없이는 텍스트가 두 번 출력됩니다.