리눅스 학습 시리즈 안내
시리즈 목차 보기

리눅스를 처음 공부할 때 가장 중요한 건 너무 많은 걸 한꺼번에 하려고 하지 않는 것이다. 처음부터 서버 운영, 보안, 쿠버네티스 같은 주제로 들어가면 금방 어렵게 느껴질 수 있다. 그래서 입문 단계에서는 설치 → 기본 명령어 → 사용자/권한 → 네트워크 순서로 차근차근 익히는 방식이 가장 좋다.

이번 글에서는 리눅스를 처음 시작하는 사람이 꼭 익혀야 하는 핵심 주제를 입문 과정 기준으로 정리해본다.

1. 리눅스 소개 및 설치

리눅스는 오픈소스 운영체제 계열로, 서버와 클라우드 환경에서 특히 강력한 존재감을 가진다. 안드로이드, 웹 서버, 클라우드 인프라, 네트워크 장비 등 생각보다 훨씬 많은 곳에서 리눅스 기반 기술이 쓰이고 있다.

리눅스의 역사와 철학

리눅스는 유닉스 철학의 영향을 많이 받았다. "작은 도구를 잘 만들고, 그것들을 조합해서 큰 일을 처리한다"는 사고방식이 리눅스 전반에 깔려 있다.

이 철학 때문에 리눅스는 다음과 같은 특징을 가진다.

  • 텍스트 기반 설정과 자동화에 강함
  • 명령어 조합과 스크립트 활용도가 높음
  • 서버 운영과 개발 환경에 최적화됨
  • 오픈소스 생태계가 매우 풍부함

대표 배포판 소개

입문자가 자주 접하는 배포판은 보통 다음과 같다.

  • Ubuntu: 가장 대중적이고 자료가 많아 입문용으로 적합
  • CentOS / Rocky Linux / AlmaLinux 계열: 서버 환경에서 많이 쓰이는 RHEL 계열
  • Fedora: 비교적 최신 기술을 빠르게 경험하기 좋음

처음 시작한다면 보통 Ubuntu가 가장 무난하다.

설치 환경 선택

리눅스를 처음 연습할 때는 아래 중 하나로 시작하면 된다.

  • VMware / VirtualBox: 내 PC 안에 가상 머신으로 설치
  • 클라우드 서버: AWS, GCP, Azure, Oracle Cloud 등에 설치
  • 로컬 테스트 장비: 미니 PC, 남는 노트북, 홈서버 등

처음에는 가상 머신으로 충분히 연습하고, 그 다음 클라우드 서버로 넘어가는 흐름이 편하다.

설치 후 기본 설정

설치 직후에는 다음 설정부터 해두는 게 좋다.

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim htop net-tools

설치 후 체크할 기본 항목:

  • 네트워크 연결 확인
  • 패키지 업데이트
  • 자주 쓰는 도구 설치
  • 호스트네임 확인
  • 시간대와 로케일 확인

2. 리눅스 기본 명령어

리눅스 공부의 진짜 시작은 명령어에 익숙해지는 것이다. GUI 환경보다 CLI 환경이 훨씬 자주 쓰이기 때문에 기본 명령어는 반드시 몸에 익히는 편이 좋다.

파일 시스템 구조 이해

리눅스는 Windows와 달리 드라이브 문자 중심이 아니라 하나의 트리 구조를 가진다.

중요한 디렉토리는 아래 정도는 알아두는 게 좋다.

  • / : 루트 디렉토리
  • /home : 일반 사용자 홈 디렉토리
  • /etc : 설정 파일
  • /var : 로그, 캐시, 가변 데이터
  • /tmp : 임시 파일
  • /usr : 프로그램과 라이브러리
  • /bin, /sbin : 기본 실행 파일

자주 쓰는 기본 명령어 정리

ls 명령어 : 현재 디렉토리의 파일과 디렉토리 목록을 확인합니다.

사용법: ls [옵션] [경로]

  • ls : 현재 위치의 파일 목록을 표시합니다.
  • ls -l : 자세한 정보와 함께 출력합니다.
  • ls -a : 숨김 파일까지 함께 표시합니다.

예시:

ls -al /etc

설명: 이 명령어는 /etc 디렉토리 안의 파일을 숨김 파일 포함 상세 형식으로 보여줍니다.

cd 명령어 : 현재 작업 디렉토리를 변경합니다.

사용법: cd [경로]

  • cd /etc : /etc 디렉토리로 이동합니다.
  • cd ~ : 홈 디렉토리로 이동합니다.
  • cd .. : 상위 디렉토리로 이동합니다.

예시:

cd /var/log

설명: 이 명령어는 현재 위치를 /var/log 디렉토리로 변경합니다.

pwd 명령어 : 현재 작업 중인 디렉토리의 전체 경로를 출력합니다.

사용법: pwd

  • pwd : 현재 위치를 절대 경로로 표시합니다.

