암기
</etc/passwd 파일 구조>
사패유지코홈로
사 = 사용자명
패 = 패스워드 (x)
유 = UID
지 = GID
코 = 코멘트
홈 = 홈 디렉터리
로 = 로그인 셸
</etc/fstab 파일 구조>
장마파 옵덤점
장 = 장치명
마 = 마운트 포인트
파 = 파일시스템 타입
옵 = 옵션
덤 = dump
점 = 점검 (fsck)
<소스 컴파일 단계>
콘막막
configure = 설정 (Makefile 생성)
make = 컴파일 (실행파일 생성)
make install = 설치 (시스템에 복사)
<압축률 순서 및 tar 커맨드>
낮음 ←────────────────→ 높음
-Z -z -j -J
compress gzip bzip2 xz
<하드링크 vs 심볼릭 링크>
![]()
<nice, renice>
nice:
nice -n -10 command # NI값 -10으로 시작 (우선순위 높음, root만)
nice -n 10 command # NI값 +10으로 시작 (우선순위 낮음)renice:
renice -n -10 -p PID # NI값을 -10으로 변경
renice -n 10 -p PID # NI값을 10으로 변경
>
# 구형 문법 (시험에 나올 수 있음)
renice 10 PID # NI값을 10으로
renice -10 PID # NI값을 -10으로핵심:
NI값 낮을수록(-20) = 우선순위 높음
NI값 높을수록(+19) = 우선순위 낮음
>
일반 사용자: 높이기(양보)만 가능
root: 둘 다 가능
📋 셸 종류 총정리표
| 셸 | 개발자/배경 | 특징 |
|---|---|---|
| sh (bourne) | 스티브 본 (벨연구소) | 최초의 셸 |
| bash | GNU 프로젝트 | 리눅스 기본 셸 |
| csh | 빌 조이 (버클리) | C 언어 기반 |
| ksh | 데이비드 콘 (AT&T) | sh + csh |
| zsh | Paul Falstad | 확장 기능 |
📋 설정 파일 총정리표
| 서비스 | 설정 파일 | 암기 팁 |
|---|---|---|
| DNS 클라이언트 | /etc/resolv.conf | resolve = DNS 해석 |
| NFS | /etc/exports | export = 내보내기(공유) |
| SAMBA | /etc/samba/smb.conf | SMB 프로토콜 |
| sudo | /etc/sudoers | 복수형 ‘s’ |
| Squid (프록시) | /etc/squid/squid.conf | squid = 프록시 |
| Apache | httpd.conf / apache2.conf | 배포판별 다름 |
| 마운트 | /etc/fstab | FileSystem TABle |
| PAM | /etc/pam.d/ | 디렉터리! |
<데스크톱 환경, 라이브러리>
라이브러리 파일관리자
KDE Qt Dolphin
GNOME GTK+ Nautilus
<디스크 작업 순서>
"파포마점"
1. 파티션 = fdisk (Fixed Disk)
2. 포맷 = mkfs (Make FileSystem)
3. 마운트 = mount
4. 점검 = fsck (FileSystem ChecK)
**<표준화 기구별 대표 표준>
ISO = OSI (글자 순서만 바꿈!)
IEEE = 802.x (네트워크 표준)
EIA = RS-xxx (시리얼/케이블, 물리적)

