WSL 개요
1.1. WSL(Windows Subsystem for Linux)이란?
1.2. WSL 1 vs WSL 2 비교
1.3. WSL을 사용하는 이유
WSL 설치 준비
2.1. Windows 버전 확인
2.2. 필수 조건 (가상화, Microsoft Store)
WSL 설치 및 설정
3.1. Windows 기능 활성화 (WSL, 가상 머신 플랫폼)
3.2. WSL 버전 확인 및 변경
3.3. 배포판 설치(Ubuntu 예시)
WSL에서 리눅스 환경 기본 이해
4.1. WSL 파일시스템 구조
4.2. WSL 셸(Shell)과 Windows 터미널
4.3. Windows 디렉터리(\mnt\c) 접근
패키지 업데이트 및 필수 유틸 설치
5.1. 패키지 업데이트 (sudo apt update && sudo apt upgrade)
5.2. 기본 개발 툴 설치 (빌드 도구, curl, wget, git 등)
5.3. GUI(WSLg) 사용 개요
리눅스 기본 명령어
6.1. 디렉터리 이동(cd, ls, pwd, mkdir, rm 등)
6.2. 파일 조회(cat, less, more, grep, head, tail)
6.3. 권한(chmod, chown)과 소유권 개념
6.4. 프로세스 관리(ps, top, kill)
편집기와 개발 환경
7.1. CLI 편집기 (vim, nano)
7.2. VSCode + WSL Remote 확장 사용
7.3. Git 사용과 Windows-WSL 충돌 주의사항
네트워크 및 포트 접근
8.1. WSL 1 vs WSL 2의 네트워크 구조 차이
8.2. localhost 포트 포워딩
8.3. SSH, 원격 서버 접속
파일 시스템 및 백업
9.1. WSL 내부 파일시스템(.vhdx)
9.2. Windows 폴더 접근(/mnt/c) 시 권한 이슈
9.3. WSL 배포판 백업/복원 (wsl --export / --import)
서비스/데몬과 systemd 사용
10.1. WSL에서 systemd 활성화(WSL 2, Windows 11 이후)
10.2. cron, sshd 등 백그라운드 서비스 실행 주의사항
10.3. Windows 재부팅 시 WSL 자동 실행 문제
셸 스크립트와 자동화
11.1. 스크립트 작성(#! /bin/bash, chmod +x)
11.2. 파이프와 리다이렉션(>, >>, 2>, |)
11.3. cron, Windows Task Scheduler 연동
도커(Docker) 등 가상화/컨테이너 (선택 학습)
12.1. Docker Desktop for Windows + WSL 2 백엔드
12.2. docker, docker-compose 기본 사용 예시
12.3. Hyper-V, VirtualBox와의 충돌 문제
보안 기초
13.1. WSL과 Windows 방화벽
13.2. SSH 보안(포트 변경, 키 인증 등)
13.3. 계정 및 비밀번호 관리
로그와 모니터링
14.1. /var/log 및 journalctl
14.2. top, htop, free, df, du 등 리소스 확인
14.3. WSL 동작 중지 시 로그, 메모리 사용 이슈
WSL 활용 사례
15.1. 개발 환경(웹 서버, DB) 구성
15.2. Windows-WSL 간 파일 공유 및 협업
15.3. Git, Docker Hub, CI/CD 연동
문제 해결 & 커뮤니티
16.1. WSL 버전 전환 문제(WSL 1 ↔ WSL 2)
16.2. 권한, 줄바꿈(CRLF) 문제 해결
16.3. 공식 문서, GitHub 이슈, 포럼 활용
배포판 업그레이드 및 제거
17.1. 우분투: do-release-upgrade
17.2. WSL 재설치(wsl --unregister)
17.3. 다른 배포판 추가 설치(여러 개 병행)
마무리 및 학습 확장
18.1. WSL 업데이트(wsl --update)
18.2. 리눅스 고급 학습(서버, 클라우드, DevOps)
18.3. Windows와 리눅스 하이브리드 환경 전략
부록
19.1. 유용한 명령어 단축키
19.2. 환경 변수 설정(~/.bashrc, ~/.profile 등)
19.3. 각종 참고 링크 및 공식 문서