리눅스 개요 및 실습 환경 소개
1. 리눅스 개요
- 리눅스 = 무료 유닉스
- 1991년 8월: 리누스 토르발스가 리눅스 커널 0.01버전 최초 작성
- 1992년: 0.02버전 소스코드 공개 → 리눅스의 탄생
- 리눅스 구조 (안쪽부터): 하드웨어 → 커널 → 셸 → 응용프로그램
- 커널 = 엄격한 의미의 리눅스
- 셸 = 명령어 해석기 (bash, csh 등)
- 응용프로그램 = 에디터, 통신 프로그램, X윈도, 웹서버, DB서버
2. GNU 프로젝트
- 1984년 리처드 스톨먼에 의해 시작
- 목표: ‘모두가 공유할 수 있는 소프트웨어’를 만드는 것
- 1985년 자유 소프트웨어 재단(FSF) 설립
- GPL 라이선스의 자유:
- 소프트웨어의 사용, 수정, 재배포의 자유
- 수정된 소프트웨어의 이익을 전체가 얻을 수 있도록 배포할 수 있는 자유
3. 커널(Kernel)
- 정의: 하드웨어 장치의 지원 여부 정보, 하드웨어 성능, 하드웨어를 제어하는 코드
- 오픈 소스: https://www.kernel.org/ 에서 무료 다운로드
- 커널 버전 체계:
- 2.x: 홀수 버전 = 개발 버전, 짝수 버전 = 안정 버전
- 3.x 이후: 업그레이드만 의미
- 커널 버전 변천사: 0.01(1991) → 1.0(1994) → 2.0(1996) → 3.0(2011) → 4.0(2015) → 5.0(2019) → 6.0(2022)
4. 페도라 리눅스 소개
- 레드햇(Redhat) 리눅스: 현재는 상용 RHEL(Red Hat Enterprise Linux)만 출시
- 페도라(Fedora) 리눅스: 무료 배포, RHEL에 포함될 새 기술 시험 용도
- Fedora 28은 RHEL 8의 기반 (GNOME 3.28, Kernel 4.16)
- 변천사:
- 1994년: Red Hat Linux 1.0
- 2003년 10월: Red Hat Enterprise Linux 3
- 2003년 11월: Fedora Core 1 (Red Hat Linux 9.0과 거의 동일)
- 2018년 5월: Fedora 28
- 2019년 5월: RHEL 8 (Fedora 28 기반)
5. 가상머신 개념
- 가상머신: Windows를 그대로 사용하면서 여러 대의 리눅스 서버를 운영하는 효과를 내는 프로그램
- 가상머신 소프트웨어: 호스트 OS 안에 가상의 컴퓨터를 만들어 게스트 OS를 설치/운영하는 소프트웨어
- VMware Workstation Pro vs Player 비교:
| 구분 | Pro | Player |
|---|---|---|
| 라이선스 | 유료 | 유료 또는 무료 |
| 스냅숏 기능 | O | X |
| 가상 네트워크 설정 | O | X |
| 가상머신 생성 | O | O |
리눅스 설치 1
1. VMware 설치 및 가상머신 생성
- 생성할 가상머신 4대 사양:
| 구분 | Server | Server(B) | Client | WinClient |
|---|---|---|---|---|
| 주 용도 | 서버 전용 | 서버 전용(텍스트) | 클라이언트 전용 | Windows 클라이언트 |
| Guest OS | Fedora-64bit | Fedora-64bit | Fedora-64bit | Windows 10 |
| 설치 ISO | Fedora Workstation | Fedora Server | Fedora Xfce | Windows 10 평가판 |
| 하드 용량 | 80GB | 40GB | 40GB | 60GB |
| 메모리 | 2GB | 설치시 2GB → 512MB | 설치시 2GB → 1.5GB | 설치시 2GB → 1.5GB |
| 네트워크 | NAT | NAT | NAT | NAT |
2. VMware의 특징
- 1대의 컴퓨터만으로 실무와 거의 비슷한 네트워크 환경 구성 가능
- 스냅숏(Snapshot) 기능: 운영체제의 특정 시점을 저장하여 언제든지 되돌릴 수 있음
- 하드웨어를 마음대로 여러 개 장착해서 테스트 가능
- 현재 PC 상태를 저장해 놓고 다음에 이어서 구동 가능
3. 네트워크 설정 (Virtual Network Editor)
| 구분 | Server | Server(B) | Client | WinClient |
|---|---|---|---|---|
| IP 주소 | 192.168.111.100(고정) | 192.168.111.200(고정) | 자동(DHCP) | 자동(DHCP) |
| 서브넷 마스크 | 255.255.255.0 | 255.255.255.0 | 자동 | 자동 |
| 게이트웨이 | 192.168.111.2 | 192.168.111.2 | 자동 | 자동 |
| DNS 서버 | 192.168.111.2 | 192.168.111.2 | 자동 | 자동 |
- 네트워크 구조: 호스트 OS(192.168.111.1) → 가상 라우터/게이트웨이 겸 DNS(192.168.111.2) → DHCP 서버(192.168.111.254)
4. Server 설치 후 기본 설정
- 한국어 언어 설정
- 해상도 설정 및 화면 잠금 끄기
- 자동 업데이트 기능 끄기
- dnf 설정
- IP 설정 (192.168.111.100)
- SELinux 기능 끄기
- Firefox 업그레이드
리눅스 설치 2
1. Server(B) 설치
- Fedora 28 Server (64bit) - 텍스트 모드
- IP: 192.168.111.200
- 설치 후: dnf 설정, 자동 업데이트 끄기, SELinux 끄기, 해상도 설정
2. Client 설치
- Fedora 28 Xfce (64bit)
- 설치 후 기본설정: 사용자 계정 fedora 접속, 해상도/화면잠금 끄기, 자동 업데이트 끄기, dnf 설정, 한글 설정, Firefox 업데이트
3. WinClient 설치
- Windows 10 Enterprise 평가판 (90일 사용)
- 설치 후: VMware Tools 설치 (Player > Manage > Install VMware Tools)
Linux 개념과 기본 명령어 1
1. 시작과 종료
| 동작 | 명령어 |
|---|---|
| 시스템 종료 | poweroff, shutdown -P now, halt -p, init 0 |
| 시스템 재부팅 | shutdown -r now, reboot, init 6 |
| 로그아웃 | logout, exit |
2. 가상 콘솔
- Fedora는 총 6개의 가상 콘솔 제공
- Ctrl + Alt + F1 ~ F6 (Ctrl + Alt + F2는 X윈도우 모드)
- 2~6번째 가상 콘솔은 텍스트 모드 제공
3. 런 레벨 (Run Level)
| 런레벨 | 영문 모드 | 설명 |
|---|---|---|
| 0 | Power Off | 종료 모드 |
| 1 | Rescue | 시스템 복구 모드 (단일 사용자 모드) |
| 2 | Multi-User | 사용하지 않음 |
| 3 | Multi-User | 텍스트 모드의 다중 사용자 모드 |
| 4 | Multi-User | 사용하지 않음 |
| 5 | Graphical | 그래픽 모드의 다중 사용자 모드 |
| 6 | Reboot | 재부팅 |
- 런 레벨 확인:
/lib/systemd/system디렉터리의runlevel?.target파일 - 런 레벨 변경:
/etc/systemd/system/default.target파일 확인- graphical.target = 런레벨 5, multi-user.target = 런레벨 3
4. 자동 완성과 히스토리
- 자동 완성: 파일 이름 일부 입력 후 [Tab] 키
- 도스 키: 이전 명령을 [상/하 화살표]로 다시 나타냄
- history 명령어: 이전에 입력한 모든 명령어 목록 출력
5. vi 에디터
vi 에디터 3가지 모드:
- 명령 모드 (vi 실행 시 기본 모드)
- 입력 모드 (i 또는 a로 전환, Esc로 명령모드 복귀)
- ex 모드 (라인 명령 모드) (콜론
:으로 전환 → 저장(w), 종료(q), 취소(!) 등)
명령모드 → 입력모드 전환 키:
| 키 | 설명 |
|---|---|
| i | 현재 커서 위치부터 입력 |
| a | 현재 커서 다음 칸부터 입력 |
| o | 현재 커서 다음 줄에 입력 |
| s | 현재 커서 위치의 한 글자를 지우고 입력 |
| I | 현재 줄의 맨 앞에서부터 입력 |
| A | 현재 줄의 맨 마지막부터 입력 |
| O | 현재 커서의 이전 줄에 입력 |
| S | 현재 줄을 지우고 입력 |
명령모드 커서 이동:
| 키 | 설명 |
|---|---|
| h, j, k, l | 좌, 하, 상, 우 이동 |
| Ctrl+F / Ctrl+B | 다음/이전 화면 이동 |
| ^ / $ | 현재 행의 처음/마지막 이동 |
| gg / G | 첫 행/끝 행 이동 |
| 숫자G | 해당 숫자의 행으로 이동 |
삭제, 복사, 붙여넣기:
| 키 | 설명 |
|---|---|
| x | 현재 커서의 글자 삭제 (Del) |
| X | 현재 커서 앞 글자 삭제 (Backspace) |
| dd | 현재 행 삭제 |
| 숫자dd | 현재 커서부터 숫자만큼 행 삭제 |
| yy | 현재 행 복사 |
| 숫자yy | 현재 커서부터 숫자만큼 행 복사 |
| p | 복사한 내용을 현재 행 이후에 붙여넣기 |
| P | 복사한 내용을 현재 행 이전에 붙여넣기 |
문자열 검색:
- /문자열Enter: 해당 문자열 검색 (현재 커서 이후로)
- n: 찾은 문자 중에서 다음 문자로 이동
vi 비정상 종료 시 조치: 해당 스왑 파일(.swp)을 삭제
6. 도움말 사용법
man 명령어(예:man ls)
7. 마운트와 CD/DVD/USB 활용
- 마운트: 리눅스 시스템과 하드디스크/CD/DVD 등을 연결하는 과정
mount명령어 사용
8. 리눅스 기본 명령어
| 명령어 | 설명 |
|---|---|
| ls | 디렉터리 내용 출력 (Windows의 dir) |
| cd | 디렉터리 이동 |
| pwd | 현재 디렉터리의 전체 경로 출력 |
| rm | 파일이나 디렉터리 삭제 |
| cp | 파일이나 디렉터리 복사 |
| touch | 크기가 0인 새 파일 생성, 파일 존재 시 최종 수정 시간 변경 |
| mv | 파일/디렉터리 이름 변경 또는 이동 |
| mkdir | 새로운 디렉터리 생성 |
| rmdir | 디렉터리 삭제 |
| cat | 파일 내용 화면 출력 |
| head, tail | 파일의 앞/뒤 10행 출력 |
| more | 파일을 페이지 단위로 화면 출력 |
| less | more의 확장 기능 |
| file | 파일 종류 표시 |
| clear | 터미널 화면 지우기 |
Linux 개념과 기본 명령어 2
1. 사용자 관리
- 리눅스는 다중 사용자 시스템 (1대의 리눅스에 여러 명 동시 접속)
- root 계정(슈퍼유저): 시스템의 모든 작업을 실행할 수 있는 권한
주요 관련 파일:
| 파일 | 설명 | 형식 |
|---|---|---|
| /etc/passwd | 모든 사용자 계정 정보 | 사용자이름:암호:사용자ID:그룹ID:전체이름:홈디렉터리:기본셸 |
| /etc/shadow | 계정 비밀번호 저장 파일 | |
| /etc/group | 사용자 그룹 정의 파일 | 그룹이름:비밀번호:그룹ID:그룹에 속한 사용자이름 |
사용자/그룹 관리 명령어:
| 명령어 | 설명 |
|---|---|
| useradd (또는 adduser) | 새로운 사용자 계정 추가 |
| passwd | 사용자 비밀번호 지정/변경 |
| usermod | 사용자 속성 변경 |
| userdel | 사용자 삭제 |
| chage | 사용자 암호를 주기적으로 변경하도록 설정 |
| groups | 사용자가 속한 그룹 출력 |
| groupadd | 새로운 그룹 생성 |
| groupmod | 그룹 속성 변경 |
| groupdel | 그룹 삭제 |
| gpasswd | 그룹 암호 설정, 그룹 관리 수행 |
2. 파일 속성
파일 리스트와 속성 (ls -l 출력 해석):
-rw-r--r-- 1 root root 0 2월 1 12:42 sample.txt- 파일유형:
d= 디렉터리,-= 일반 파일 - 파일허가권: 3개씩 끊어서 인식 (소유자/그룹/기타)
r= read(4),w= write(2),x= execute(1)- 8진수 표기 예:
rw-r--r--= 644
- 링크수
- 파일소유자이름
- 파일소유 그룹이름
- 파일크기(Byte)
- 마지막 변경 날짜/시간
- 파일이름
허가권/소유권 관련 명령어:
| 명령어 | 설명 |
|---|---|
| chmod | 파일 허가권 변경 (예: chmod 777 test) |
| chown | 파일 소유권 변경 (소유자) |
| chgrp | 파일 소유권 변경 (그룹) |
3. 링크
| 구분 | 하드 링크 | 심볼릭 링크 |
|---|---|---|
| 명령어 | ln 링크대상파일이름 링크파일이름 | ln -s 링크대상파일이름 링크파일이름 |
| inode | 원본과 같은 inode 공유 | 새로운 inode 생성 |
| 데이터 | 원본 파일 데이터를 직접 가리킴 | 원본 파일 포인터와 연결 |
| 원본 삭제 시 | 데이터 유지 | 데이터 접근 불가 |
4. 프로그램 설치를 위한 RPM
- RPM = Redhat Package Manager
- 파일 형식:
패키지이름_버전-릴리스번호.Fedora버전.아키텍처.rpm
RPM 주요 옵션:
| 동작 | 명령어 |
|---|---|
| 설치 | rpm -Uvh 패키지파일이름.rpm |
| 삭제 | rpm -e 패키지이름 |
| 설치 확인 | rpm -qa 패키지이름 |
| 설치파일이 어느 패키지인지 | rpm -qf 파일절대경로 |
| 패키지에 포함된 파일 확인 | rpm -ql 패키지이름 |
| 패키지 상세 정보 | rpm -qi 패키지이름 |
| 미설치 rpm 파일 조회 | rpm -qlp 패키지파일이름.rpm |
- RPM의 단점: 의존성 문제 (예: X윈도 없이 파이어폭스 설치 불가)
5. 편리하게 패키지를 설치하는 DNF
- DNF = rpm 명령의 의존성 문제를 해결하는 명령어
- 특정 패키지 설치 시 의존성이 있는 다른 패키지를 먼저 설치
- 설정 파일 위치:
/etc/yum.repos.d/
DNF 기본 사용법:
| 동작 | 명령어 |
|---|---|
| 기본 설치 | dnf -y install 패키지이름 |
| rpm 파일 설치 | dnf install rpm파일이름.rpm |
| 업데이트 목록 보기 | dnf check-update |
| 업데이트 | dnf update 패키지이름 |
| 삭제 | dnf remove 패키지이름 |
| 정보 확인 | dnf info 패키지이름 |
DNF 고급 사용법:
| 동작 | 명령어 |
|---|---|
| 패키지 그룹 설치 | dnf groupinstall "패키지그룹이름" |
| 패키지 리스트 확인 | dnf list 패키지이름 |
| 특정 파일 속한 패키지 | dnf provides 파일이름 |
| GPG 키 검사 생략 | dnf install --nogpgcheck rpm파일이름.rpm |
| 저장소 목록 지우기 | dnf clean all |
DNF 설정 파일 (/etc/yum.repos.d/):
fedora.repo: Fedora 28 패키지 저장소 인터넷 주소fedora-updates.repo: 업데이트 패키지 위치fedora-updates-testing.repo: 미완성된 테스트용 패키지 위치
Linux 개념과 기본 명령어 3
1. 파일 압축과 묶기
파일 압축:
- 확장명: xz, bz2, gz, zip, Z 등
- xz나 bz2 압축률이 더 좋음
- 리눅스에서는 ‘파일 압축’과 ‘파일 묶기’는 원칙적으로 별개의 프로그램으로 수행
압축 관련 명령:
| 명령어 | 설명 |
|---|---|
| xz | 확장명 .xz로 압축/해제 |
| bzip2 | 확장명 .bz2로 압축/해제 |
| gzip | 확장명 .gz로 압축/해제 |
| zip/unzip | 확장명 .zip으로 압축/해제 |
파일 묶기 명령(tar):
tar: 확장명 .tar로 묶음 파일을 만들거나 풀기- 동작: c(묶기), x(풀기), t(경로확인)
- 옵션: f(파일, 필수), v(과정보이기), J(tar+xz), z(tar+gzip), j(tar+bzip2)
- 사용 예:
tar cvf my.tar /etc/systemd/→ 묶기tar cvfJ my.tar.xz /etc/systemd/→ 묶기 + xz 압축tar xvf my.tar→ tar 풀기tar xvfJ my.tar.xz→ xz 압축 해제 + tar 풀기
2. 파일 위치 검색
| 명령어 | 설명 |
|---|---|
| find [경로] [옵션] [조건] [action] | 기본 파일 찾기 |
| which | PATH에 설정된 디렉터리만 검색 |
| locate | 파일 목록 데이터베이스에서 검색 |
- find 옵션: -name, -user(소유자), -newer(전,후), -perm(허가권), -size(크기)
- find action: -print(디폴트), -exec(외부명령 실행)
- 예:
find /home -name "*.swp" -exec rm {} \;
3. 시스템 설정
| 설정 항목 | 명령어/방법 |
|---|---|
| 네트워크 설정 | nmtui 명령어 |
| 방화벽 설정 | firewall-config 명령어 |
| 서비스(데몬) 설정 | ntsysv 명령어 |
4. CRON과 AT
CRON (주기적 반복 작업):
- 관련 데몬: crond, 관련 파일: /etc/crontab
- 형식:
분 시 일 월 요일 사용자 실행명령 - 예:
00 05 1 * * root cp -r /home /backup(매월 1일 05시에 /home 백업) - 하위 디렉터리:
/etc/cron.hourly/,/etc/cron.daily/,/etc/cron.weekly/,/etc/cron.monthly/
AT (일회성 작업 예약):
- 예약:
at 시간(예:at 3:00am tomorrow) - 완료:
Ctrl + D - 확인:
at -l - 취소:
atrm 작업번호
5. 네트워크 관련 필수 개념
| 개념 | 설명 |
|---|---|
| TCP/IP | 통신 전송/수신을 다루는 TCP, 데이터 통신을 다루는 IP |
| 프로토콜 | 컴퓨터끼리 네트워크상으로 의사소통을 하는 약속 |
| 호스트 이름 | 각각의 컴퓨터에 지정된 이름 |
| 도메인 이름 | hanbit.co.kr과 같은 형식 |
| IP 주소 | 랜카드에 부여되는 유일한 주소, 4바이트, 각 자리 0~255 |
| 네트워크 주소 | 같은 네트워크에 속해 있는 공통 주소 |
| 브로드캐스트 주소 | 내부 네트워크 모든 컴퓨터 수신 주소, 끝자리 255 (C클래스) |
| 게이트웨이/라우터 | 네트워크 간 데이터 전송 장비, VMware는 192.168.111.2 |
| 넷마스크 | 네트워크 규모 결정 (예: 255.255.255.0 = C클래스) |
| DNS 서버 | URL을 IP주소로 변환, 설정 파일: /etc/resolv.conf |
6. 네트워크 장치 및 명령어
- Fedora 28은 네트워크 장치 이름을 ensOOO으로 인식
| 명령어 | 설명 |
|---|---|
ifconfig ensOOO | 네트워크 설정 정보 출력 |
ifup ensOOO | 네트워크 장치 가동 |
ifdown ensOOO | 네트워크 장치 정지 |
| nmtui | 네트워크 관련 대부분의 작업 |
| nslookup | DNS 서버 테스트 |
| ping IP주소 또는 URL | 네트워크 응답 테스트 |
systemctl <start/stop/restart/status> network→ 네트워크 설정 변경 후 적용
7. 네트워크 설정 관련 주요 파일
| 파일 | 설명 |
|---|---|
/etc/sysconfig/network | 네트워크 기본 정보 설정 파일 |
/etc/sysconfig/network-scripts/ifcfg-ensOOO | 장치 네트워크 정보 설정 파일 |
/etc/resolv.conf | DNS 서버 정보, 호스트 이름 |
/etc/hosts | 호스트 이름과 FQDN |
8. SELinux
- 보안에 취약한 리눅스를 보호하기 위해 탄생
- 시스템에서 보안에 영향을 미치는 서비스, 권한 등을 제어
- 설정 파일:
/etc/sysconfig/selinux - 3가지 모드: enforcing(강제), permissive(허용), disabled(비활성)
9. 파이프, 필터, 리디렉션
| 개념 | 설명 |
|---|---|
| 파이프(pipe) | 두 개의 프로그램을 연결, | 문자 사용 |
| 필터(filter) | 필요한 것만 걸러 주는 명령어 (grep, tail, wc, sort, awk, sed 등) |
| 리디렉션(redirection) | 표준 입출력의 방향을 바꿈 |
10. 프로세스, 데몬, 서비스
- 프로세스: 하드디스크에 저장된 실행코드가 메모리에 로딩되어 활성화된 것
- 포그라운드 프로세스: 화면에 나타나 사용자와 상호작용
- 백그라운드 프로세스: 화면에 나타나지 않고 실행 (백신, 서버 데몬 등)
- 프로세스 번호: 각 프로세스에 할당된 고유번호
- 작업 번호: 현재 실행 중인 백그라운드 프로세스의 순차 번호
- 부모/자식 프로세스: 부모를 kill하면 자식도 자동 kill
프로세스 관련 명령:
| 명령어 | 설명 |
|---|---|
| ps | 현재 프로세스 상태 확인 |
ps -ef | grep <프로세스이름> | 주로 사용하는 형태 |
| kill | 프로세스 강제 종료 |
kill -9 <프로세스번호> | 강제 종료 |
| pstree | 부모/자식 프로세스 관계를 트리로 표시 |
| jobs | 백그라운드 작업 목록 확인 |
| fg 작업번호 | 백그라운드 → 포그라운드 전환 |
- 데몬(Daemon) = 서비스 = 서버 프로세스 (웹서버, 네임서버, DB서버 등)
- 시스템에서 동작 중인 백그라운드 프로세스의 일종
11. 서비스와 소켓
| 구분 | 서비스 | 소켓 |
|---|---|---|
| 특징 | 평상시에도 늘 가동 | 필요할 때만 작동 |
| 관리 | systemctl <start/stop/restart> 서비스이름 | systemd로 관리, 요청 끝나면 종료 |
| 파일 위치 | /usr/lib/systemd/system/서비스이름.service | /usr/lib/systemd/system/소켓이름.socket |
| 자동실행 확인 | systemctl list-unit-files | |
| 특이사항 | 시스템과 독자적으로 구동 | 서비스보다 처음 연결 시간이 오래걸림 |
12. GRUB 부트로더
- Fedora 부팅 시 처음 나오는 선택화면
- 특징: 부트 정보 임의 변경 부팅 가능, 다른 운영체제와 멀티 부팅 지원, 대화형 설정 가능
- GRUB2의 장점: 셸 스크립트 지원, 동적 모듈 로드, 그래픽 부트 메뉴, ISO 이미지로 부팅 가능
- 설정 파일:
/boot/grub2/grub.cfg,/etc/grub2.cfg(링크),/etc/default/grub - 설정 변경:
/etc/default/grub수정 후grub2-mkconfig -o /boot/grub2/grub.cfg
/etc/default/grub 주요 설정:
| 항목 | 설명 |
|---|---|
| GRUB_TIMEOUT=5 | 부팅 대기 시간(초) |
| GRUB_DEFAULT=saved | 기본 부팅 항목 |
| GRUB_DISABLE_SUBMENU=true | 서브메뉴 비활성 |
| GRUB_TERMINAL_OUTPUT=“console” | 터미널 출력 |
| GRUB_DISABLE_RECOVERY=“true” | 복구 모드 비활성 |
Linux 개념과 기본 명령어 4
1. 응급 복구
- 시스템 부팅이 안 될 경우 진행하는 작업
- root 계정 패스워드 분실 시 응급 복구 과정:
- GRUB 부팅 화면에서
e키로 편집 - linux16 줄 끝에
init=/bin/sh추가 Ctrl+X로 부팅- 셸에서 비밀번호 변경
- GRUB 부팅 화면에서
2. GRUB 부트로더 상세
GRUB 부트로더의 특징:
- 부트 정보를 임의 변경 부팅 가능
- 다른 운영체제와 멀티 부팅 지원
- 대화형 설정으로 커널의 경로와 파일 이름 정보로 부팅 가능
GRUB2의 장점:
- 셸 스크립트 지원으로 조건식과 함수 사용 가능
- 동적 모듈 로드 가능
- 그래픽 부트 메뉴 지원, 부트 스플래시 성능 개선
- ISO 이미지를 이용해 바로 부팅 가능
GRUB2 설정 방법:
/boot/grub2/grub.cfg설정 파일/etc/grub2.cfg링크 파일/etc/default/grub파일과/etc/grub.d/디렉터리 수정 후grub2-mkconfig명령으로 설정 변경
3. 커널 컴파일/업그레이드
커널의 개념:
- 커널 파일:
/boot/vmlinuz-커널버전→ 부팅 시 메모리에 로딩 (꼭 필요한 부분만 포함) - 모듈:
/lib/modules/커널버전/→ 부팅 시 꼭 필요하지 않거나 유동적인 정보, 필요할 때마다 로딩/언로딩
커널 컴파일 정보:
- 현재 커널 버전:
/boot/vmlinuz-4.16.3-301.fc28.x86_64 - 현재 모듈 경로:
/lib/modules/4.16.3-301.fc28.x86_64/
커널 업그레이드 순서 (4.16.12로 업그레이드 예시):
- 현 커널 버전 확인:
uname -r - 커널 소스 다운로드: www.kernel.org →
/usr/src에 다운로드 - 커널 소스 압축 풀기:
tar xvfJ linux-4.16.12.tar.xz→cd linux-4.16.12 - 커널 설정 초기화:
make mrproper - 커널 환경 설정:
make xconfig - 이전 정보 삭제:
make clean - 커널 컴파일 및 설치:
make→make modules_install→make install→ls -l /boot - 부트 로더 확인:
cat /etc/grub2/grub.cfg
NTFS 파일시스템 USB 인식 (커널 컴파일 없이):
- ntfs-3g 다운로드
- 소스 컴파일:
./configure; make; make install - 마운트:
mount -t ntfs-3g USB장치이름 마운트할폴더
시험 대비 핵심 체크리스트
- 리눅스 역사 (리누스 토르발스, GNU, GPL, 커널 버전)
- 가상머신 개념 (호스트OS vs 게스트OS, 스냅숏)
- 런 레벨 (0~6 각각의 의미)
- vi 에디터 키 바인딩 (입력모드 전환, 커서이동, 삭제/복사/붙여넣기)
- 기본 명령어 (ls, cd, pwd, rm, cp, mv, mkdir, cat, head, tail 등)
- 사용자/그룹 관리 (/etc/passwd, /etc/shadow, /etc/group, useradd, passwd 등)
- 파일 허가권 (rwx, 8진수 표기, chmod, chown)
- 하드링크 vs 심볼릭 링크 (inode 공유 여부)
- RPM vs DNF (의존성 문제 해결)
- 파일 압축/묶기 (tar 옵션: cvf, xvf, J, z, j)
- CRON과 AT (crontab 형식: 분 시 일 월 요일)
- 네트워크 개념 (IP, 서브넷마스크, 게이트웨이, DNS)
- 네트워크 명령어 (ifconfig, nmtui, ping, nslookup)
- SELinux 3가지 모드
- 프로세스 관련 (ps, kill, 포그라운드/백그라운드)
- 서비스 vs 소켓 (systemctl)
- GRUB 부트로더 (설정 파일, grub2-mkconfig)
- 커널 컴파일 순서 (uname -r → tar → make mrproper → make xconfig → make clean → make → make modules_install → make install)