코딩/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 부팅
- BIOS POST (공통)
- Basic I/O System
- ROM BIOS : 마더보드 플래시메모리에 존재
- 부팅될때 하드웨어 검사
- 모든 OS의 실행 루틴에 포함
- GRUB 실행 (공통)
- Boot Loader
- 다양한 OS의 Kernel을 찾아 메모리 적재하고 실행
- Kernel 실행 (OS별)
- /boot : kernel 및 관련 데이터 존재
- 메모리에 kernel 구조 형성
- systemd 프로세스(최초) 가동
- 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 점유율
- us : NICE 값 지정 않은 사용자 모드
- sy : 커널모드
- ni : NICE 값 지정 사용자 모드
- id : idle 커널 상태
- wa : wait 대기중
- hi : 하드웨어 인터럽트 처리
- si : 소프트웨어 인터럽트 처리
- 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 프로토콜 관점 네크워크 상태정보