Taeyoung Kim

Cloud & Platform

리눅스 시스템 관리 학습 노트 요약-2

리눅스 시스템 관리 학습 노트 요약-2 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


챕터 1. 사용자 관리 실습

  • 학습 목표: useradd, passwd, usermod 등 핵심 명령어를 사용하여 사용자를 만들고, 암호를 설정하며, 특정 그룹에 추가하는 등 사용자 관리의 기초를 익힙니다.
  • 핵심 개념:
    • 사용자 (User): 시스템을 사용하는 개별 계정. 각 사용자는 고유 ID(UID)와 홈 디렉토리를 가집니다.
    • 그룹 (Group): 여러 사용자를 묶어 권한을 효율적으로 관리하기 위한 단위. 각 그룹은 고유 ID(GID)를 가집니다.
    • sudo: 일반 사용자가 관리자(root)의 권한을 일시적으로 빌려 명령을 실행하게 해주는 기능.
  • 주요 명령어:
    • whoami: 현재 로그인한 사용자 이름을 확인합니다.
    • groups [사용자명]: 해당 사용자가 속한 그룹 목록을 확인합니다.
    • sudo useradd [사용자명]: 새로운 사용자를 생성합니다.
    • sudo passwd [사용자명]: 사용자의 암호를 설정하거나 변경합니다.
    • su - [사용자명]: 다른 사용자로 완전히 전환합니다.
    • exit: 현재 사용자 세션을 종료하고 이전 사용자로 돌아갑니다.
    • sudo usermod -aG [그룹명] [사용자명]: 사용자를 특정 그룹에 추가합니다.
    • sudo userdel [사용자명]: 사용자 계정을 삭제합니다. (r 옵션 추가 시 홈 디렉토리까지 함께 삭제)

챕터 2. 패키지 관리 기초 실습

  • 학습 목표: apt 패키지 관리자를 사용하여 소프트웨어 목록을 최신화하고, 설치된 프로그램을 업그레이드하며, 필요한 프로그램을 검색하는 능력을 기릅니다.
  • 핵심 개념:
    • 패키지 (Package): 프로그램과 관련 파일들을 하나로 묶은 설치 단위. 스마트폰의 '앱'과 유사합니다.
    • 패키지 관리자 (Package Manager): 패키지의 설치, 업데이트, 삭제를 자동화해주는 도구. Ubuntu의 apt가 대표적입니다.
    • 저장소 (Repository): 수많은 패키지들이 저장되어 있는 인터넷상의 공간.
  • 주요 명령어:
    • sudo apt update: 패키지 저장소에서 최신 소프트웨어 목록 정보를 가져와 업데이트합니다.
    • sudo apt upgrade: 시스템에 설치된 패키지들을 최신 버전으로 업그레이드합니다.
    • apt search [키워드]: 저장소에서 특정 키워드를 포함하는 패키지를 검색합니다.
    • apt show [패키지명]: 특정 패키지의 상세 정보(버전, 크기, 설명 등)를 확인합니다.

챕터 3. 패키지 설치 및 관리 실습

  • 학습 목표: aptinstall, remove 등의 명령어를 활용하여 터미널용 유틸리티(neofetch, htop 등)를 직접 설치하고 제거하는 과정을 실습합니다.
  • 주요 명령어:
    • sudo apt install [패키지명]: 새로운 패키지를 설치합니다.
    • apt list --installed: 시스템에 설치된 모든 패키지 목록을 확인합니다.
    • | grep [키워드]: 다른 명령어의 출력 결과 중에서 특정 키워드가 포함된 줄만 필터링합니다. (예: apt list --installed | grep htop)
    • sudo apt remove [패키지명]: 설치된 패키지를 제거합니다.
    • sudo apt autoremove: 다른 패키지와의 의존성이 사라져 더 이상 필요 없게 된 패키지들을 자동으로 정리합니다.

