기타
WSL(Windows Subsystem for Linux)
ipxy
2025. 3. 20. 13:36
728x90
WSL(Windows Subsystem for Linux)은 Windows 환경에서 리눅스를 실행할 수 있도록 지원하는 기능입니다. WSL을 사용하면 가상 머신(VM)이나 듀얼 부팅 없이 Windows에서 네이티브 리눅스 커널을 활용할 수 있습니다.
WSL의 주요 특징
- 리눅스 커널 지원: WSL2에서는 실제 리눅스 커널을 실행하여 성능과 호환성이 향상됨.
- 빠른 실행: VM과 달리 가벼운 환경에서 리눅스 애플리케이션을 실행 가능.
- 윈도우와 리눅스의 통합: Windows 파일 시스템(C:)과 리눅스 파일 시스템(/home)을 서로 접근 가능.
- Docker, Kubernetes 사용 가능: WSL2에서는 Docker 및 Kubernetes 실행이 원활함.
- 다양한 배포판 지원: 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 활용 사례
- 개발 환경 구축: Node.js, Python, Golang, Java 개발 가능
- Docker 실행: Windows 환경에서 Docker Desktop 없이 리눅스 컨테이너 실행 가능
- Git 및 CI/CD 활용: 리눅스 기반의 GitLab Runner, Jenkins 등을 실행할 수 있음.
- 클러스터 및 MSA 운영: Minikube, k3s, ArgoCD 등 실행 가능.
💡 WSL vs WSL2 차이점
항목 WSL1 WSL2
실행 방식 | Windows 커널과 직접 통합 | 가상화된 실제 Linux 커널 사용 |
성능 | NTFS 파일 시스템에서 빠름 | 리눅스 네이티브 환경에서 더 빠름 |
호환성 | 일부 시스템 호출 미지원 | 전체 리눅스 시스템 호출 지원 |
Docker 지원 | 제한적 | 완전 지원 |
추가 설정
- WSL에서 systemd 활성화
- /etc/wsl.conf 파일을 생성하고 다음 내용 추가:
[boot] systemd=true
- WSL을 재시작:
wsl --shutdown
- Windows Terminal과 통합
- Windows Terminal을 설치하면 WSL과 쉽게 연동 가능.
728x90