Study
[리눅스마스터 1급] 리눅스 시스템의 이해 오답 [2]
wwns
2025. 2. 1. 22:52
반응형
KDE와 GNOME은 리눅스에서 가장 널리 사용되는 데스크톱 환경(DE, Desktop Environment)이다.
(XFce는 UNIX 계열 운영체제를 위해서 개발된 가벼운 데스크톱 환경)
🔹 1. KDE (K Desktop Environment)
✅ 특징
- 화려한 UI & 높은 커스터마이징 가능
- 다양한 테마, 아이콘, 애니메이션 효과 지원
- 사용자가 UI를 자유롭게 변경 가능
- Qt 프레임워크 기반
- 애플리케이션이 Qt 라이브러리를 사용하여 개발됨
- 성능이 뛰어나지만 다소 무거울 수 있음
- 애니메이션 및 고급 UI 기능으로 인해 RAM 사용량이 높을 수 있음
- Windows와 유사한 인터페이스
- 작업표시줄, 시작 메뉴 등이 Windows와 비슷하여 Windows 사용자에게 친숙
🔹 2. GNOME (GNU Network Object Model Environment)
✅ 특징
- 심플하고 직관적인 UI
- 불필요한 UI 요소를 최소화하여 미니멀한 디자인 제공
- Windows보다는 macOS 스타일과 유사
- GTK 기반 애플리케이션
- GTK 라이브러리를 사용하여 개발됨 (예: GNOME Terminal, Nautilus)
- 자원이 적게 드는 경량 디자인
- 애니메이션이 적고 UI가 단순하여 저사양 PC에서도 원활하게 실행
- 확장 기능으로 기능 강화 가능
- 기본적으로 심플하지만 GNOME Extensions를 통해 커스터마이징 가능
🔹 3. KDE vs GNOME 비교
항목 | KDE | GNOME |
디자인 | 화려하고 유연한 UI | 단순하고 직관적인 UI |
프레임워크 | Qt | GTK |
사용자 경험 | Windows 스타일 (작업표시줄, 시작 메뉴) | macOS 스타일 (패널, 애플리케이션 개요) |
자원 사용량 | 상대적으로 무거움 (많은 기능 포함) | 가벼움 (기본 기능만 제공) |
커스터마이징 | 매우 자유로움 (테마, 애니메이션, 패널 조정 가능) | 제한적 (확장 기능 사용 필요) |
대표 배포판 | Kubuntu, openSUSE, Manjaro KDE | Ubuntu, Fedora, Debian, CentOS |
애플리케이션 | Dolphin, Konsole, Kdenlive | Nautilus, GNOME Terminal, Evince |
윈도매니저 | KWin | metacity, Mutter |
리눅스 문자열을 포함한 명령어 실행 방식
명령어 | 동작 방식 | 실행 대상 |
!?al? | 히스토리에서 "al"이 포함된 가장 최근의 전체 명령어 실행 | 명령어 전체 |
!*al* | 가장 최근 명령어에서 "al"이 포함된 마지막 인수 사용 | 인수만 |
쉘 종류
📌 1. Bourne 계열 쉘 (sh 기반)
1️⃣ Bourne Shell (sh)
- 최초의 유닉스 기본 쉘 (1979년)
- 실행 속도가 빠르고 스크립트 작성에 적합
- 기능이 적어 명령어 편집 기능이 부족함
- 현재는 bash, dash 등으로 대체됨
2️⃣ Bash (bash, Bourne Again Shell)
- 리눅스에서 기본으로 사용되는 대표적인 쉘
- sh를 개선한 버전으로 명령어 자동 완성, 이력(history), 제어 구조 지원
- 리눅스 배포판에서 기본 쉘로 사용됨 (/bin/bash)
3️⃣ Dash (dash, Debian Almquist Shell)
- 빠르고 가벼운 쉘, 주로 sh의 대체로 사용됨
- POSIX 표준을 준수하며, 시스템 부팅 속도 향상에 도움
- bash보다 기능이 적지만 sh 스크립트 실행에 적합
4️⃣ Zsh (zsh)
- Bash + Ksh + tcsh 기능을 합친 강력한 쉘
- 자동 완성(Auto Completion), 플러그인 시스템, 테마 지원
- oh-my-zsh을 활용하면 더욱 강력한 기능 제공
5️⃣ Korn Shell (ksh)
- Bourne Shell(sh)을 확장한 버전으로, 스크립트 및 프로그래밍 기능이 강화됨
- sh의 성능과 csh의 편리함을 결합
- 대기업 서버에서 사용되는 경우가 많음 (예: AIX, Solaris)
📌 2. C Shell 계열 (csh 기반)
C 프로그래밍 언어 스타일을 반영한 쉘
6️⃣ C Shell (csh)
- C 언어 스타일 문법 지원
- 별칭(alias), 작업 제어(job control) 기능 제공
- sh보다 명령어 사용이 편리하지만, 스크립트 용도로는 잘 사용되지 않음
7️⃣ Tcsh (tcsh)
- csh를 개선한 버전으로, 명령어 자동 완성 및 명령어 편집 기능 강화
- csh와 100% 호환되며, Bash 이전에는 사용자 쉘로 많이 사용됨
인터럽트 키 조합
📌 1. 프로세스 제어 관련 키 조합
Ctrl + C | 프로세스 강제 종료 (SIGINT) |
Ctrl + Z | 프로세스 일시 정지 (SIGTSTP) |
Ctrl + D | 입력 종료 (EOF), 로그아웃 또는 stdin 종료 |
Ctrl + \ | 프로세스 강제 종료 + 코어 덤프 (SIGQUIT) |
Ctrl + T | 현재 작업 상태 표시 (SIGINFO, macOS/BSD) |
📌 2. 터미널 및 셸 관련 키 조합
Ctrl + L | 터미널 화면 지우기 (clear) |
Ctrl + S | 출력 일시 정지 (XOFF, Flow Control) |
Ctrl + Q | 출력 다시 시작 (XON, Flow Control) |
Ctrl + R | 이전 명령어 검색 (Reverse Search) |
Ctrl + U | 커서 왼쪽 내용 삭제 |
Ctrl + K | 커서 오른쪽 내용 삭제 |
Ctrl + W | 이전 단어 삭제 |
Ctrl + A | 커서를 줄의 맨 앞으로 이동 |
Ctrl + E | 커서를 줄의 맨 끝으로 이동 |
Ctrl + Y | 삭제한 내용 붙여넣기 (yank) |
📌 포어그라운드 <-> 백그라운드 프로세스 전환
Ctrl + Z | 포어그라운드 프로세스를 일시 정지 (Stopped 상태) |
bg | 정지된 프로세스를 백그라운드에서 계속 실행 |
jobs | 현재 쉘에서 실행 중인 백그라운드 작업 목록 확인 |
fg %번호 | 백그라운드 프로세스를 포어그라운드로 이동 |
command & | 처음부터 백그라운드에서 실행 |
✅ 저널링 파일 시스템(Journaling File System)이란?
저널링 파일 시스템은 파일 변경 사항을 저널(Journal, 로그)에 기록하여 데이터 손실을 방지하는 파일 시스템
📌 1. 저널링 파일 시스템의 동작 방식
- 변경 사항을 저널(Journal) 영역에 먼저 기록
- 파일을 변경하기 전에 로그(journal)에 트랜잭션(transaction) 정보를 기록
- 실제 파일 시스템에 적용
- 트랜잭션이 완료되면 변경 내용을 실제 데이터 블록에 반영
- 저널 로그 정리(Commit)
- 변경이 완료되면 저널에서 해당 트랜잭션을 삭제
📌 2. 주요 저널링 파일 시스템
파일 시스템 | 운영체제 | 특징 |
ext3 | Linux | 기본적인 저널링 지원, 하위 호환성 (ext2) |
ext4 | Linux | ext3 개선, 성능 향상 및 대용량 파일 지원 |
XFS | Linux | 고성능 저널링, 대용량 파일 및 멀티스레드 최적화 |
Btrfs | Linux | 스냅샷, 압축, RAID 지원 (차세대 FS) |
ReiserFS | Linux | 소규모 파일 처리에 강점 |
JFS | Linux | IBM 개발, 빠른 성능 및 저널링 지원 |
NTFS | Windows | 마이크로소프트의 기본 파일 시스템 |
HFS+ | macOS | 애플의 기본 파일 시스템 (이전) |
APFS | macOS | 최신 애플 파일 시스템, SSD 최적화 |
📌 3. 저널링 모드 (ext3, ext4 기준)
1️⃣ Journal (저널 모드)
- 모든 데이터와 메타데이터를 저널에 먼저 기록 → 가장 안정적
- 단점: 속도가 느림
- 사용 예: 금융 시스템, 데이터 무결성이 중요한 서버
2️⃣ Ordered (순차 모드, 기본값)
- 메타데이터만 저널링, 데이터는 저널에 기록하지 않음
- 데이터가 먼저 기록된 후 메타데이터가 업데이트됨 → 성능과 안정성 균형 유지
- 사용 예: 일반적인 서버, 데스크톱 환경
3️⃣ Writeback (쓰기 지연 모드)
- 메타데이터만 저널링, 데이터는 즉시 디스크에 기록
- 충돌 시 데이터가 손상될 가능성이 있음 → 가장 빠르지만 신뢰성이 낮음
- 사용 예: 성능이 중요한 환경 (ex. 캐시 서버)
📌 현재 마운트된 파일 시스템의 저널링 모드 확인
$ findmnt -o TARGET,FSTYPE,OPTIONS
# 출력
TARGET FSTYPE OPTIONS
/ ext4 rw,relatime,data=ordered
/home ext4 rw,relatime,data=journal
/var ext4 rw,relatime,data=writeback
👉 data=ordered, data=journal, data=writeback 중 하나가 저널링 모드를 나타냄
data=journal | 모든 데이터 + 메타데이터를 저널링 (안전하지만 느림) |
data=ordered | 기본값, 메타데이터만 저널링 (성능과 안정성 균형) |
data=writeback | 메타데이터만 저널링, 데이터는 즉시 쓰기 (성능 ↑, 안전성 ↓) |
반응형