명령어보다 먼저 알아야 할 것
Linux를 배운다고 하면 많은 사람이 먼저 명령어를 떠올립니다. ls, cd, mkdir 같은 명령어를 빨리 외우고 싶어 합니다. 하지만 명령어는 도구일 뿐입니다. 중요한 것은 내가 어떤 시스템 위에서 그 도구를 쓰는지 아는 일입니다.
Linux 환경을 하나의 식당으로 비유해 보겠습니다.
터미널은 주문서를 쓰는 창구입니다.
셸은 주문을 읽고 주방에 전달하는 직원입니다.
커널은 실제로 재료와 불, 냉장고를 관리하는 주방의 핵심 관리자입니다.
배포판은 식당 전체의 운영 방식입니다. 메뉴판, 직원 구성, 재료 보관 방식, 계산 방식이 포함됩니다.
사용자가 터미널에 다음처럼 입력한다고 해 보겠습니다.
ls /home흐름은 이렇게 이어집니다.
사용자가 터미널에 글자를 입력합니다.
터미널은 입력을 셸에 전달합니다.
셸은
ls라는 프로그램을 찾아 실행합니다.ls는/home디렉터리 목록을 읽기 위해 커널에 요청합니다.커널은 파일 시스템에서 정보를 가져와 프로그램에 돌려줍니다.
결과가 다시 터미널 화면에 표시됩니다.
처음에는 이 흐름만 기억하면 충분합니다. 터미널은 화면, 셸은 해석기, 커널은 시스템의 중심, 배포판은 이 모든 것을 묶은 운영체제 꾸러미입니다.
AI 생성 이미지
커널, 셸, 터미널, 배포판
커널은 Linux의 핵심입니다. CPU, 메모리, 디스크, 네트워크 장치 같은 하드웨어 자원을 관리합니다. 일반 사용자는 커널을 직접 조작하지 않습니다. 프로그램이 커널에 요청하고, 커널이 허락한 범위 안에서 작업이 이루어집니다.
셸은 사용자의 명령을 해석하는 프로그램입니다. 이 책에서는 가장 널리 쓰이는 Bash를 기준으로 설명합니다. Bash는 명령어 실행, 파일 이름 자동 완성, 변수 사용, 스크립트 작성 같은 기능을 제공합니다.
현재 사용하는 셸은 다음 명령으로 확인할 수 있습니다.
echo $SHELL예상 출력은 환경마다 다르지만 보통 다음과 비슷합니다.
/bin/bash터미널은 셸을 사용하기 위한 창입니다. Ubuntu의 GNOME Terminal, Windows Terminal, macOS의 Terminal 앱처럼 이름은 달라도 역할은 비슷합니다. 터미널을 닫는다고 Linux 자체가 사라지는 것은 아닙니다. 식당의 창구를 닫는다고 주방이 없어지지 않는 것과 같습니다.
배포판은 Linux 커널에 기본 명령어, 패키지 관리자, 설치 도구, 설정 파일, 데스크톱 환경 등을 더해 사용 가능한 운영체제로 묶은 것입니다. Ubuntu, Debian, Fedora, RHEL, Arch Linux가 모두 배포판입니다.
내가 어떤 배포판을 쓰는지는 다음 명령으로 확인합니다.
cat /etc/os-release출력에서 특히 NAME, VERSION, ID를 봅니다.
NAME="Ubuntu"
VERSION="24.04 LTS (Noble Numbat)"
ID=ubuntu앞으로 문제를 해결할 때는 "Linux에서 안 됩니다"보다 "Ubuntu 24.04에서 apt install 중 이런 오류가 납니다"라고 말하는 편이 훨씬 정확합니다.
어떤 배포판으로 시작할까
초보자는 배포판 선택에서 너무 오래 멈추지 않는 것이 좋습니다. 이 책의 예시는 Ubuntu 계열을 기본으로 합니다. 자료가 많고, 데스크톱과 서버 양쪽에서 널리 쓰이며, 패키지 설치 방식이 비교적 친절하기 때문입니다.
대표 계열을 간단히 비교하면 다음과 같습니다.
| 계열 | 대표 배포판 | 패키지 명령 | 특징 | 초보자 추천도 |
|---|---|---|---|---|
| Debian 계열 | Ubuntu, Debian | apt | 자료가 많고 안정적입니다. Ubuntu는 입문용으로 특히 무난합니다. | 높음 |
| Fedora 계열 | Fedora | dnf | 새 기술 반영이 빠릅니다. 데스크톱 Linux를 깔끔하게 경험하기 좋습니다. | 중간~높음 |
| RHEL 계열 | RHEL, Rocky Linux, AlmaLinux | dnf | 기업 서버 환경에서 많이 씁니다. 장기 운영과 안정성을 중시합니다. | 목적이 있으면 추천 |
| Arch 계열 | Arch Linux, Manjaro | pacman | 사용자가 직접 구성하는 부분이 많습니다. 구조를 깊게 배우기 좋지만 초반 진입 장벽이 있습니다. | 낮음~중간 |
패키지 설치 명령만 보아도 차이가 있습니다.
# Ubuntu, Debian
sudo apt update
sudo apt install tree
# Fedora, RHEL 계열
sudo dnf install tree
# Arch 계열
sudo pacman -S tree지금 단계에서 모든 계열을 외울 필요는 없습니다. 중요한 습관은 명령어를 실행하기 전에 "내 배포판의 패키지 관리자는 무엇인가?"를 확인하는 것입니다. 같은 Linux라도 설치 명령과 설정 파일 위치가 다를 수 있습니다.
실습 환경을 고르는 기준
Linux를 배우는 방법은 여러 가지입니다. 정답은 하나가 아닙니다. 자신의 컴퓨터, 운영체제, 목적에 맞게 고르면 됩니다.
1. WSL: Windows에서 빠르게 시작하기
Windows 사용자라면 WSL이 가장 쉬운 출발점입니다. WSL은 Windows에서 Linux 환경을 실행할 수 있게 해 주는 기능입니다. Microsoft는 WSL을 별도의 가상 머신이나 듀얼 부팅 없이 Windows에서 Linux 환경을 실행하는 기능으로 설명합니다.1 특히 WSL 2는 내부적으로 가벼운 가상화 환경과 Linux 커널을 사용합니다.
최근 Windows에서는 관리자 권한 PowerShell에서 다음 명령으로 설치를 시작할 수 있습니다.
wsl --install기본값으로 Ubuntu가 설치되는 경우가 많습니다. 설치 후에는 Linux 사용자 이름과 비밀번호를 만듭니다. 이 비밀번호는 Windows 로그인 비밀번호와 별개입니다. sudo 명령을 사용할 때 필요하므로 잊지 않도록 합니다.
WSL은 다음 경우에 좋습니다.
Windows를 계속 쓰면서 Linux 명령어를 배우고 싶다.
웹 개발, 스크립트 작성, Git 사용을 연습하고 싶다.
설치와 삭제가 쉬운 환경이 필요하다.
주의할 점도 있습니다. Linux 도구로 작업할 프로젝트는 가능하면 WSL의 Linux 파일 시스템 안에 둡니다. 예를 들어 다음 위치가 좋습니다.
/home/사용자이름/projectsWindows의 C:Users... 아래 파일을 WSL에서 계속 다루면 성능이나 권한 문제를 만날 수 있습니다. Microsoft도 사용하는 도구와 같은 운영체제 쪽 파일 시스템에 프로젝트를 두는 방식을 권장합니다.2
2. 가상 머신: 가장 안전한 실습실
가상 머신은 내 컴퓨터 안에 또 하나의 컴퓨터를 만드는 방식입니다. VirtualBox, VMware Workstation, UTM 같은 도구를 사용할 수 있습니다.
가상 머신의 가장 큰 장점은 스냅샷입니다. 스냅샷은 특정 시점의 상태를 사진처럼 저장하는 기능입니다. 실습 중 설정을 망쳤다면 이전 상태로 되돌릴 수 있습니다.
가상 머신은 다음 경우에 좋습니다.
시스템 설정, 디스크, 서비스 관리까지 폭넓게 연습하고 싶다.
위험한 실습을 실제 PC와 분리하고 싶다.
Ubuntu, Fedora, Arch 등 여러 배포판을 비교하고 싶다.
단점은 자원을 더 사용한다는 점입니다. 메모리는 최소 4GB, 가능하면 8GB 이상 여유가 있으면 좋습니다. 가상 머신에는 처음부터 중요한 개인 파일을 넣지 마세요. 실습용 컴퓨터라고 생각하는 편이 안전합니다.
3. 클라우드 VPS: 실제 서버 감각 익히기
VPS는 인터넷에 있는 작은 서버를 빌려 쓰는 방식입니다. AWS Lightsail, DigitalOcean, Vultr, Linode, 국내 클라우드 서비스 등이 여기에 속합니다.
VPS는 실제 서버처럼 SSH로 접속하고, 방화벽과 서비스 설정을 다룰 수 있습니다. 네트워크와 원격 접속을 배우기에 좋습니다.
다만 비용과 보안 책임이 생깁니다. 인터넷에 공개된 서버는 자동 공격 대상이 될 수 있습니다. 초보자는 처음부터 중요한 서비스를 올리지 말고, 짧은 기간 실습용으로만 사용하는 것이 좋습니다. 사용하지 않는 VPS는 반드시 종료하거나 삭제해 과금과 보안 위험을 줄입니다.
4. 남는 PC에 직접 설치하기
남는 노트북이나 데스크톱이 있다면 Linux를 직접 설치할 수 있습니다. 성능은 좋고 실제 하드웨어를 다루는 경험을 얻을 수 있습니다.
하지만 디스크 파티션을 잘못 선택하면 기존 데이터가 사라질 수 있습니다. 특히 듀얼 부팅은 초보자에게 부담이 큽니다. 직접 설치를 하려면 먼저 다음을 확인하세요.
중요한 파일을 외장 디스크나 클라우드에 백업했다.
설치할 디스크와 지우면 안 되는 디스크를 구분할 수 있다.
복구 USB나 기존 운영체제 설치 방법을 준비했다.
처음 학습 목적이라면 WSL 또는 가상 머신을 먼저 추천합니다. 직접 설치는 Linux가 어느 정도 익숙해진 뒤 진행해도 늦지 않습니다.
망쳐도 되는 공간을 먼저 만든다
Linux 실습에서 가장 중요한 안전 원칙은 "내가 어디에서 작업 중인지 확인한다"입니다. 명령어를 실행하기 전에 현재 위치를 확인하는 습관을 들입니다.
pwdpwd는 현재 디렉터리 경로를 보여 줍니다. 실습은 홈 디렉터리 아래 별도 공간에서 진행합니다.
mkdir -p ~/linux-practice/ch01
cd ~/linux-practice/ch01
pwd예상 출력은 다음과 비슷합니다.
/home/user/linux-practice/ch01이 책의 실습은 가능하면 ~/linux-practice 아래에서 진행합니다. 이 디렉터리 밖에서 파일을 지우거나 옮기는 명령을 실행할 때는 한 번 더 멈추고 확인합니다.
특히 다음 명령은 조심해야 합니다.
rm -rf 경로rm은 파일을 지우는 명령이고, -r은 디렉터리 안쪽까지 재귀적으로 지우며, -f는 확인 질문을 줄입니다. 잘못된 경로에 쓰면 복구가 어려울 수 있습니다. 이 책에서는 삭제 명령을 다룰 때 항상 현재 위치와 대상 경로를 먼저 확인합니다.
가상 머신을 사용한다면 큰 실습 전에는 스냅샷을 만듭니다. WSL을 사용한다면 중요한 프로젝트는 Git 저장소나 별도 백업으로 관리합니다. VPS를 사용한다면 제공업체의 스냅샷 기능이나 이미지 백업 기능을 확인합니다.
첫 확인 명령어
환경을 준비했다면 다음 명령으로 현재 시스템을 확인해 봅니다.
uname -a
cat /etc/os-release
echo $SHELL
whoami
pwd각 명령의 의미는 다음과 같습니다.
| 명령 | 확인하는 것 |
|---|---|
uname -a | 커널 정보와 시스템 종류 |
cat /etc/os-release | 배포판 이름과 버전 |
echo $SHELL | 기본 셸 경로 |
whoami | 현재 사용자 이름 |
pwd | 현재 작업 위치 |
처음부터 출력 내용을 모두 이해할 필요는 없습니다. 대신 "정보를 확인하는 명령"과 "시스템을 바꾸는 명령"을 구분하는 습관을 들이세요. 위 명령들은 시스템 상태를 바꾸지 않고 읽기만 합니다. 초보자가 안심하고 실행해도 되는 명령입니다.
실습 과제
자신의 실습 방식을 하나 고르세요. Windows 사용자라면 WSL 또는 가상 머신을 추천합니다.
Linux 터미널을 열고 다음 명령을 실행하세요.
cat /etc/os-release
uname -a
echo $SHELL
whoami홈 디렉터리 아래 실습 공간을 만드세요.
mkdir -p ~/linux-practice/ch01
cd ~/linux-practice/ch01
pwd출력 결과를
system-info.txt파일에 저장해 봅니다.
{
cat /etc/os-release
echo "---"
uname -a
echo "---"
echo $SHELL
echo "---"
whoami
} > system-info.txt파일이 생겼는지 확인합니다.
ls -l system-info.txt아직 ls나 리다이렉션의 세부 문법을 몰라도 괜찮습니다. 지금 목표는 "내 시스템 정보를 확인하고, 실습 공간 안에 기록을 남기는 것"입니다.
문제 해결 시나리오: 내가 쓰는 Linux가 무엇인지 모를 때
상황을 가정해 봅시다. 인터넷에서 다음 명령을 보고 실행하려고 합니다.
sudo apt install nginx그런데 내 시스템에서는 apt: command not found라는 메시지가 나옵니다. 이때 바로 다른 명령을 아무거나 시도하지 마세요. 먼저 배포판을 확인합니다.
cat /etc/os-release출력에 ID=fedora가 있다면 Ubuntu가 아니라 Fedora 계열입니다. 이 경우 패키지 설치 명령은 보통 다음처럼 바뀝니다.
sudo dnf install nginx출력에 ID=arch가 있다면 Arch 계열이므로 다음 계열의 명령을 확인해야 합니다.
sudo pacman -S nginx문제 해결의 출발점은 "명령어가 틀렸다"가 아니라 "이 명령어가 내 배포판에 맞는가?"를 확인하는 것입니다. Linux를 제대로 활용한다는 것은 명령어를 많이 외우는 일이 아닙니다. 현재 시스템의 종류, 위치, 권한, 영향을 읽고 판단하는 일입니다.
이번 장의 기준선
이 장을 마치면 다음 질문에 답할 수 있어야 합니다.
터미널, 셸, 커널, 배포판이 각각 어떤 역할을 하는가?
내 배포판 이름과 버전을 어떻게 확인하는가?
Ubuntu, Fedora, RHEL, Arch 계열은 패키지 관리 방식이 어떻게 다른가?
WSL, 가상 머신, VPS, 직접 설치 중 내 상황에 맞는 방식은 무엇인가?
실습 중 안전을 위해 어떤 디렉터리와 백업 원칙을 사용할 것인가?
다음 장부터는 터미널에서 명령어를 입력하는 기본 문법을 배웁니다. 그전에 지금 만든 ~/linux-practice 디렉터리를 기억해 두세요. 앞으로의 실습은 이 안전한 작업 공간에서 시작합니다.
참고
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.