예시:

pwd

설명: 이 명령어는 현재 사용자가 어느 디렉토리에서 작업 중인지 보여줍니다.

cp 명령어 : 파일 또는 디렉토리를 복사합니다.

사용법: cp [옵션] 원본 대상

  • cp file1 file2 : file1file2 이름으로 복사합니다.
  • cp -r dir1 dir2 : 디렉토리를 재귀적으로 복사합니다.

예시:

cp -r /etc/skel /tmp/skel-backup

설명: 이 명령어는 /etc/skel 디렉토리를 /tmp/skel-backup으로 복사합니다.

mv 명령어 : 파일 또는 디렉토리를 이동하거나 이름을 변경합니다.

사용법: mv 원본 대상

  • mv file1 file2 : 파일 이름을 변경합니다.
  • mv file1 /tmp/ : 파일을 다른 위치로 이동합니다.

예시:

mv test.txt /tmp/

설명: 이 명령어는 test.txt 파일을 /tmp 디렉토리로 이동합니다.

rm 명령어 : 파일 또는 디렉토리를 삭제합니다.

사용법: rm [옵션] 대상

  • rm file.txt : 파일을 삭제합니다.
  • rm -r dir1 : 디렉토리를 포함해 삭제합니다.
  • rm -f file.txt : 확인 없이 강제로 삭제합니다.

예시:

rm -r old-backup

설명: 이 명령어는 old-backup 디렉토리를 하위 파일까지 포함해 삭제합니다.

mkdir 명령어 : 새 디렉토리를 생성합니다.

사용법: mkdir [옵션] 디렉토리명

  • mkdir testdir : testdir 디렉토리를 생성합니다.
  • mkdir -p a/b/c : 상위 경로까지 함께 생성합니다.

예시:

mkdir -p ~/lab/linux/basic

설명: 이 명령어는 홈 디렉토리 아래에 여러 단계의 디렉토리를 한 번에 생성합니다.

cat 명령어 : 파일 내용을 출력합니다.

사용법: cat [파일명]

  • cat file.txt : 파일 내용을 화면에 출력합니다.
  • cat /etc/hostname : 호스트네임 파일 내용을 확인합니다.

예시:

cat /etc/hostname

설명: 이 명령어는 시스템의 호스트네임 정보를 바로 확인할 때 유용합니다.

less 명령어 : 긴 파일 내용을 한 화면씩 나눠서 확인합니다.

사용법: less [파일명]

  • less /var/log/syslog : 긴 로그 파일을 페이지 단위로 확인합니다.

예시:

less /var/log/syslog

설명: 이 명령어는 큰 로그 파일을 스크롤하면서 볼 때 유용합니다.

nano 명령어 : 터미널에서 간단하게 파일을 편집합니다.

사용법: nano [파일명]

  • nano test.txt : 파일을 열어서 편집합니다.

예시:

nano notes.txt

설명: 이 명령어는 초보자가 텍스트 파일을 빠르게 수정할 때 적합합니다.

vim 명령어 : 강력한 텍스트 편집기로 파일을 편집합니다.

사용법: vim [파일명]

  • vim test.txt : 파일을 vim으로 엽니다.

예시:

vim /etc/hosts

설명: 이 명령어는 서버 설정 파일을 수정할 때 자주 사용되며, 익숙해지면 매우 강력합니다.

uname 명령어 : 시스템 커널과 운영체제 정보를 확인합니다.

사용법: uname [옵션]

  • uname : 커널 이름을 출력합니다.
  • uname -a : 커널, 아키텍처 등 전체 정보를 출력합니다.

예시:

uname -a

설명: 이 명령어는 현재 시스템의 커널 버전과 아키텍처를 빠르게 확인할 때 유용합니다.

df 명령어 : 파일 시스템별 디스크 사용량을 확인합니다.

사용법: df [옵션]

  • df : 기본 형식으로 디스크 사용량을 보여줍니다.
  • df -h : 사람이 읽기 쉬운 형식으로 출력합니다.

예시:

df -h

설명: 이 명령어는 현재 시스템의 디스크 사용량과 남은 공간을 확인할 때 자주 사용됩니다.

du 명령어 : 특정 디렉토리 또는 파일의 디스크 사용량을 확인합니다.

사용법: du [옵션] [경로]

  • du : 현재 디렉토리의 디스크 사용량을 표시합니다.
  • du -h : 사람이 읽기 쉬운 형식으로 출력합니다.
  • du -sh : 요약된 형태로 전체 사용량을 표시합니다.

예시:

du -sh /var/log

설명: 이 명령어는 /var/log 디렉토리의 전체 디스크 사용량을 요약하여 출력합니다.

top 명령어 : 실행 중인 프로세스와 시스템 자원 사용 현황을 실시간으로 보여줍니다.

사용법: top

  • top : CPU, 메모리, 프로세스 상태를 실시간으로 표시합니다.