<크론>
개인용:
crontab -e = 편집
crontab -l = 목록 (현재 사용자만!)
crontab -r = 삭제
crontab -u = 다른 사용자 지정 (root만)
>
시스템용:
/etc/crontab = 시스템 cron 파일
/etc/cron.d/ = 시스템 cron 디렉터리
/etc/cron.daily/ = 매일 실행
/etc/cron.hourly/ = 매시간 실행
📚 X 윈도우 핵심 정리
1️⃣ 구성요소
X 서버 = 화면 출력 (로컬)
X 클라이언트 = 응용 프로그램 (원격 가능)
X 프로토콜 = 통신
2️⃣ 데스크톱 환경 ⭐
| 데스크톱 | 라이브러리 | 파일관리자 | 디스플레이 매니저 |
|---|---|---|---|
| KDE | Qt | Dolphin | KDM/SDDM |
| GNOME | GTK+ | Nautilus | GDM |
| XFCE | GTK+ | Thunar | - |
| LXDE | GTK+ | PCManFM | - |
KDE = Qt = Dolphin = KDM (K-Q-D-K)
GNOME = GTK+ = Nautilus = GDM (G-G-N-G)
3️⃣ 윈도우 매니저
KWin = KDE
Mutter = GNOME
4️⃣ 주요 명령어
| 명령어 | 기능 |
|---|---|
startx | X 윈도우 시작 |
xhost | 원격 접근 제어 |
xauth | 인증 관리 |
xinit | X 서버 + 클라이언트 시작 |
5️⃣ 설정 파일
/etc/X11/xorg.conf = X 서버 설정
~/.xinitrc = startx 실행 스크립트
6️⃣ 런레벨
3 = 텍스트 (multi-user.target)
5 = 그래픽 (graphical.target)
7️⃣ 응용 프로그램 ⭐
| 용도 | 프로그램 |
|---|---|
| 스캐너 | SANE (드라이버), XSANE (GUI) |
| 이미지 편집 | GIMP |
| 벡터 그래픽 | Inkscape |
| 오피스 | LibreOffice |
| PDF 뷰어 | Evince (GNOME), Okular (KDE) |
| 음악 | Rhythmbox (GNOME), Amarok (KDE) |
🎯 기출 암기
화면 출력 = X 서버
KDE = Qt = Dolphin
GNOME = GTK+ = Nautilus
스캐너 = SANE / XSANE
이미지 편집 = GIMP
X 시작 = startx
접근 제어 = xhost
그래픽 모드 = 런레벨 5
기출 1회
🔴 1과목 오답노트 (리눅스 운영 및 관리)
🏷️ 오답 유형 분류
| 유형 | 문제 수 | 해당 문제 |
|---|---|---|
| 명령어 혼동 | 8문제 | 2, 9, 11, 14, 25, 27, 28, 32 |
| 옵션 혼동 | 4문제 | 3, 7, 6, 5 |
| 계산/개념 | 3문제 | 31, 5, 39 |
| 서비스/소프트웨어 | 3문제 | 23, 35, 42 |
⌨️ 유형 1: 명령어 혼동 (8문제)
핵심 문제점: 비슷한 기능의 명령어 구분 실패
❌ 문제 2: df vs du
| 구분 | 내용 |
|---|---|
| 내 답 | ① df -sh /home/ihduser |
| 정답 | ② du -sh /home/ihduser |
혼동 원인:
- df와 du 모두 디스크 관련 명령어라 혼동
- 특정 디렉터리 사용량 확인에 어떤 걸 써야 하는지 불명확
암기법:
df = Disk Free = 파일시스템 "전체" 용량/여유 공간
du = Disk Usage = "특정 디렉터리" 실제 사용량
"특정 디렉터리"가 나오면 = du!
❌ 문제 9: dpkg 완전 제거
| 구분 | 내용 |
|---|---|
| 내 답 | ③ apt-get remove nginx |
| 정답 | ② dpkg -P nginx |
혼동 원인:
- remove와 purge 차이 구분 못함
- dpkg -P 옵션 암기 부족
암기법:
-r (remove) = 패키지만 제거, 설정 파일 유지
-P (Purge) = 설정 파일까지 "완전히" 제거
"완전 제거" = Purge = -P!
❌ 문제 11: chown vs chmod
| 구분 | 내용 |
|---|---|
| 내 답 | ④ chmod kait:project lin.txt |
| 정답 | ① chown kait.project lin.txt |
혼동 원인:
- chown, chmod, chgrp 역할 구분 불명확
- chmod가 권한(permission) 변경임을 망각
암기법:
chown = change OWNER = 소유자/그룹 변경
chmod = change MODE = 권한(rwx) 변경
chgrp = change GROUP = 그룹만 변경
"소유자 변경" = chown (owner가 들어있음!)
❌ 문제 14: 히스토리 명령어
| 구분 | 내용 |
|---|---|
| 내 답 | ③ !?find |
| 정답 | ② !find |
혼동 원인:
!문자열과!?문자열차이 혼동- “시작하는”과 “포함하는” 구분 실패
암기법:
!문자열 = 해당 문자열로 "시작하는" 최근 명령
!?문자열 = 해당 문자열을 "포함하는" 최근 명령
!! = 마지막 명령 재실행
"시작" = ! (물음표 없음)
"포함" = !? (물음표로 "어디에 있어?" 묻기)
❌ 문제 25: 셸 변경 명령어
| 구분 | 내용 |
|---|---|
| 내 답 | ④ passwd -s /bin/zsh |
| 정답 | ② chsh -s /bin/zsh |
혼동 원인:
- chsh 명령어 자체를 기억 못함
- passwd가 비밀번호 전용임을 망각
암기법:
chsh = CHange SHell = 셸 변경!
chsh -s = set (셸 설정)
chsh -l = list (사용 가능 셸 목록)
passwd = 비밀번호만!
❌ 문제 27: 파일시스템 점검
| 구분 | 내용 |
|---|---|
| 내 답 | ① xfs_repair |
| 정답 | ② e2fsck |
혼동 원인:
- 파일시스템별 점검 명령어 구분 실패
- ext4에 맞는 명령어를 선택하지 못함
암기법:
ext 계열 (ext2/3/4) = e2fsck, fsck
XFS 계열 = xfs_repair
e2fsck의 "e2" = ext2에서 유래!
❌ 문제 28: 소스 컴파일 단계
| 구분 | 내용 |
|---|---|
| 내 답 | ① configure |
| 정답 | ② make |
혼동 원인:
- 각 단계별 역할을 정확히 구분 못함
- “실행 파일 생성”이 어느 단계인지 혼동
암기법:
configure = 환경 설정 + Makefile 생성
make = 컴파일 + "실행 파일 생성" ✅
make install = 시스템에 설치
"실행 파일 생성" = make!
📋 명령어 혼동 총정리표
| 구분 | 명령어 | 역할 |
|---|---|---|
| 디스크 | df | 파일시스템 전체 용량 |
| du | 특정 디렉터리 사용량 | |
| 패키지 | dpkg -r | 제거 (설정 유지) |
| dpkg -P | 완전 제거 (Purge) | |
| 소유권 | chown | 소유자/그룹 변경 |
| chmod | 권한(rwx) 변경 | |
| chgrp | 그룹만 변경 | |
| 히스토리 | !문자열 | 시작하는 |
| !?문자열 | 포함하는 | |
| 셸 | chsh -s | 셸 변경 |
| passwd | 비밀번호 | |
| 파일시스템 점검 | e2fsck | ext 계열 |
| xfs_repair | XFS | |
| 소스 설치 | configure | Makefile 생성 |
| make | 실행 파일 생성 | |
| make install | 시스템 설치 |
🔧 유형 2: 옵션 혼동 (4문제)
핵심 문제점: 명령어 옵션의 정확한 의미 암기 부족
❌ 문제 3: vi 치환 명령어
| 구분 | 내용 |
|---|---|
| 내 답 | ② :s/server/Server/g |
| 정답 | ④ :%s/server/Server/g |
혼동 원인:
%의 의미(문서 전체)를 정확히 몰랐음- 범위 지정 없이 g만 쓰면 현재 줄만 적용됨
암기법:
:s/찾기/바꾸기/ = 현재 줄, 첫 번째만
:s/찾기/바꾸기/g = 현재 줄, 모두
:%s/찾기/바꾸기/ = 문서 전체, 각 줄 첫 번째만
:%s/찾기/바꾸기/g = 문서 전체, 모두 ✅
% = 문서 전체 (1,$와 동일)
g = global (한 줄에서 모두)
"전체 + 모두" = %와 g 둘 다 필요!
❌ 문제 7: tar 압축 옵션
| 구분 | 내용 |
|---|---|
| 내 답 | ① tar -zxvf backup.tar.bz2 |
| 정답 | ② tar -jxvf backup.tar.bz2 |
혼동 원인:
- 압축 방식별 옵션 혼동
- .bz2가 bzip2임을 인지했지만 옵션을 잘못 선택
암기법:
-z = gzip (.gz)
-j = bzip2 (.bz2) ✅
-J = xz (.xz) [대문자!]
-Z = compress (.Z)
"지비엑스" = z(gzip), j(bzip2), J(xz)
알파벳 순서: g-z, b-j, x-J
❌ 문제 6: mkfs (mke2fs) 용도
| 구분 | 내용 |
|---|---|
| 문제 | mke2fs로 생성할 수 없는 파일시스템 |
| 내 답 | ext4 생성 가능으로 착각 |
| 정답 | XFS는 생성 불가 |
혼동 원인:
- mke2fs가 ext 계열 전용임을 몰랐음
암기법:
mke2fs = Make E2 FileSystem = ext 계열만!
(e2 = ext2에서 유래)
XFS → mkfs.xfs
ext4 → mkfs.ext4 또는 mke2fs -t ext4
📋 옵션 총정리표
| 명령어 | 옵션 | 의미 |
|---|---|---|
| vi 치환 | % | 문서 전체 범위 |
| g | 한 줄에서 모두 | |
| tar 압축 | -z | gzip (.gz) |
| -j | bzip2 (.bz2) | |
| -J | xz (.xz) | |
| -Z | compress (.Z) | |
| tar 기본 | -c | create (생성) |
| -x | extract (해제) | |
| -v | verbose (상세) | |
| -f | file (파일명) |
🔢 유형 3: 계산/개념 문제 (3문제)
핵심 문제점: 계산 공식이나 개념 적용 실패
❌ 문제 31: umask 계산
| 구분 | 내용 |
|---|---|
| 내 답 | ① 750 |
| 정답 | ② 640 |
혼동 원인:
- 파일과 디렉터리의 기본값 혼동
- 750은 디렉터리 기본값(777-027)
암기법:
파일 기본값 = 666 (실행 권한 없음)
디렉터리 기본값 = 777
umask 0027일 때:
파일: 666 - 027 = 640 ✅
디렉터리: 777 - 027 = 750
문제에서 "파일"인지 "디렉터리"인지 꼭 확인!
❌ 문제 5: nice vs renice
| 구분 | 내용 |
|---|---|
| 문제 | 이미 실행 중인 프로세스 우선순위 변경 |
| 혼동 | nice와 renice 구분 |
| 정답 | renice |
암기법:
nice = 새로 실행할 프로세스 우선순위 지정
renice = RE(다시) + nice = 실행 중인 프로세스 변경
"이미 실행 중" = renice!
"새로 실행" = nice
📋 계산/개념 총정리표
| 개념 | 공식/규칙 |
|---|---|
| umask (파일) | 666 - umask |
| umask (디렉터리) | 777 - umask |
| NI 범위 | -20 ~ 19 (낮을수록 높은 우선순위) |
| nice | 새 프로세스 |
| renice | 실행 중 프로세스 |
🖥️ 유형 4: 서비스/소프트웨어 혼동 (3문제)
핵심 문제점: 소프트웨어/셸 종류 구분 실패
❌ 문제 23: GNU 프로젝트 셸
| 구분 | 내용 |
|---|---|
| 내 답 | ④ zsh |
| 정답 | ③ bash |
혼동 원인:
- 각 셸의 개발 배경을 몰랐음
- zsh도 오픈소스라서 GNU로 착각
암기법:
bash = Bourne Again SHell = GNU 프로젝트!
zsh = Paul Falstad 개발 (GNU 아님)
csh = 빌 조이 (버클리)
ksh = 데이비드 콘 (AT&T)
"GNU" = bash, nano, emacs!
📋 셸 종류 총정리표
| 셸 | 개발자/배경 | 특징 |
|---|---|---|
| sh (bourne) | 스티브 본 (벨연구소) | 최초의 셸 |
| bash | GNU 프로젝트 | 리눅스 기본 셸 |
| csh | 빌 조이 (버클리) | C 언어 기반 |
| ksh | 데이비드 콘 (AT&T) | sh + csh |
| zsh | Paul Falstad | 확장 기능 |
🎯 취약 영역 분석 및 학습 전략
1️⃣ 가장 취약한 영역: 명령어 혼동 (8문제)
문제점:
- 비슷한 명령어의 정확한 역할 구분 실패
- 명령어 이름의 의미(약어) 파악 부족
학습 전략:
1. 명령어 이름의 어원 파악하기
- chown = CHange OWNer
- chsh = CHange SHell
2. 비교표 만들어 암기
- df vs du
- nice vs renice
3. 실제 리눅스에서 man 명령어로 확인
2️⃣ 두 번째 취약 영역: 옵션 혼동 (4문제)
문제점:
- tar 압축 옵션 구분 실패
- vi 치환 범위 지정자 혼동
학습 전략:
1. tar 옵션 연상 암기
- gzip의 g → z (가까운 알파벳)
- bzip2의 b → j (가까운 알파벳)
2. vi 치환은 공식으로 외우기
- %s = 전체 범위
- /g = 한 줄에서 모두
3️⃣ 시험 전략 개선점
“이미 실행 중” 키워드 주의:
- “이미 실행 중인 프로세스” → renice
- “새로 실행할 프로세스” → nice
“파일” vs “디렉터리” 구분:
- umask 문제에서 무엇을 생성하는지 확인
- 파일: 666 기준
- 디렉터리: 777 기준
📚 우선 암기 리스트
🔴 반드시 암기 (자주 틀림)
| 항목 | 내용 |
|---|---|
| 특정 디렉터리 사용량 | du (Disk Usage) |
| 완전 제거 (dpkg) | -P (Purge) |
| 소유자 변경 | chown (owner) |
| 히스토리 시작 | !문자열 |
| 셸 변경 | chsh -s |
| ext 파일시스템 점검 | e2fsck |
| 실행 파일 생성 | make |
| tar bzip2 옵션 | -j |
🟡 혼동 주의
| 혼동 쌍 | 구분법 |
|---|---|
| df vs du | 전체=df, 특정=du |
| nice vs renice | 새로=nice, 실행중=renice |
| chown vs chmod | 소유자=chown, 권한=chmod |
| !문자열 vs !?문자열 | 시작=!, 포함=!? |
| e2fsck vs xfs_repair | ext=e2, XFS=xfs |
✅ 다음 학습 권장사항
-
명령어 어원 학습 (30분)
- 각 명령어의 약어 의미 파악
- ex: chown = CHange OWNer
-
tar 옵션 완벽 암기 (20분)
- z, j, J, Z 옵션과 확장자 연결
-
umask 계산 연습 (15분)
- 파일(666), 디렉터리(777) 기준 연습
-
vi 치환 명령어 연습 (15분)
- %, g 플래그 조합 연습
-
실습 권장
- 실제 리눅스에서 명령어 테스트
man명령어로 옵션 확인
🔴 2과목 오답노트
🏷️ 오답 유형 분류
| 유형 | 문제 수 | 해당 문제 |
|---|---|---|
| 설정 파일 혼동 | 5문제 | 13, 17, 29, 30, 43 |
| 서비스/소프트웨어 혼동 | 3문제 | 9, 37, 42 |
| 명령어 기능 혼동 | 2문제 | 24, 32 |
| 개념/용어 혼동 | 3문제 | 11, 33, 40 |
📁 유형 1: 설정 파일 혼동 (5문제)
핵심 문제점: 서비스별 설정 파일 경로를 정확히 암기하지 못함
❌ 문제 13: /etc/resolv.conf
| 구분 | 내용 |
|---|---|
| 내 답 | ② 네트워크 인터페이스 설정 |
| 정답 | ③ DNS 서버 주소 확인 |
혼동 원인:
resolv.conf의 “resolv”가 “resolve(해석)“임을 인지 못함- 네트워크 관련 파일이라 인터페이스 설정으로 착각
암기법:
resolv.conf = resolve (DNS 해석) = DNS 서버 주소!
❌ 문제 17: NFS 설정 파일
| 구분 | 내용 |
|---|---|
| 내 답 | ④ /etc/nfs.conf |
| 정답 | ② /etc/exports |
혼동 원인:
- 서비스명과 설정 파일명이 일치할 것이라 추측
/etc/nfs.conf라는 파일이 있을 것 같은 직관
암기법:
NFS = 공유(내보내기) = exports!
"export(수출하다)" = 파일을 내보내서 공유
❌ 문제 29: sudo 설정 파일
| 구분 | 내용 |
|---|---|
| 내 답 | ① /etc/sudo.conf |
| 정답 | ② /etc/sudoers |
혼동 원인:
/etc/sudo.conf도 실제 존재하는 파일 (플러그인 설정)- 주 설정 파일과 부가 설정 파일 구분 못함
암기법:
sudo 권한 설정 = /etc/sudoers (복수형 's')
sudo.conf = 플러그인 설정 (거의 안 씀)
편집은 반드시 visudo!
❌ 문제 30: 부팅 시 파일시스템 점검 설정
| 구분 | 내용 |
|---|---|
| 내 답 | ④ /etc/init.d |
| 정답 | ① /etc/fstab |
혼동 원인:
- “부팅 시”라는 키워드에 init.d를 연상
- fstab의 6번째 필드(pass)가 점검 설정임을 잊음
암기법:
fstab 6필드: 장치-마운트포인트-타입-옵션-덤프-패스(점검!)
패스 값: 0=점검안함, 1=루트, 2=기타
❌ 문제 43: 프록시 서버 설정 파일
| 구분 | 내용 |
|---|---|
| 내 답 | ④ /etc/samba/smb.conf |
| 정답 | ② /etc/squid/squid.conf |
혼동 원인:
- 프록시 서버 = Squid 연결을 못함
- 문제 12에서 Squid가 프록시라고 배웠는데 적용 실패
암기법:
프록시 서버 = Squid = 오징어!
오징어가 중간에서 잉크 뿜음 = 중계(프록시)
설정: /etc/squid/squid.conf
📋 설정 파일 총정리표
| 서비스 | 설정 파일 | 암기 팁 |
|---|---|---|
| DNS 클라이언트 | /etc/resolv.conf | resolve = DNS 해석 |
| NFS | /etc/exports | export = 내보내기(공유) |
| SAMBA | /etc/samba/smb.conf | SMB 프로토콜 |
| sudo | /etc/sudoers | 복수형 ‘s’ |
| Squid (프록시) | /etc/squid/squid.conf | squid = 프록시 |
| Apache | httpd.conf / apache2.conf | 배포판별 다름 |
| 마운트 | /etc/fstab | FileSystem TABle |
| PAM | /etc/pam.d/ | 디렉터리! |
🖥️ 유형 2: 서비스/소프트웨어 혼동 (3문제)
핵심 문제점: 비슷한 용도의 소프트웨어/라이브러리 구분 실패
❌ 문제 9: KDE 라이브러리
| 구분 | 내용 |
|---|---|
| 내 답 | ① GTK+ |
| 정답 | ② Qt |
혼동 원인:
- 데스크톱 환경과 라이브러리 매핑을 암기 못함
암기법:
KDE = Qt (K, Q 둘 다 알파벳 뒤쪽, 발음도 비슷)
GNOME = GTK+ (둘 다 G로 시작!)
❌ 문제 37: DNS 서버 소프트웨어
| 구분 | 내용 |
|---|---|
| 내 답 | ③ postfix |
| 정답 | ② BIND |
혼동 원인:
- 메일 서버와 DNS 서버 혼동
- postfix가 “무언가를 전달”하는 느낌이라 DNS로 착각
암기법:
DNS = BIND (Berkeley Internet Name Domain)
메일 발송 = sendmail, postfix (post = 우편!)
메일 수신 = dovecot (비둘기집 = 받는 곳)
❌ 문제 42: Tripwire 기능
| 구분 | 내용 |
|---|---|
| 내 답 | ① 네트워크 침입 탐지 |
| 정답 | ② 파일 시스템 무결성 검사 |
혼동 원인:
- “침입 탐지”라는 보안 용어에 끌림
- Tripwire의 “wire(철조망)” 의미 파악 실패
암기법:
Tripwire = 철조망 = 파일 변경 감지 (무결성)
Snort = 코골이(킁킁) = 네트워크 트래픽 냄새 맡기
📋 보안 도구 총정리표
| 도구 | 기능 | 유형 |
|---|---|---|
| Tripwire | 파일 무결성 검사 | HIDS (호스트 기반) |
| Snort | 네트워크 침입 탐지 | NIDS (네트워크 기반) |
| ClamAV | 바이러스 검사 | 안티바이러스 |
| iptables | 방화벽 | 패킷 필터링 |
⌨️ 유형 3: 명령어 기능 혼동 (2문제)
핵심 문제점: 비슷한 명령어의 정확한 기능 구분 실패
❌ 문제 24: crontab -l
| 구분 | 내용 |
|---|---|
| 내 답 | ① 시스템 전체 cron 목록 |
| 정답 | ② 현재 사용자 cron 목록 |
혼동 원인:
- crontab과 /etc/crontab 구분 못함
암기법:
crontab -l = 개인용 (현재 사용자만!)
/etc/crontab = 시스템 전체용
/etc/cron.d/ = 시스템 cron 디렉터리
❌ 문제 32: 파티션 생성 명령어
| 구분 | 내용 |
|---|---|
| 내 답 | ① mkfs |
| 정답 | ② fdisk |
혼동 원인:
- 디스크 작업 순서 혼동
- mkfs가 “만든다(make)“라서 파티션 생성으로 착각
암기법:
디스크 작업 순서: "파포마점"
1. 파티션 = fdisk (Fixed Disk)
2. 포맷 = mkfs (Make FileSystem)
3. 마운트 = mount
4. 점검 = fsck (FileSystem ChecK)
🔤 유형 4: 개념/용어 혼동 (3문제)
핵심 문제점: 특수한 용어나 개념을 정확히 암기하지 못함
❌ 문제 11: DNS 역방향 조회 도메인
| 구분 | 내용 |
|---|---|
| 내 답 | ④ ip-reverse.net |
| 정답 | ① in-addr.arpa |
혼동 원인:
- 역방향 조회 특수 도메인을 처음 접함
- “reverse”가 들어간 옵션에 끌림
암기법:
in-addr.arpa = INverse ADDRess + ARPANET
역방향 조회는 무조건 in-addr.arpa!
❌ 문제 33: FTP 익명 접속 계정
| 구분 | 내용 |
|---|---|
| 내 답 | ④ public |
| 정답 | ③ anonymous 또는 ftp |
혼동 원인:
- “익명 = 공개 = public”이라는 연상
- FTP 표준 익명 계정명 암기 부족
암기법:
FTP 익명 = anonymous (익명 영어 그대로!)
또는 ftp (서비스명 그대로)
비밀번호 = 이메일 형식 (관례)
❌ 문제 40: IPv6 주소 확인
| 구분 | 내용 |
|---|---|
| 내 답 | ② ip -6 addr |
| 정답 | ④ ①, ② 모두 정답 |
혼동 원인:
- ifconfig도 IPv6를 보여준다는 사실을 몰랐음
- “둘 다 정답” 옵션을 충분히 고려 안 함
암기법:
IPv6 확인 = ifconfig도 되고, ip -6 addr도 됨!
ifconfig = IPv4 + IPv6 모두 표시
ip -6 addr = IPv6만 필터링
🎯 취약 영역 분석 및 학습 전략
1️⃣ 가장 취약한 영역: 설정 파일 (5문제)
문제점:
- 서비스별 설정 파일 경로 암기 부족
- 비슷한 이름의 파일 구분 실패
학습 전략:
1. 설정 파일 플래시카드 만들기
2. 서비스명 → 설정파일 연결 연습
3. 실제 리눅스에서 ls /etc/ 해보기
2️⃣ 두 번째 취약 영역: 서비스 구분 (3문제)
문제점:
- 비슷한 용도의 소프트웨어 혼동
- 보안 도구 분류 불명확
학습 전략:
1. 카테고리별 소프트웨어 표 만들기
2. 각 소프트웨어의 핵심 키워드 암기
3. 이름의 어원/의미 파악하기
3️⃣ 시험 전략 개선점
“둘 다 정답” 옵션 주의:
- 문제 40처럼 복수 정답이 있을 수 있음
- 선택지에 “①, ② 모두” 있으면 반드시 재검토
직관보다 암기 우선:
- “public”이 익명 같지만 실제는 “anonymous”
- “직관적으로 맞아 보이는” 함정 주의
📚 우선 암기 리스트
🔴 반드시 암기 (많이 틀림)
| 항목 | 내용 |
|---|---|
| NFS 설정 | /etc/exports |
| DNS 클라이언트 | /etc/resolv.conf |
| sudo 설정 | /etc/sudoers |
| 프록시 서버 | Squid → /etc/squid/squid.conf |
| DNS 서버 | BIND |
| 파일 무결성 | Tripwire |
| 파티션 생성 | fdisk |
| 포맷 | mkfs |
🟡 혼동 주의
| 혼동 쌍 | 구분법 |
|---|---|
| KDE vs GNOME | KDE=Qt, GNOME=GTK+ |
| crontab vs /etc/crontab | 개인용 vs 시스템용 |
| Tripwire vs Snort | 파일 vs 네트워크 |
| anonymous vs public | FTP 익명 = anonymous |
✅ 다음 학습 권장사항
-
설정 파일 집중 암기 (30분)
- 서비스별 설정 파일 표 반복 학습
-
명령어 순서 정리 (20분)
- 디스크 작업: fdisk → mkfs → mount → fsck
-
보안 도구 분류 (15분)
- HIDS vs NIDS 구분
-
실습 권장
- 실제 리눅스에서
/etc디렉터리 탐색 - 각 설정 파일 내용 확인
- 실제 리눅스에서
기출 2회
📝 2회차 1과목 오답노트
📊 오답 현황: 15문제 / 48문제 (정답률 69%)
🔴 유형 1: 명령어 혼동 (7문제)
| 문제 | 내 답 | 정답 | 핵심 |
|---|---|---|---|
| 6 | rpm -qi | rpm -qf | 파일→패키지 역추적 |
| 15 | tar -r | tar -t | 내용 확인 = list |
| 27 | mount -r | mount -o remount,ro | 다시 마운트 = remount |
| 29 | ps -ef | grep | lsof -i :포트 | 포트 사용 프로세스 |
| 33 | cat -10 | head | 앞 10줄 출력 |
| 37 | yum delete | yum remove | 패키지 삭제 |
| 42 | find | grep | 파일 내용 검색 |
✏️ 핵심 정리:
rpm -qf = query File (파일 → 패키지)
rpm -qi = query Info (패키지 정보)
rpm -ql = query List (패키지 파일 목록)
tar -t = lisT (내용 확인)
tar -x = eXtract (해제)
tar -c = Create (생성)
tar -r = append (추가)
grep = 파일 "내용" 검색
find = 파일 "자체" 검색
lsof -i :포트 = 포트 사용 프로세스 확인
yum 삭제 = remove 또는 erase (delete 없음!)
🔴 유형 2: 옵션/문법 혼동 (4문제)
| 문제 | 내 답 | 정답 | 핵심 |
|---|---|---|---|
| 7 | f3 (Linux) | f2 (World) | 필드 번호는 1부터 |
| 19 | crontab -e user | crontab -u user -e | 사용자 지정 = -u 필수 |
| 23 | grep -i | grep -c | -c = count (개수) |
| 28 | top T | top P | CPU 정렬 = P (Processor) |
✏️ 핵심 정리:
cut 필드 번호: 1부터 시작! (0 아님)
cut -d: -f2 = 2번째 필드
crontab 다른 사용자: -u 옵션 필수
crontab -u username -e (O)
crontab -e username (X)
grep 옵션:
-c = count (개수)
-i = ignore case (대소문자 무시)
-v = invert (불일치)
top 정렬 키:
P = Processor (CPU)
M = Memory
T = Time
N = Number (PID)
🔴 유형 3: 개념 혼동 (3문제)
| 문제 | 내 답 | 정답 | 핵심 |
|---|---|---|---|
| 21 | 원본 삭제 시 접근 가능 (O) | 디렉터리 불가 (X) | 하드링크 제한 |
| 26 | tail -r | tac | 줄 역순 출력 |
| 11 | set | export | 자식 프로세스 전달 |
✏️ 핵심 정리:
하드링크 제한:
- 디렉터리 불가 ❌
- 다른 파일시스템 불가 ❌
- 원본 삭제 시 데이터 유지 ⭕ (inode 공유)
tac = cat 거꾸로 = 줄 역순
rev = 문자 역순 (각 줄의 글자 뒤집기)
export = 자식 프로세스에 환경변수 전달
set = 셸 옵션 설정 / 변수 목록 출력
🔴 유형 4: 계산/특수문자 (1문제)
| 문제 | 내 답 | 정답 | 핵심 |
|---|---|---|---|
| 1 | 645 | 665 | umask 후 chmod 적용 |
| 12 | 5/2 | 2 | $(( ))는 정수 연산 |
| 16 | $# | $? | 종료 상태 코드 |
✏️ 핵심 정리:
umask + chmod 계산:
1) 파일 666 - umask 022 = 644
2) chmod g+w,o+x 적용
644 → 665 (그룹+w, 기타+x)
$(( )) = 정수 연산만! 소수점 버림
$((5/2)) = 2 (2.5 아님!)
셸 특수 변수:
$? = 종료 상태 (0=성공)
$# = 인자 개수
$$ = 현재 PID
$! = 백그라운드 PID
🎯 우선 암기 리스트
| 순위 | 명령어/개념 | 암기법 |
|---|---|---|
| 1 | rpm -qf | file → 파일로 패키지 찾기 |
| 2 | tar -t | lisT = 목록 보기 |
| 3 | grep vs find | grep=내용, find=파일 |
| 4 | tac | cat 거꾸로 = 줄 역순 |
| 5 | export | 자식에게 “수출” |
| 6 | lsof -i :포트 | 포트 사용 확인 |
| 7 | $? | 물음표 = “성공했어?“ |
| 8 | top P | Processor = CPU |
| 9 | crontab -u | 다른 user 지정 |
| 10 | 하드링크 | 디렉터리 불가! |
📈 1회차 vs 2회차 비교
| 항목 | 1회차 | 2회차 | 변화 |
|---|---|---|---|
| 정답률 | 54% | 69% | +15% 📈 |
| 오답 수 | 22문제 | 15문제 | -7문제 |
개선된 영역:
- df vs du 구분 ✅
- chsh 명령어 ✅
- tar 압축 옵션 (-z, -j, -J) ✅
- vi 삭제 명령어 ✅
여전히 취약한 영역:
- rpm 옵션 (-qf, -qi, -ql 혼동)
- 셸 특수 변수 (#)
- 명령어 세부 옵션 (grep -c, top P)
📗 2과목: 리눅스 활용
📊 오답 현황: 4문제 / 32문제 (정답률 87.5%)
🔴 오답 정리
| 문제 | 내 답 | 정답 | 핵심 |
|---|---|---|---|
| 2 | Xlib | Qt | KDE = Qt |
| 11 | /etc/apache/apache.conf | /etc/httpd/conf/httpd.conf | Apache 설정 파일 |
| 21 | 21 | 20 | FTP 데이터 포트 |
| 31 | /etc/smb/samba.conf | /etc/samba/smb.conf | Samba 설정 파일 |
✏️ 핵심 정리:
데스크톱 라이브러리 (⚠️ 2번 연속 오답!):
KDE = Qt = Dolphin
GNOME = GTK+ = Nautilus
설정 파일 경로:
Apache: /etc/httpd/conf/httpd.conf (RHEL)
Samba: /etc/samba/smb.conf
FTP 포트:
20 = 데이터 전송 (파일)
21 = 제어/명령 (로그인)
"20 데이터" = 숫자 작은 게 데이터!
🎯 전체 종합
📊 2회차 성적
| 과목 | 정답 | 오답 | 정답률 |
|---|---|---|---|
| 1과목 | 33/48 | 15 | 69% |
| 2과목 | 28/32 | 4 | 87.5% |
| 전체 | 61/80 | 19 | 76% |
📈 1회차 vs 2회차 비교
| 항목 | 1회차 | 2회차 | 변화 |
|---|---|---|---|
| 1과목 | 54% | 69% | +15% 📈 |
| 2과목 | 57% | 87.5% | +30.5% 📈 |
| 전체 | 55% | 76% | +21% 📈 |
⭐ 최우선 암기 리스트 (TOP 10)
| 순위 | 항목 | 암기 |
|---|---|---|
| 1 | KDE 라이브러리 | Qt (2번 연속 틀림!) |
| 2 | FTP 포트 | 20=데이터, 21=제어 |
| 3 | rpm 파일 추적 | rpm -qf |
| 4 | tar 목록 | tar -t |
| 5 | 종료 상태 변수 | $? |
| 6 | 줄 역순 출력 | tac |
| 7 | top CPU 정렬 | P |
| 8 | crontab 사용자 | -u username |
| 9 | Apache 설정 | /etc/httpd/conf/httpd.conf |
| 10 | Samba 설정 | /etc/samba/smb.conf |
🔥 취약 영역 분석
1. 반복 오답 (확실히 암기 필요!):
- KDE = Qt (2회 연속)
- FTP 20/21 포트 구분
2. 명령어 옵션:
- rpm -qf / -qi / -ql 구분
- tar -t / -x / -c / -r 구분
- grep -c / -i / -v 구분
3. 설정 파일 경로:
- Apache, Samba 경로 정확히
4. 셸 특수 변수:
- # $$ $! 구분
✅ 개선된 영역
- df vs du 구분 ✅
- chsh 명령어 ✅
- tar 압축 옵션 (-z, -j, -J) ✅
- ARP vs RARP ✅
- SSH/Telnet 포트 ✅
- OSI 계층 데이터 단위 ✅