챕터 4. 디스크 및 파일 시스템 관리

  • 학습 목표: df, du 명령어를 사용하여 저장 공간 현황을 분석하고, WSL 환경에서 리눅스와 Windows 파일 시스템 간의 연결(마운트) 개념을 이해합니다.
  • 핵심 개념:
    • 파일 시스템: 리눅스는 /(루트)를 최상위로 하는 단일 트리 구조를 가집니다.
    • 마운트 (Mount): 별도의 저장 장치나 파일 시스템을 특정 디렉토리에 연결하여 접근 가능하게 만드는 과정.
    • WSL의 Windows 접근: Windows의 C: 드라이브는 WSL의 /mnt/c 경로에 자동으로 마운트됩니다.
  • 주요 명령어:
    • df -h: 시스템 전체의 파일 시스템별 디스크 사용량을 사람이 읽기 쉬운 단위(GB, MB)로 보여줍니다.
    • du -sh [경로]: 지정된 디렉토리의 전체 용량을 요약하여 사람이 읽기 쉬운 단위로 보여줍니다.

챕터 5. 프로세스 모니터링 실습

  • 학습 목표: 시스템에서 어떤 프로그램들이 실행 중인지 확인하고, 각 프로세스의 상태, CPU 및 메모리 사용량을 모니터링하는 방법을 익힙니다.
  • 핵심 개념:
    • 프로세스 (Process): 실행 중인 프로그램의 인스턴스.
    • 프로세스 ID (PID): 각 프로세스를 식별하기 위한 고유 번호.
    • 프로세스 상태 (STAT): 실행(R), 대기(S), 좀비(Z) 등 프로세스의 현재 상태.
  • 주요 명령어:
    • ps aux: 시스템에서 실행 중인 모든 프로세스의 상세 정보를 보여줍니다.
    • top: 시스템의 프로세스 상태를 실시간으로 보여줍니다. (CPU 사용량 순 정렬, q로 종료)
    • htop: top보다 시각적이고 사용하기 편리한 실시간 프로세스 모니터링 도구. (화살표 키, F 키로 조작)

챕터 6. 프로세스 제어 실습

  • 학습 목표: 포그라운드/백그라운드 작업의 개념을 이해하고, kill 명령과 '시그널'을 사용하여 프로세스를 효과적으로 제어하는 방법을 익힙니다.
  • 핵심 개념:
    • 포그라운드/백그라운드: 사용자와 직접 상호작용하며 실행되는 작업(포그라운드)과 뒤에서 조용히 실행되는 작업(백그라운드).
    • 시그널 (Signal): 프로세스에게 특정 행동을 요청하기 위해 보내는 메시지. (SIGTERM: 정상 종료 요청, SIGKILL: 강제 종료, SIGINT: 인터럽트)
  • 주요 명령어 및 단축키:
    • [명령어] &: 명령어를 백그라운드로 실행합니다.
    • jobs: 현재 백그라운드 작업 목록을 확인합니다.
    • fg %작업번호: 백그라운드 작업을 포그라운드로 가져옵니다.
    • Ctrl+Z: 현재 포그라운드 작업을 일시 정지합니다.
    • bg %작업번호: 일시 정지된 작업을 백그라운드에서 다시 실행합니다.
    • kill [PID]: 프로세스에 정상 종료(SIGTERM) 시그널을 보냅니다.
    • kill -9 [PID]: 프로세스에 강제 종료(SIGKILL) 시그널을 보냅니다.
    • pkill [이름]: 특정 이름을 가진 모든 프로세스를 종료합니다.
    • Ctrl+C: 현재 포그라운드 작업에 인터럽트(SIGINT) 시그널을 보내 중단시킵니다.

챕터 7. 서비스 관리 실습

  • 학습 목표: systemd 관리 시스템과 systemctl 명령어를 사용하여 서비스의 상태를 확인하고, 시작, 중지, 재시작하며, 로그를 확인하는 방법을 익힙니다.
  • 핵심 개념:
    • 서비스 (Service): 시스템 백그라운드에서 지속적으로 실행되는 프로그램. 데몬(Daemon)이라고도 합니다.
    • systemd: 최신 리눅스 배포판의 표준 서비스 관리 시스템.
  • 주요 명령어:
    • sudo systemctl status [서비스명]: 서비스의 현재 상태를 상세히 확인합니다.
    • sudo systemctl start [서비스명]: 서비스를 시작합니다.
    • sudo systemctl stop [서비스명]: 서비스를 중지합니다.
    • sudo systemctl restart [서비스명]: 서비스를 재시작합니다.
    • sudo systemctl enable [서비스명]: 부팅 시 서비스가 자동으로 시작되도록 설정합니다.
    • sudo systemctl disable [서비스명]: 자동 시작 설정을 해제합니다.
    • sudo journalctl -u [서비스명]: 특정 서비스의 작동 기록(로그)을 확인합니다.