티스토리 뷰

기타

WSL(Windows Subsystem for Linux)

ipxy 2025. 3. 20. 13:36
728x90

WSL(Windows Subsystem for Linux)은 Windows 환경에서 리눅스를 실행할 수 있도록 지원하는 기능입니다. WSL을 사용하면 가상 머신(VM)이나 듀얼 부팅 없이 Windows에서 네이티브 리눅스 커널을 활용할 수 있습니다.

WSL의 주요 특징

  1. 리눅스 커널 지원: WSL2에서는 실제 리눅스 커널을 실행하여 성능과 호환성이 향상됨.
  2. 빠른 실행: VM과 달리 가벼운 환경에서 리눅스 애플리케이션을 실행 가능.
  3. 윈도우와 리눅스의 통합: Windows 파일 시스템(C:)과 리눅스 파일 시스템(/home)을 서로 접근 가능.
  4. Docker, Kubernetes 사용 가능: WSL2에서는 Docker 및 Kubernetes 실행이 원활함.
  5. 다양한 배포판 지원: Ubuntu, Debian, Fedora, Kali Linux 등 다양한 배포판을 설치 가능.

WSL 상세 명령어 정리

WSL(Windows Subsystem for Linux)에서 자주 사용하는 명령어들을 카테고리별로 정리했습니다.


1. WSL 설치 및 초기 설정 명령어

WSL 활성화 및 설치

wsl --install
  • 기본적으로 Ubuntu가 설치됨.
  • 처음 WSL을 활성화하는 경우 사용.
wsl --install -d <배포판이름>
  • 특정 배포판을 설치하려면 위 명령어를 사용.
  • 예: wsl --install -d Debian
wsl --update
  • WSL을 최신 버전으로 업데이트.

2. WSL 버전 및 배포판 관리

설치된 WSL 배포판 목록 및 버전 확인

wsl -l -v
  • 설치된 모든 WSL 배포판과 해당 버전을 확인.

기본 WSL 배포판 설정

wsl -s <배포판이름>
  • 특정 배포판을 기본으로 설정.
  • 예: wsl -s Ubuntu

WSL1 ↔ WSL2 변경

wsl --set-version <배포판이름> <버전>
  • 예: wsl --set-version Ubuntu 2 (Ubuntu를 WSL2로 변경)

기본 WSL 버전 설정

wsl --set-default-version 2
  • 이후 설치되는 모든 배포판이 WSL2로 설정됨.

배포판 삭제

wsl --unregister <배포판이름>
  • 특정 배포판을 삭제.
  • 예: wsl --unregister Ubuntu

3. WSL 실행 및 종료 명령어

WSL 실행

wsl
  • 기본 배포판을 실행.
wsl -d <배포판이름>
  • 특정 배포판 실행.
  • 예: wsl -d Debian
wsl ~
  • 기본 배포판의 홈 디렉토리에서 실행.

WSL 종료

wsl --shutdown
  • 모든 WSL 인스턴스를 종료.
wsl --terminate <배포판이름>
  • 특정 배포판만 종료.

4. Windows와 Linux 파일 시스템 연동

Windows 경로에서 WSL 열기

wsl ~
  • 기본 WSL 배포판에서 홈 디렉토리를 열기.
wsl -e bash
  • bash 쉘을 실행.

WSL에서 Windows 파일 접근

cd /mnt/c
  • Windows의 C:\ 드라이브에 접근.
  • 예: cd /mnt/c/Users/사용자이름/Documents

Windows에서 WSL 파일 접근

  • WSL 파일 경로: \\wsl$
  • Windows 탐색기에서 \\wsl$\Ubuntu\home\사용자이름 입력.

5. 네트워크 및 포트 포워딩

WSL에서 Windows의 포트 확인

netstat -an
  • 실행 중인 포트 목록 확인.

WSL에서 특정 포트 열기

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
  • 8080 포트 오픈.

Windows 방화벽에서 WSL 허용

New-NetFirewallRule -DisplayName "WSL Allow" -Direction Inbound -Action Allow -EdgeTraversalPolicy Allow -Protocol TCP -LocalPort 8080
  • Windows 방화벽에서 8080 포트 허용.

6. WSL에서 Docker 실행 (WSL2 필수)

Docker 설치

sudo apt update
sudo apt install docker.io -y
  • Docker 설치.

Docker 서비스 실행

sudo service docker start
  • Docker 실행.

Docker 컨테이너 실행

docker run -d -p 80:80 nginx
  • Nginx 컨테이너 실행.

7. WSL 설정 파일 변경 (/etc/wsl.conf)

[boot]
systemd=true
  • WSL에서 systemd 활성화.
  • 적용하려면 wsl --shutdown 실행 후 재시작.

8. WSL 로그 및 디버깅

WSL 로그 확인

wsl --status
  • WSL의 현재 상태 확인.
wsl -l -v
  • 설치된 배포판과 버전 확인.
Get-EventLog -LogName Application | Where-Object {$_.Source -like "LxssManager"} | Format-Table -AutoSize
  • WSL 관련 이벤트 로그 확인.

9. Windows에서 WSL 명령 실행

wsl -e ls -la
  • WSL에서 ls -la 실행.
wsl -d Ubuntu -e echo "Hello from Ubuntu"
  • Ubuntu 배포판에서 echo 실행.

10. WSL 초기화 및 재설정

wsl --unregister <배포판이름>
  • 특정 배포판 제거.
wsl --shutdown
  • WSL을 완전히 종료.

정리

 

명령어  설명
wsl --install WSL 설치
wsl --set-version <배포판> 2 WSL2로 변환
wsl --list -v 설치된 WSL 배포판 목록 확인
wsl --set-default-version 2 기본 WSL 버전 설정
wsl -d <배포판> 특정 배포판 실행
wsl --terminate <배포판> 특정 배포판 종료
wsl --shutdown 모든 WSL 종료
wsl --unregister <배포판> 특정 배포판 삭제
cd /mnt/c Windows 파일 시스템 접근
\\wsl$ Windows 탐색기에서 WSL 파일 접근
sudo apt install docker.io -y WSL에서 Docker 설치
sudo service docker start Docker 실행

 


WSL 활용 사례

  1. 개발 환경 구축: Node.js, Python, Golang, Java 개발 가능
  2. Docker 실행: Windows 환경에서 Docker Desktop 없이 리눅스 컨테이너 실행 가능
  3. Git 및 CI/CD 활용: 리눅스 기반의 GitLab Runner, Jenkins 등을 실행할 수 있음.
  4. 클러스터 및 MSA 운영: Minikube, k3s, ArgoCD 등 실행 가능.

💡 WSL vs WSL2 차이점

항목 WSL1 WSL2

실행 방식 Windows 커널과 직접 통합 가상화된 실제 Linux 커널 사용
성능 NTFS 파일 시스템에서 빠름 리눅스 네이티브 환경에서 더 빠름
호환성 일부 시스템 호출 미지원 전체 리눅스 시스템 호출 지원
Docker 지원 제한적 완전 지원

추가 설정

  1. WSL에서 systemd 활성화
    • /etc/wsl.conf 파일을 생성하고 다음 내용 추가:
    [boot]
    systemd=true
    
    • WSL을 재시작:
    wsl --shutdown
    
  2. Windows Terminal과 통합
    • Windows Terminal을 설치하면 WSL과 쉽게 연동 가능.

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함