예시:

top

설명: 이 명령어는 현재 어떤 프로세스가 시스템 자원을 많이 사용하고 있는지 확인할 때 유용합니다.

htop 명령어 : top보다 보기 쉬운 인터페이스로 시스템 상태를 확인합니다.

사용법: htop

  • htop : 컬러 인터페이스로 CPU, 메모리, 프로세스를 보여줍니다.

예시:

htop

설명: 이 명령어는 자원 사용량을 직관적으로 확인하고 프로세스를 관리할 때 편리합니다.

3. 사용자 및 그룹 관리

리눅스는 멀티유저 시스템이라 사용자와 그룹, 권한 개념이 매우 중요하다. 이 부분을 이해해야 보안, 서버 운영, 협업 환경 설정까지 자연스럽게 이어진다.

사용자와 그룹의 개념

  • 사용자(User): 시스템에 로그인하거나 작업을 수행하는 계정
  • 그룹(Group): 여러 사용자에게 권한을 묶어서 부여하기 위한 단위

리눅스에서는 파일마다 소유자와 그룹이 설정된다.

사용자 관리 명령어

sudo useradd -m testuser
sudo passwd testuser
sudo usermod -aG sudo testuser
sudo userdel -r testuser

자주 하는 작업은 다음과 같다.

  • 사용자 생성
  • 비밀번호 변경
  • 보조 그룹 추가
  • 사용자 삭제

그룹 관리 명령어

sudo groupadd developers
sudo groupmod -n devteam developers
sudo groupdel devteam

그룹은 여러 사용자에게 동일한 권한을 줄 때 매우 유용하다.

파일 권한 및 소유권

권한은 입문 단계에서 가장 중요한 개념 중 하나다.

ls -l
chmod 644 file.txt
chmod 755 script.sh
chown user:user file.txt
chgrp developers file.txt

기본 개념:

  • r = 읽기
  • w = 쓰기
  • x = 실행

권한이 익숙해지면 왜 어떤 파일은 실행되고 어떤 파일은 거부되는지 자연스럽게 이해하게 된다.

sudo 권한 관리

리눅스에서는 관리자 권한 작업을 할 때 sudo를 사용한다.

sudo apt install nginx
sudo systemctl restart ssh

실무에서는 root 계정을 직접 쓰기보다 sudo를 통한 권한 상승 방식이 훨씬 일반적이고 안전하다.

4. 기본 네트워크 설정

리눅스를 단순 로컬 OS가 아니라 서버로 쓰려면 네트워크를 반드시 이해해야 한다.

IP 주소와 호스트네임

내 시스템의 IP와 호스트네임을 확인하는 것부터 시작하면 된다.

hostname
hostname -I
ip addr

이 정보는 원격 접속, 방화벽 설정, 서비스 바인딩에서 자주 필요하다.

네트워크 인터페이스 관리

예전에는 ifconfig를 많이 썼지만, 요즘은 ip 명령어가 더 표준적이다.

ifconfig
ip addr
ip route

입문 단계에서는 다음 정도를 구분하면 충분하다.

  • 내 IP가 무엇인지
  • 기본 게이트웨이가 무엇인지
  • 네트워크 인터페이스 이름이 무엇인지

SSH를 통한 원격 접속

리눅스 서버를 다룬다면 SSH는 거의 필수다.

ssh user@server-ip

처음에는 로컬 가상 머신에 SSH 접속해보는 것만으로도 좋은 연습이 된다.

추가로 익혀두면 좋은 것:

  • 공개키 기반 로그인
  • SSH 설정 파일
  • 원격 서버 파일 전송 (scp, rsync)

입문 단계에서 꼭 해볼 실습

이론만 보면 금방 잊어버리기 때문에, 아래 실습을 직접 해보는 걸 추천한다.

  1. Ubuntu 가상 머신 설치하기
  2. 업데이트 후 기본 패키지 설치하기
  3. 디렉토리 만들고 파일 복사/이동/삭제해보기
  4. 사용자 하나 새로 만들고 sudo 그룹에 넣어보기
  5. 파일 권한을 바꿔보고 동작 차이 확인하기
  6. ip addr, hostname -I로 네트워크 정보 확인하기
  7. SSH 서버 설치 후 원격 접속 테스트해보기

마무리

리눅스 입문 단계에서 가장 중요한 건 “많이 아는 것”보다 “자주 다루는 것”이다. 설치, 명령어, 권한, 네트워크 이 네 가지를 자연스럽게 다룰 수 있게 되면 그 다음부터는 중급 주제로 넘어가기가 훨씬 쉬워진다.

리눅스를 처음 공부한다면, 이번 글의 범위를 완전히 익힌 뒤에 파일 시스템 심화, 서비스 관리, 로그 분석 같은 중급 과정으로 넘어가는 걸 추천한다.


시리즈 이동