유닉스(UNIX) 계열 운영체제 개념
리눅스 커널의 역사와 리누스 토르발스
오픈 소스(Open Source) 철학과 GPL 라이선스
데비안(Debian), 우분투(Ubuntu), 페도라(Fedora), CentOS/AlmaLinux/RockyLinux, 오픈수세(OpenSUSE) 등
서버용/데스크톱용 배포판의 차이
서버/개발 환경에서의 활용성
자유도와 높은 커스터마이징 가능성
보안 및 네트워킹 학습에 유용
시스템 요구사항: CPU, 메모리, 디스크 용량 등
부팅 디스크(USB/DVD) 제작 방법 (Rufus, Etcher 등 툴 사용)
설치 마법사(Installer)에서 파티션 설정(표준 파티션 / LVM / EFI 파티션)
루트 파티션, 홈 파티션, 스왑 파티션 구성 원리
사용자 계정 생성 및 호스트 이름 설정
패키지 업데이트(apt, dnf, yum 등)
기본 유틸리티 설치(curl, wget, git 등)
드라이버/그래픽 설정 (NVIDIA, AMD 그래픽 카드 등)
커널의 역할: 하드웨어 자원 관리
셸의 종류: Bash, Zsh, Dash 등
셸의 기본 동작 원리
루트 디렉터리(/)와 주요 디렉터리(/bin, /etc, /home, /var 등)의 역할
절대 경로와 상대 경로 개념
CLI와 GUI의 차이
터미널 에뮬레이터(gnome-terminal, konsole, xterm 등)
ls, cd, pwd, mkdir, rmdir, touch, cp, mv, rm
ls -l, ls -a 등 옵션 활용
cat, less, more, head, tail, grep, wc
chmod, chown, chgrp
퍼미션의 구성(읽기 r, 쓰기 w, 실행 x)과 옥텟 표기법(755, 644 등)
find, locate, which, whereis
ps, top, htop, kill, jobs, bg, fg
& 기호를 활용한 백그라운드 실행
clear, history, alias, man, sudo, su 등
설치 여부 확인 및 설치 방법
기본 단축키(Ctrl+O 저장, Ctrl+X 종료 등)
일반 모드(Normal) / 입력 모드(Insert) / 명령 모드(Command) 개념
기본 명령(i, :wq, :q!)
조금 더 나아간 명령(yank, delete, visual mode 등)
Emacs, VSCode(리눅스 버전), Neovim 등
/etc/passwd, /etc/shadow 파일 구조
useradd, userdel, passwd 명령어
/etc/group 파일 구조
groupadd, groupdel, usermod -G
sudoers 파일과 visudo 명령어
wheel 그룹(또는 sudo 그룹) 활용 방법
리포지토리(Repository) 구조와 의존성(Dependency)
apt-get, apt-cache, apt 명령어 사용법
패키지 설치, 제거, 업데이트, 업그레이드
dnf, yum 명령어 사용법
패키지 설치, 제거, 업데이트, 업그레이드
snap, flatpak 등
tar, gzip, bzip2 등 압축 해제 명령어
configure, make, make install 기본 흐름
fdisk, parted, gparted 등 도구 활용
MBR vs GPT
ext4, xfs, btrfs, zfs 등
파일 시스템 생성(mkfs), 마운트(mount), 언마운트(umount)
물리 볼륨(PV), 볼륨 그룹(VG), 논리 볼륨(LV) 개념
lvextend, lvreduce, lvresize 사용법
fsck, xfs_repair 등
PID, PPID, 포크(fork)와 exec 개념
프로세스 상태(R, S, D, Z 등)
System V init 방식과 systemd 차이
systemctl 명령어(시작, 중지, 재시작, 상태 확인)
BIOS/UEFI -> 부트로더(GRUB) -> 커널 -> systemd -> 로그인
runlevel / target 개념
IPv4, IPv6 개요
네트워크/호스트 부분 이해
ifconfig, ip, nmcli 명령어
static / DHCP 설정 방법
/etc/network/interfaces 또는 /etc/sysconfig/network-scripts/ifcfg-*
/etc/hosts 파일
DNS 동작 원리
dig, nslookup 명령어
ping, traceroute, netstat, ss, nmap 등
iptables, nftables, firewalld
인바운드/아웃바운드 규칙, 포트 열기/닫기
SSH 기본 설정(/etc/ssh/sshd_config)
공개키/개인키(Public/Private key) 인증
포트 변경, 루트 로그인 제한 등의 보안 강화
비밀번호 정책
계정 잠금/해제 관리
Security-Enhanced Linux(SELinux)의 모드 (enforcing, permissive, disabled)
파일 컨텍스트, 정책 관리
/var/log 디렉터리 구조
syslog, rsyslog, journald
journalctl 명령어 사용법
top/htop, iostat, vmstat, mpstat 등
sar, dstat, glances 등 외부 툴
CPU, 메모리, 디스크 사용량 체크
df, du 명령어로 디스크 사용량 측정
#!/bin/bash 해석
스크립트 실행권한 부여(chmod +x)
변수, 조건문(if, case), 반복문(for, while)
표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)
, >>, 2>, |(파이프) 활용
로그 자동 압축 스크립트
디스크 모니터링 및 알림 스크립트
시스템 크론과 사용자 크론
/etc/crontab, /etc/cron.* 디렉터리 구조
분/시/일/월/요일 형식
간단한 예제 작성과 실행 확인
백업 스크립트 주기 실행
로그 정리 자동화
하이퍼바이저의 개념 (KVM, VMware, VirtualBox 등)
libvirt, virt-manager를 이용한 KVM 설정
이미지(Image)와 컨테이너(Container) 개념
Dockerfile을 이용한 이미지 빌드
docker-compose를 이용한 멀티 컨테이너 구성
쿠버네티스(Kubernetes) 간단 소개
아파치(Apache) 또는 엔진엑스(Nginx) 설치 및 설정
가상 호스팅, SSL 인증서(HTTPS) 설정
MySQL/MariaDB, PostgreSQL 기본 설정
사용자/DB 생성, 백업/복원
vsftpd, ProFTPD 설치 및 설정
SFTP 설정 및 보안 강화
Windows와 리눅스 간 파일 공유
내부 네트워크 파일시스템 구성을 위한 NFS 설정
전체 백업, 증분 백업, 차등 백업
rsync, tar, dump 등 툴 활용
crontab과 결합한 백업 스크립트 작성
백업 파일의 관리(압축, 버전 관리 등)
복원 시 주의사항
GRUB 부트 로더 복구 등
로그 확인( journalctl, /var/log )
에러 메시지 분석, 구글/커뮤니티 검색 요령
리눅스 공식 문서( man 페이지, distro 위키 )
Stack Overflow, Reddit, 우분투 포럼 등
보안 패치 적용, 최신 버전 추적
신기술(컨테이너, 클라우드, DevOps 등) 학습 경로
Ctrl + C, Ctrl + D, Ctrl + Z
Bash에서의 명령어 편집 단축키(Ctrl + A, Ctrl + E 등)
/etc/profile, ~/.bashrc, ~/.bash_profile
PATH, LANG, PS1 등
gzip, bzip2, zip, tar 명령어 활용
다양한 압축 포맷(.tar.gz, .tar.bz2, .zip 등)