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. 저널링 파일 시스템의 동작 방식

  1. 변경 사항을 저널(Journal) 영역에 먼저 기록
    • 파일을 변경하기 전에 로그(journal)에 트랜잭션(transaction) 정보를 기록
  2. 실제 파일 시스템에 적용
    • 트랜잭션이 완료되면 변경 내용을 실제 데이터 블록에 반영
  3. 저널 로그 정리(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 메타데이터만 저널링, 데이터는 즉시 쓰기 (성능 ↑, 안전성 ↓)

 

반응형