코딩/Linux

[Linux] 패키지, 시스템 관리, Linux 부팅 및 종료, 시스템 모니터링

낫띵온미 2022. 10. 20. 23:38

※ Linux Fundamentals 교재를 참고하였습니다!

 

소프트웨어 패키지

리눅스의 소프트웨어 패키지

  • 중앙집중식, 일관적
  • 패키지 : 응용프로그램, 라이브러리, 버전정보 등 포함
    • .deb : Ubuntu 포함 Devian 계열
    • .rpm : Red Hat 계열
  • 패키지는 Repository에 저장, HTTP or FTP 서버를 통해 제공

 

소프트웨어 패키지 관리

  • GNOME GUI : 소프트웨어 업데이터 메뉴
  • 패키지 Repository가 /etc/apt/sources.list 파일에 추가 
  • $sudo apt update : 패키지 Repository 리스트의 업데이트
  • 설치 패키지명 찾기
    • http://packages.debian.org
    • http://packages.ubuntu.com
    • $apt search <keyword>

 

소프트웨어 패키지 관리 명령

sudo apt install <package> 필요한 패키지 추가 설치
sudo apt remove <package> 패키지 삭제
sudo apt full-upgrade 모든 패키지 최신버전 설치 (OS 포함)
apt show <package> 패키지 정보 검색

 

apt 관리툴

  • apt : apt-get 와 apt-cache 명령 조합, 간단사용
apt purge 패키지 관련 설정 정보 모두 제거
apt update 저장소 인덱스 정보 갱신
apt autoremove 의존성 때문에 설치됐지만 더이상 필요없는 것들 제거
apt search 패키지 검색

 

패키지 자동 업데이트

  • $sudo vi /etc/apt/apt.conf.d/20auto-updagrades
    • APT::Periodic::Update-Package-Lists "1";
    • APT::Periodic::Update-Package-Lists "0";
    • 업데이트 자동(1), 수동(0)

 

 


Linux 부팅

  1. BIOS POST (공통)
    • Basic I/O System
    • ROM BIOS : 마더보드 플래시메모리에 존재
    • 부팅될때 하드웨어 검사
    • 모든 OS의 실행 루틴에 포함
  2. GRUB 실행 (공통)
    • Boot Loader
    • 다양한 OS의 Kernel을 찾아 메모리 적재하고 실행
  3. Kernel 실행 (OS별)
    • /boot : kernel 및 관련 데이터 존재
    • 메모리에 kernel 구조 형성
    • systemd 프로세스(최초) 가동
  4. systemd 프로세스 동작
    • systemd : 처음 실행되는 프로세스, 모든 프로세스 생성하는 부모 프로세스
    • /etc/fstb 파일 읽고 파일 시스템 마운트 (directory 등등)
    • /etc/systemd/system/default.target : 지정된 실행모드 실행

프로세스(process) : 실행중인 프로그램

  • 리눅스에서 모든 프로그램은 파생되어 생성됨
  • 유일한 예외 : systemd

 

Linux 런레벨

  • 런레벨 : 리눅스 시스템의 동작 모드 의미
  • 7개(0-6), 하나 선택
  • 디폴트 : 3 or 5
0 전원 종료
1 단일 사용자 text 모드
2 not used
3 (CLI) 다중 사용자 text 모드 (Command Line Interface)
4 not used
5 (GUI) 다중 사용자 그래픽 모드 (Graphical User Interface)
6 재부팅

 

Linux 종료

  • GUI : 전원 버튼 이용
  • shutdown 명령
    • shutdown [option] [time] [message]
    • -r : 리부트
    • -c : 예약 취소
    • -k : 메시지만 전송 (테스트용)

시스템 종료

  • reboot 명령
    • reboot [option]
    • -p : 시스템 종료
    • -f : 강제 재부팅
  • halt : 하드웨어 ON, 소프트웨어 OFF

 

 

 


시스템 모니터링 명령

uptime

  • 시스템 부하(load) 상태 보여줌
  • 현재시각  |  컴퓨터 시작 후 경과시간  |  로그인된 사용자수  |  1/5/15분간 부하
  • 부하 : 단위 시간동안 실행중인 프로세스의 수

dmesg

  • 부팅이후 출력된 모든 커널메시지 출력

vmstat

  • 동작중인 프로세스, 메모리상태, 입출력 정보
  • 정보갱신주기 인자로 설정

  • r : 실행가능 프로세스 수
  • b : sleep 중인 프로세스 수
  • swpd : 사용중인 가상메모리 양
  • free : free memory 양
  • buff : 버퍼 메모리 양
  • cache : 캐시로 사용되는 메모리 양
  • si, so : swap in/out 메모리 양
  • bi, bo : 블록장치 입출력 데이터 양
  • int : 초당 인터럽트 수
  • cs : 초당 context switch 횟수

mpstat -P ALL 1

  • 프로세스 관련 정보 출력
  • 정보 출력 갱신 주기 인자로 지정
  • 출력 : CPU 점유율(%)

pidstat 1

  • 각 프로세스에 대한 상태정보 출력
  • top의 프로세스 정보와 유사

TOP

  • 실행중인 프로세스 정보 출력

  • 현재시각, uptime, 로그인한 사용자 수, load 평균
  • 프로세스 수(상태별)
  • 모드별 CPU 점유율
    1. us : NICE 값 지정 않은 사용자 모드
    2. sy : 커널모드
    3. ni : NICE 값 지정 사용자 모드
    4. id : idle 커널 상태
    5. wa : wait 대기중
    6. hi : 하드웨어 인터럽트 처리
    7. si : 소프트웨어 인터럽트 처리
    8. st : Hypervisor 사용
  • KiB Mem : 메모리 사용량
  • KiB Swap : 가상메모리 스왑 공간 사용량
  • 프로세스별 정보
    • PR, NI : 가중치, NICE값
    • COMMAND : 시작명령 또는 프로그램명

기타 유사 명령

  • iostat -xz 1 : 전체 CPU 사용륭 및 각 장치&파티션별 입출력 상황 보여줌
  • free : 시스템 메모리 상태 알려줌
  • sar -n DEV 1 : 네트워크 인터페이스 상태정보
  • sar -n TCP,ETCP 1 : TCP 프로토콜 관점 네크워크 상태정보