콘텐츠로 이동

02 - 리눅스 설치부터 터미널 꾸미기까지: 나만의 개발 환경 만들기

코딩을 좋아하는 여러분, 환영합니다! 이 문서에서는 리눅스를 설치하고, 나만의 멋진 개발 환경을 세팅하는 전 과정을 함께 알아보겠습니다. 막히는 부분이 있으면 언제든 질문하세요!


목차

  1. 리눅스 시작하는 3가지 방법
  2. 초기 설정 (설치 직후 필수)
  3. 쉘 커스텀: bash → zsh
  4. 터미널 에뮬레이터
  5. 폰트 설치
  6. 한글 설정
  7. 터미널 색상 테마
  8. 추천 .zshrc 설정
  9. dotfiles 관리 개념
  10. 실습 미션

1. 리눅스 시작하는 3가지 방법

리눅스를 사용하는 방법은 크게 세 가지가 있습니다. 초보자 분들은 추천 순서대로 시도해 보세요.

추천 순서

WSL2 (가장 쉬움)
  → VirtualBox/UTM VM (안전하게 실습)
    → 듀얼부팅 (본격적으로 사용)

1-1. WSL2 (Windows 사용자 추천!)

WSL2는 Windows 안에서 리눅스를 돌릴 수 있는 기능입니다. Windows를 지우지 않고, 가장 쉽게 리눅스를 경험할 수 있어요.

설치 방법

  1. Windows Terminal을 관리자 권한으로 엽니다.
  2. 시작 메뉴에서 "terminal" 검색 → 우클릭 → "관리자 권한으로 실행"

  3. 다음 명령어를 입력합니다:

wsl --install

참고: Windows 10(버전 2004 이상) 또는 Windows 11에서 사용할 수 있습니다. Windows 업데이트를 먼저 진행하세요.

  1. 설치가 완료되면 재부팅합니다.

  2. 재부팅 후 자동으로 Ubuntu 설치가 시작됩니다.

  3. UNIX 사용자 이름을 입력하세요 (예: codingstudent)
  4. 비밀번호를 두 번 입력하세요 (화면에 아무것도 안 보이는 게 정상!)
Enter new UNIX username: codingstudent
New password: ********
Retype new password: ********

문제 해결: "wsl --install"이 안 되면, 제어판 → 프로그램 → Windows 기능 켜기/끄기 → "Linux용 Windows 하위 시스템"과 "가상 머신 플랫폼"을 체크하고 재부팅하세요.

Ubuntu 배포판 선택

여러 배포판 중 Ubuntu를 추천합니다:

# 사용 가능한 배포판 목록 보기
wsl --list --online

# Ubuntu 설치 (기본값)
wsl --install -d Ubuntu

# 또는 특정 버전 설치
wsl --install -d Ubuntu-24.04

Windows Terminal 연동

Windows Terminal은 WSL2와 환상의 콤보입니다!

  1. Microsoft Store에서 Windows Terminal 설치
  2. 자동으로 Ubuntu 탭이 생성됩니다
  3. 설정(Ctrl+,)에서 Ubuntu를 기본 프로필로 지정
설정 → 시작업 → 기본 프로필 → Ubuntu

Windows와 파일 공유

WSL2는 Windows와 파일을 쉽게 공유할 수 있습니다.

# WSL 안에서 Windows 파일 접근
ls /mnt/c/Users/내사용자이름/Desktop

# Windows 탐색기에서 WSL 파일 접근
# 주소창에 입력:
\\wsl$\Ubuntu
# WSL 안에서 Windows 탐색기 열기
explorer.exe .

: 코드는 WSL 파일 시스템(~/) 안에 두는 것이 속도가 훨씬 빠릅니다. /mnt/c/ 아래에 프로젝트를 두면 느려요!


1-2. VirtualBox / UTM 가상머신

가상머신은 "컴퓨터 안의 컴퓨터"입니다. 실제 컴퓨터에 영향을 주지 않아서 마음 놓고 연습할 수 있어요.

VirtualBox (Windows, Linux, Intel Mac)

  1. VirtualBox 다운로드
  2. https://www.virtualbox.org/wiki/Downloads 에서 다운로드 후 설치

  3. Ubuntu ISO 다운로드

  4. https://ubuntu.com/download/desktop 에서 ISO 파일 다운로드
  5. LTS 버전(장기 지원)을 선택하세요 (예: Ubuntu 24.04 LTS)

  6. 가상머신 만들기

VirtualBox 실행 → 새로 만들기

이름: Ubuntu-Dev
종류: Linux
버전: Ubuntu (64-bit)

메모리: 최소 4096MB (8192MB 권장)
디스크: 최소 25GB (동적 할당)

설정 → 시스템 → 프로세서: 2개 이상
설정 → 디스플레이 → 비디오 메모리: 128MB
설정 → 저장소 → 광학 드라이브 → Ubuntu ISO 파일 선택
  1. 설치 후 ISO 파일을 제거하고 재부팅

UTM (Apple Silicon Mac: M1/M2/M3/M4)

Apple Silicon Mac은 VirtualBox 대신 UTM을 사용합니다.

1. https://mac.getutm.app/ 에서 UTM 다운로드
2. Ubuntu ARM 버전 ISO 다운로드
   (https://ubuntu.com/download/server/arm - Desktop도 가능)
3. UTM에서 새 가상머신 생성 → Virtualize → Linux → ISO 선택

스냅샷 기능 (매우 중요!)

스냅샷은 현재 상태를 "저장"하는 기능입니다. 뭔가 망가져도 스냅샷으로 되돌릴 수 있어요.

VirtualBox 메뉴:
  머신 → 도구 → 스냅샷 → 찍기

  또는

  현재 상태 → 우클릭 → 스냅샷 찍기
  이름: "초기 설치 완료"
  설명: "기본 패키지 설치 후 상태"

중요: 큰 변경 작업 전에 항상 스냅샷을 찍으세요! "무언가 망가졌다" 싶으면 스냅샷으로 복원하면 됩니다.


1-3. 듀얼부팅

듀얼부팅은 컴퓨터를 켤 때 Windows와 Linux 중 선택할 수 있게 하는 방법입니다. 가장 성능이 좋지만, 초보자는 마지막에 시도하세요.

USB 부팅 디스크 만들기

Windows에서 (Rufus 사용):

1. https://rufus.ie/ 에서 Rufus 다운로드
2. USB 드라이브 연결 (8GB 이상 - 내용 전부 삭제됨!)
3. Rufus 실행:
   - 장치: USB 드라이브 선택
   - 부트 선택: 디스크 또는 ISO 이미지 → Ubuntu ISO 선택
   - 파티션 방식: GPT (UEFI) 또는 MBR (Legacy BIOS)
     (내 PC가 어떤 방식인지 BIOS에서 확인)
   - 시작!

macOS에서 (balenaEtcher 사용):

1. https://etcher.balena.io/ 에서 balenaEtcher 다운로드
2. 실행 후:
   - Flash from file → Ubuntu ISO 선택
   - Select target → USB 드라이브 선택
   - Flash!

설치 과정

1. USB를 꽂고 컴퓨터 재부팅
2. BIOS/UEFI 진입 (보통 F2, F12, Del 키)
3. 부팅 순서에서 USB를 최우선으로 변경
4. "Install Ubuntu" 선택
5. 파티션 설정:
   - 방식 1 (쉬움): "Windows와 함께 설치" 자동 옵션
   - 방식 2 (수동):
     / (루트)    - 최소 30GB
     /home       - 나머지 공간
     swap        - RAM 크기와 동일 (최근에는 필요 없을 수도 있음)
     /boot/efi   - 512MB (EFI 파티션)

경고: 듀얼부팅 설치 전 반드시 중요 파일을 백업하세요! 파티션 작업 중 데이터가 날아갈 수 있습니다.

BitLocker 사용 중이라면: 반드시 복구 키를 백업하세요! Windows 복구 키는 Microsoft 계정에서 확인할 수 있습니다.


2. 초기 설정 (설치 직후 필수)

리눅스를 처음 설치했다면, 가장 먼저 할 일이 있습니다.

2-1. 시스템 업데이트

# 패키지 목록 업데이트 + 설치된 패키지 업그레이드
sudo apt update && sudo apt upgrade -y
# 개발에 필요한 기본 도구 설치
sudo apt install -y build-essential curl wget git

각 패키지가 뭘까요?

패키지 설명
build-essential C/C++ 컴파일러(gcc, g++, make) 모음
curl 웹에서 데이터 다운로드 도구
wget 파일 다운로드 도구
git 버전 관리 시스템

sudo가 뭔가요? 관리자 권한으로 명령을 실행한다는 뜻입니다. Windows의 "관리자 권한으로 실행"과 비슷해요. 비밀번호를 입력하라고 나오면 자신의 비밀번호를 입력하세요.

2-2. 시간대 설정

# 현재 시간대 확인
timedatectl

# 한국 시간대로 설정
sudo timedatectl set-timezone Asia/Seoul

# 확인
timedatectl
               Local time: 금 2025-03-14 15:30:00 KST
           Universal time: 금 2025-03-14 06:30:00 UTC
                 Time zone: Asia/Seoul (KST, +0900)

2-3. 호스트명 변경

호스트명은 컴퓨터의 이름입니다. 터미널 프롬프트에 표시됩니다.

# 현재 호스트명 확인
hostnamectl

# 호스트명 변경 (원하는 이름으로)
sudo hostnamectl set-hostname my-dev-pc

# 확인
hostname

2-4. 사용자 계정 관리

# 현재 사용자 확인
whoami

# 새 사용자 만들기
sudo adduser friend

# 사용자에게 관리자 권한 주기
sudo usermod -aG sudo friend

# 사용자 목록 보기
cat /etc/passwd | grep -E '/home'

# 비밀번호 변경
passwd

문제 해결: sudo 권한이 없다는 에러가 나오면, root 계정으로 로그인하여 usermod -aG sudo 사용자명을 실행하세요.


3. 쉘 커스텀: bash → zsh

쉘(Shell)은 우리가 입력하는 명령어를 운영체제가 이해할 수 있게 번역해 주는 프로그램입니다. 리눅스 기본 쉘은 bash인데, zsh로 바꾸면 훨씬 편리합니다.

3-1. zsh 설치

# zsh 설치
sudo apt install zsh -y

# 설치 확인
zsh --version

3-2. 기본 쉘을 zsh로 변경

# zsh 경로 확인
which zsh

# 기본 쉘 변경
chsh -s $(which zsh)

참고: 변경 사항은 다음 로그인부터 적용됩니다. WSL2에서는 터미널을 닫았다가 다시 열면 됩니다.

3-3. Oh My Zsh 설치

Oh My Zsh은 zsh를 쉽게 관리하고 꾸밀 수 있게 해주는 프레임워크입니다.

# Oh My Zsh 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

설치가 완료되면 터미널 모습이 달라집니다! 기본 테마인 robbyrussell이 적용됩니다.

문제 해결: 설치 중 "connection refused" 에러가 나오면 인터넷 연결을 확인하세요. 회사/학교 네트워크에서 차단될 수 있습니다.

3-4. 테마 변경

agnoster 테마 (깔끔하고 인기 있는 테마)

# ~/.zshrc 파일 열기
nano ~/.zshrc

# ZSH_THEME="robbyrussell" 을 찾아서 변경:
# (nano에서 Ctrl+W로 검색할 수 있습니다)
ZSH_THEME="agnoster"
# 변경사항 적용
source ~/.zshrc

agnoster 테마는 특수 문자를 사용하므로 폰트가 깨질 수 있습니다. 이건 뒤에서 Nerd Fonts를 설치하면 해결돼요!

Powerlevel10k 테마 (강력 추천!)

Powerlevel10k는 더 화려하고 빠른 테마입니다.

# Powerlevel10k 다운로드
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# ~/.zshrc에서 테마 변경
nano ~/.zshrc

# 이렇게 변경:
ZSH_THEME="powerlevel10k/powerlevel10k"
# 적용
source ~/.zshrc

처음 적용하면 설정 마법사가 실행됩니다. 화면의 안내에 따라 원하는 모양을 선택하세요. 나중에 다시 설정하고 싶으면:

p10k configure

3-5. 필수 플러그인

Oh My Zsh의 진짜 힘은 플러그인에 있습니다!

zsh-autosuggestions (이전 명령어 자동완성)

명령어를 치다 보면 회색 글씨로 이전에 쳤던 명령어가 제안됩니다. → 오른쪽 화살표 키(→)를 누르면 자동으로 완성!

# 플러그인 다운로드
git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

zsh-syntax-highlighting (명령어 문법 색상)

명령어가 올바르면 초록색, 틀리면 빨간색으로 표시됩니다.

# 플러그인 다운로드
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

z (자주 가는 디렉토리 단축 이동)

Oh My Zsh에 이미 내장되어 있습니다! 별도 설치 불필요.

# 사용 예시:
# 처음에는 전체 경로를 입력해 이동합니다
cd ~/Documents/my-project
cd ~/Downloads

# 나중에는 z 명령어로 빠르게 이동
z my-project    # ~/Documents/my-project 로 이동
z down          # ~/Downloads 로 이동

플러그인 활성화

모든 플러그인을 설치했다면 ~/.zshrc에서 활성화합니다.

nano ~/.zshrc

plugins=(git) 줄을 찾아서 다음과 같이 수정합니다:

plugins=(
  git
  z
  zsh-autosuggestions
  zsh-syntax-highlighting
)
# 적용
source ~/.zshrc

문제 해결: 플러그인이 안 되면 플러그인 이름의 철자를 확인하세요. 그리고 ~/.zshrc에서 plugins=() 안에 정확히 들어갔는지 확인!


4. 터미널 에뮬레이터

터미널 에뮬레이터는 터미널 화면을 보여주는 프로그램입니다. 운영체제마다 여러 선택지가 있습니다.

4-1. Windows: Windows Terminal

강력 추천! Windows 사용자라면 무조건 이것을 쓰세요.

설치

Microsoft Store → "Windows Terminal" 검색 → 설치

핵심 기능

기능 단축키
새 탭 Ctrl+Shift+T
탭 닫기 Ctrl+Shift+W
화면 가로분할 Alt+Shift+-
화면 세로분할 Alt+Shift++
설정 열기 Ctrl+,

설정 팁

settings.json을 직접 편집하면 더 세밀한 설정이 가능합니다:

// Ctrl+, → 왼쪽 아래 "JSON 파일 열기" 클릭
{
    "defaultProfile": "{Ubuntu의 GUID}",
    "startOnUserLogin": true,
    "profiles": {
        "defaults": {
            "font": {
                "face": "MesloLGS NF",
                "size": 13
            },
            "opacity": 90,
            "useAcrylic": true,
            "colorScheme": "Dracula"
        }
    }
}

4-2. macOS: iTerm2

macOS 사용자에게 추천하는 터미널 에뮬레이터입니다.

설치

1. https://iterm2.com/ 에서 다운로드
2. 압축 해제 후 응용프로그램 폴더로 이동
3. 실행

설정 팁

iTerm2 → Preferences (Cmd+,)

Profiles → Text → Font: MesloLGS NF
Profiles → Colors → Color Presets → Dracula
Profiles → Window → Transparency: 약간 투명하게

Keys → Key Mappings:
  Cmd+D: 세로 분할 (Split Vertically)
  Cmd+Shift+D: 가로 분할 (Split Horizontally)

4-3. Linux 데스크톱

이름 특징 설치 명령어
GNOME Terminal Ubuntu 기본 터미널 이미 설치되어 있음
Alacritty 매우 빠름 (GPU 사용) sudo apt install alacritty
Kitty 이미지 표시 지원 curl -L https://sw.kovidgoyal.net/kitty/installer.sh \| sh /dev/stdin

Alacritty 설정 파일

mkdir -p ~/.config/alacritty
nano ~/.config/alacritty/alacritty.toml
[window]
opacity = 0.9

[font]
size = 13.0

[font.normal]
family = "MesloLGS NF"
style = "Regular"

[colors.primary]
background = "#1e1e2e"
foreground = "#cdd6f4"

4-4. 터미널 에뮬레이터 비교표

특징 Windows Terminal iTerm2 Alacritty Kitty GNOME Terminal
플랫폼 Windows macOS 전부 전부 Linux
속도 보통 보통 매우 빠름 빠름 보통
탭 지원 O O X (tmux) O O
분할 화면 O O X (tmux) O O
이미지 표시 X X X O X
GPU 가속 X X O O X
설정 방식 JSON GUI TOML conf GUI
추천 대상 Windows 사용자 Mac 사용자 속도 중시 이미지 필요 Ubuntu 기본

tmux를 배우면 어떤 터미널에서든 화면 분할이 가능합니다! 나중에 꼭 배워보세요.


5. 폰트 설치

5-1. Nerd Fonts가 왜 필요할까요?

일반 폰트에는 터미널에서 사용하는 아이콘 문자가 없습니다. Nerd Fonts는 개발자를 위해 수백 개의 아이콘을 추가한 폰트입니다.

이런 것들이 가능해집니다: - Git 상태 아이콘 (변경됨, 추가됨, 충돌 등) - 폴더/파일 아이콘 - 언어별 로고 아이콘 - 화려한 터미널 프롬프트

5-2. 추천 폰트

폰트 추천 이유
MesloLGS NF Powerlevel10k 공식 추천 폰트
D2Coding 한국어 코딩에 최적화 (한글 가독성!)
FiraCode Nerd Font 프로그래밍 합자 지원 (-> 가 → 로 보임)

5-3. 설치 방법

Windows에 설치

# PowerShell에서 실행

# MesloLGS NF 설치 (Powerlevel10k용)
# https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k
# 위 페이지에서 4개의 ttf 파일을 다운로드 후 더블클릭하여 설치

또는 수동 설치:

1. https://www.nerdfonts.com/font-downloads 접속
2. 원하는 폰트 검색 (예: "Meslo", "FiraCode")
3. 다운로드 후 압축 해제
4. .ttf 파일 더블클릭 → "설치" 클릭

Windows Terminal 폰트 적용: 설치 후 반드시 터미널 설정에서 폰트를 변경해야 합니다! 설정 → 프로필 → 모양 → 글꼴 → "MesloLGS NF" 선택

macOS에 설치

# Homebrew로 설치 (Homebrew가 설치되어 있어야 함)
brew tap homebrew/cask-fonts
brew install --cask font-meslo-lg-nerd-font
brew install --cask font-d2coding
brew install --cask font-fira-code-nerd-font

Homebrew가 없나요? https://brew.sh/ 에서 설치하세요.

Linux에 설치

# 폰트 디렉토리 만들기
mkdir -p ~/.local/share/fonts

# Nerd Fonts 다운로드 (Meslo 예시)
cd ~/.local/share/fonts
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf

# 폰트 캐시 갱신
fc-cache -fv
# 또는 한 번에 여러 Nerd Fonts 설치하는 스크립트
# (시간이 좀 걸립니다)
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts

# FiraCode Nerd Font
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/FiraCode.zip
unzip FiraCode.zip
rm FiraCode.zip

fc-cache -fv

확인: fc-list | grep "Meslo" 로 설치된 폰트를 확인할 수 있습니다.


6. 한글 설정

리눅스에서 한글을 입력하려면 입력기(Input Method)를 설정해야 합니다.

6-1. ibus 설치 및 설정 (GUI 환경)

# ibus와 한글 엔진 설치
sudo apt install -y ibus ibus-hangul

# ibus 데몬 시작
ibus-daemon -drx

# ibus 설정 열기
ibus-setup

설정 화면에서:

1. "입력기" 탭 → "추가" 클릭
2. 한국어 → Korean → Hangul 선택 → "추가"
3. "키보드 단축키" 탭에서 전환 키 설정
   (보통 한영키 또는 Shift+Space)

환경 변수 설정:

# ~/.zshrc (또는 ~/.bashrc)에 추가
nano ~/.zshrc
# 파일 끝에 추가:
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus

6-2. fcitx 대안

fcitx는 ibus의 대안입니다. 더 가볍고 빠르다고 느끼는 사람도 있습니다.

# fcitx와 한글 엔진 설치
sudo apt install -y fcitx fcitx-hangul

# 기본 입력기로 fcitx 설정
im-config -n fcitx

환경 변수:

# ~/.zshrc에 추가:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

6-3. 한글 입력기 선택 가이드

항목 ibus-hangul fcitx-hangul
설치 난이도 쉬움 쉬움
안정성 매우 안정적 안정적
설정 편의성 GUI 설정 도구 GUI 설정 도구
추천 대상 초보자, GNOME 사용자 가벼운 환경 선호 사용자

추천: 처음에는 ibus-hangul을 사용하세요. 나중에 필요하면 fcitx로 바꿔도 됩니다.

6-4. 한글 폰트 설치

# Noto Sans CJK (한중일 폰트) 설치
sudo apt install -y fonts-noto-cjk

# 또는 구글 웹폰트에서 다운로드
# https://fonts.google.com/noto 에서 Noto Sans KR 다운로드

# 설치 후 캐시 갱신
fc-cache -fv

WSL2 참고: WSL2는 GUI 앱이 없으므로, Windows 쪽에서 한글 입력을 사용합니다. WSL2 내부에서 한글 설정은 주로 웹 개발 시 폰트 렌더링 등에 필요합니다.


7. 터미널 색상 테마

7-1. Color Scheme이 뭔가요?

Color Scheme(색상 테마)는 터미널의 배경색, 글자색, 강조색 등을 정의한 설정입니다. 예쁜 테마를 적용하면 코딩이 더 즐거워져요!

7-2. 추천 테마

테마 느낌 배경색 특징
Dracula 다크 + 보라 어두운 남색 인기 최고, 눈이 편안
Nord 차가운 북유럽 짙은 남색 차분하고 세련된 느낌
Catppuccin 파스텔 톤 어두운 갈색 부드럽고 예쁜 색상
Tokyo Night 도쿄의 밤 짙은 파랑 모던하고 세련됨

7-3. Windows Terminal에서 테마 설정

settings.json을 열고 (Ctrl+, → JSON 파일 열기), schemes 배열에 테마를 추가합니다.

Dracula 테마 예시:

"schemes": [
    {
        "name": "Dracula",
        "cursorColor": "#f8f8f2",
        "selectionBackground": "#44475a",
        "background": "#282a36",
        "foreground": "#f8f8f2",
        "black": "#21222c",
        "blue": "#bd93f9",
        "cyan": "#8be9fd",
        "green": "#50fa7b",
        "purple": "#ff79c6",
        "red": "#ff5555",
        "white": "#f8f8f2",
        "yellow": "#f1fa8c",
        "brightBlack": "#6272a4",
        "brightBlue": "#bd93f9",
        "brightCyan": "#8be9fd",
        "brightGreen": "#50fa7b",
        "brightPurple": "#ff79c6",
        "brightRed": "#ff6e6e",
        "brightWhite": "#ffffff",
        "brightYellow": "#f1fa8c"
    }
]

그리고 프로필에서 사용:

"profiles": {
    "defaults": {
        "colorScheme": "Dracula"
    }
}

더 많은 테마: https://windowsterminalthemes.dev/ 에서 수백 개의 테마를 한 번에 복사할 수 있습니다!

7-4. VS Code 터미널 테마 연동

VS Code 터미널도 테마를 설정할 수 있습니다.

settings.json (VS Code)을 열고:

{
    "workbench.colorCustomizations": {
        "terminal.background": "#282a36",
        "terminal.foreground": "#f8f8f2",
        "terminalCursor.background": "#f8f8f2",
        "terminalCursor.foreground": "#282a36",
        "terminal.ansiBlack": "#21222c",
        "terminal.ansiBlue": "#bd93f9",
        "terminal.ansiCyan": "#8be9fd",
        "terminal.ansiGreen": "#50fa7b",
        "terminal.ansiMagenta": "#ff79c6",
        "terminal.ansiRed": "#ff5555",
        "terminal.ansiWhite": "#f8f8f2",
        "terminal.ansiYellow": "#f1fa8c",
        "terminal.ansiBrightBlack": "#6272a4",
        "terminal.ansiBrightBlue": "#bd93f9",
        "terminal.ansiBrightCyan": "#8be9fd",
        "terminal.ansiBrightGreen": "#50fa7b",
        "terminal.ansiBrightMagenta": "#ff79c6",
        "terminal.ansiBrightRed": "#ff6e6e",
        "terminal.ansiBrightWhite": "#ffffff",
        "terminal.ansiBrightYellow": "#f1fa8c"
    }
}

더 쉬운 방법: VS Code에서 Dracula Official 확장을 설치하면 터미널 테마도 자동으로 적용됩니다!


8. 추천 .zshrc 설정

~/.zshrc는 zsh 설정 파일입니다. 여기에 유용한 설정을 추가해 봅시다.

# ~/.zshrc 파일 열기
nano ~/.zshrc

아래 내용을 파일 끝에 추가하세요:

# ============================================
# 유용한 alias들 (단축 명령어)
# ============================================

# 파일 목록 보기
alias ll='ls -alF'        # 숨긴 파일 + 자세한 정보
alias la='ls -A'          # 숨긴 파일 보기
alias l='ls -CF'          # 간단하게

# Git 단축키
alias gs='git status'     # 현재 상태 확인
alias gc='git commit'     # 커밋
alias gp='git push'       # 푸시
alias gpl='git pull'      # 풀
alias gd='git diff'       # 변경 사항 보기
alias gl='git log --oneline --graph --decorate'  # 예쁜 로그
alias gaa='git add -A'    # 전부 스테이징

# 디렉토리 이동
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias home='cd ~'

# 안전한 명령어 (확인 메시지 표시)
alias rm='rm -i'          # 삭제 전 확인
alias cp='cp -i'          # 덮어쓰기 전 확인
alias mv='mv -i'          # 덮어쓰기 전 확인

# 시스템 정보
alias df='df -h'          # 디스크 사용량 (사람이 읽기 쉽게)
alias du='du -h'          # 디렉토리 사용량
alias free='free -h'      # 메모리 사용량

# ============================================
# 히스토리 설정
# ============================================

HISTSIZE=10000            # 메모리에 저장할 명령어 수
SAVEHIST=10000            # 파일에 저장할 명령어 수
setopt SHARE_HISTORY      # 여러 터미널에서 히스토리 공유
setopt HIST_IGNORE_DUPS   # 연속된 중복 명령어 무시
setopt HIST_IGNORE_SPACE  # 공백으로 시작하면 히스토리에 저장 안 함

# ============================================
# 기타 편의 설정
# ============================================

export EDITOR=nano        # 기본 에디터를 nano로 설정

# 오타 교정 (약간 느려질 수 있음)
setopt CORRECT

# cd 없이 디렉토리 이름만 쳐도 이동
setopt AUTO_CD

# ============================================
# 함수: 빠른 프로젝트 폴더 만들기
# ============================================

mkproject() {
    mkdir -p "$1"
    cd "$1"
    git init
    echo "# $1" > README.md
    echo "프로젝트 $1 생성 완료!"
}
# 설정 적용
source ~/.zshrc

alias란? 긴 명령어에 짧은 별명을 붙이는 기능입니다. 예를 들어 gs만 쳐도 git status가 실행됩니다!


9. dotfiles 관리 개념

9-1. dotfiles란?

리눅스에서 .(점)으로 시작하는 파일은 숨김 파일입니다. 이 중 설정 파일들을 dotfiles라고 부릅니다.

# 내 홈 디렉토리의 dotfiles 보기
ls -la ~ | grep '^\.'

# 주요 dotfiles:
# ~/.zshrc       - zsh 설정
# ~/.gitconfig   - Git 설정
# ~/.bashrc      - bash 설정 (zsh 안 쓰면)
# ~/.config/     - 여러 프로그램의 설정 폴더

9-2. 왜 관리해야 하나요?

  • 새 컴퓨터에서도 같은 환경을 빠르게 구축할 수 있습니다
  • 실수로 설정을 날려도 복구할 수 있습니다
  • 다른 사람의 멋진 설정을 참고할 수 있습니다

9-3. GitHub에 백업하는 방법

# dotfiles 저장소 만들기
mkdir ~/dotfiles
cd ~/dotfiles

# 설정 파일들 복사
cp ~/.zshrc ~/dotfiles/zshrc
cp ~/.gitconfig ~/dotfiles/gitconfig

# GitHub에 푸시
git init
git add zshrc gitconfig
git commit -m "My dotfiles backup"
git remote add origin https://github.com/내아이디/dotfiles.git
git push -u origin main

나중에 새 컴퓨터에서 복원:

# dotfiles 클론
git clone https://github.com/내아이디/dotfiles.git ~/dotfiles

# 설정 파일 심볼릭 링크 (원본처럼 사용)
ln -s ~/dotfiles/zshrc ~/.zshrc
ln -s ~/dotfiles/gitconfig ~/.gitconfig

# 적용
source ~/.zshrc

심볼릭 링크(ln -s)는 바로가기 같은 것입니다. 파일을 복사하지 않고, 원본 파일을 가리키게 합니다.

9-4. 유용한 dotfiles 저장소

다른 사람들은 어떻게 설정했는지 구경해 보세요:

저장소 설명
github.com/mathiasbynens/dotfiles 유명한 macOS dotfiles
github.com/ohmyzsh/ohmyzsh Oh My Zsh 예시 설정
github.com/romkatv/dotfiles Powerlevel10k 개발자의 설정

Google에 "github dotfiles"라고 검색하면 수많은 예시를 볼 수 있습니다!


10. 실습 미션

자, 이제 배운 걸 직접 해봅시다! 난이도 순으로 미션을 준비했어요.

미션 1: 시스템 기본 설정 (난이도: 초급)

# 1. 시스템 업데이트
sudo apt update && sudo apt upgrade -y

# 2. 기본 도구 설치
sudo apt install -y build-essential curl wget git

# 3. 시간대를 한국으로 설정
sudo timedatectl set-timezone Asia/Seoul

# 4. 호스트명을 원하는 이름으로 변경
sudo hostnamectl set-hostname coding-hero

# 5. 확인!
echo "=== 시스템 정보 ==="
echo "호스트명: $(hostname)"
echo "시간대: $(timedatectl show -p Timezone --value)"
echo "Git 버전: $(git --version)"
echo "GCC 버전: $(gcc --version | head -n1)"
echo "=================="

성공 기준: 위 확인 명령어를 실행했을 때 모든 정보가 정상적으로 출력되면 성공!


미션 2: zsh + Oh My Zsh 설치 (난이도: 초급)

# 1. zsh 설치
sudo apt install zsh -y

# 2. Oh My Zsh 설치
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 3. agnoster 테마 적용
# ~/.zshrc에서 ZSH_THEME="agnoster"로 변경
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="agnoster"/' ~/.zshrc
source ~/.zshrc

# 4. 확인!
echo "현재 쉘: $SHELL"
echo "zsh 버전: $(zsh --version)"

성공 기준: 터미널 프롬프트 모양이 달라졌으면 성공!


미션 3: 필수 플러그인 3종 설치 (난이도: 중급)

# 1. zsh-autosuggestions 설치
git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 2. zsh-syntax-highlighting 설치
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# 3. ~/.zshrc에 플러그인 활성화
# plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)

# 4. source ~/.zshrc 적용

# 5. 테스트!
echo "hello"     # 이제 다음에 'ec'만 쳐도 자동완성 제안이 나오나요?
ls              # 명령어가 초록색으로 보이나요?

성공 기준: - echo를 칠 때 회색 자동완성 제안이 나오면 성공 - 올바른 명령어가 초록색, 틀린 명령어가 빨간색이면 성공


미션 4: 나만의 .zshrc 꾸미기 (난이도: 중급)

# 1. ~/.zshrc에 다음 alias 추가:
alias gs='git status'
alias ll='ls -alF'
alias home='cd ~'

# 2. 히스토리 설정 추가:
# HISTSIZE=10000
# SAVEHIST=10000

# 3. nano를 기본 에디터로:
# export EDITOR=nano

# 4. 적용 후 테스트:
source ~/.zshrc
gs      # git status가 실행되나요?
ll      # 파일 목록이 예쁘게 나오나요?

성공 기준: 모든 alias가 정상 작동하면 성공!


미션 5: 종합 - 멋진 터미널 완성 (난이도: 상급)

위의 모든 미션을 완료한 도전자를 위한 종합 미션입니다.

체크리스트:

[ ] WSL2 또는 VM에 Ubuntu 설치 완료
[ ] 시스템 업데이트 및 기본 도구 설치
[ ] zsh + Oh My Zsh 설치
[ ] Powerlevel10k 테마 적용
[ ] zsh-autosuggestions 플러그인 설치
[ ] zsh-syntax-highlighting 플러그인 설치
[ ] Nerd Font (MesloLGS NF) 설치
[ ] 터미널 색상 테마 적용 (Dracula 또는 원하는 테마)
[ ] 나만의 alias 3개 이상 만들기
[ ] dotfiles를 GitHub에 백업

최종 확인 명령어:

echo "================================"
echo "  내 터미널 환경 완성도 체크!"
echo "================================"
echo ""
echo "쉘: $SHELL"
echo "zsh 버전: $(zsh --version)"
echo "Oh My Zsh: $(ls ~/.oh-my-zsh > /dev/null 2>&1 && echo '설치됨' || echo '미설치')"
echo "테마: $(grep '^ZSH_THEME=' ~/.zshrc)"
echo "플러그인: $(grep '^plugins=' ~/.zshrc)"
echo "Git 버전: $(git --version)"
echo "폰트: $(fc-list | grep -c 'Meslo') 개의 Meslo 폰트 설치됨"
echo "================================"

마치며

축하합니다! 기본적인 리눅스 개발 환경을 구축하는 방법을 배웠습니다.

처음에는 복잡해 보일 수 있지만, 한 단계씩 천천히 따라 하다 보면 어느새 멋진 터미널 환경이 완성될 거예요.

꼭 기억하세요:

  1. 모르는 건 검색하세요 - 구글에 에러 메시지를 그대로 복사해서 검색!
  2. 가상머신 스냅샷을 활용하세요 - 망가져도 되돌릴 수 있습니다
  3. 즐기세요 - 코딩은 재미있어야 합니다!

다음 문서에서는 리눅스 파일 시스템과 기본 명령어에 대해 알아보겠습니다. 질문이 있으면 언제든 물어보세요!