본문 바로가기
2022/회로 | 통신 | 운영체제

[리눅스] 리눅스 정리

by Or0i쿠 2022. 9. 15.

06 프로세스 관리

 

개념

프로세스 관리 : 현재 시스템에서 실행 중인 프로그램

1. 프로세스의 부모-자식 관계

-부모 / 자식 / 자식

-‘systemd’ &’ kthreadd’ 제외하고 모든 프로세스는 부모 프로세스를 보유

-자식은 할 일 후에 부모에게 결과를 돌려주고 종료

2. 프로세스의 번호

PID : 프로세스의 고유한 번호

-1번부터 시작하며 실행되며 하나씩 증가하여 부여된다.

3.종류

데몬 :특성 서비스를 제공하기 위해 존재 리눅스 커널에 의해 실행

고아 : 자식이 실행 중 인데 부모가 종료된 자식 프로세스

- 1번 프로세스가 고아의 뉴부모가 되어 작업 종료를 지원

좀비 : 자식이 실행 종료했는데도 테이블 목록에 남아있는 경우

- 목록에서 defunct라고 나오기도 함 

- -증가하면 테이블의 용량이 부족해 일반 프로세스가 실행 안 될 수도 있음.

 

프로세스 목록 확인

1. 프로세스 목록 확인

PS 명령 : 실행 중 인 목록 보기

- 유닉스 옵션 : ‘-‘ 로 시작 묶어서 사용 가능

[-e : 실행 중인 모든 프로세스 정보 출력 ]

[-f : 자세한 정보 출력]

[-u uid : 특정 사용자의 모드 프로세스 정보]

[-p piid : 지정한 프로세스 정보]

- BSD 옵션 : 묶어서 사용 가능

[a : 터미널에서 실행시킨 p의정보]

[u : p 소유자 이름 cpu 사용량 , 메모리 사용량 등의 상세 정보] 

[x : 시스템에서 실행 중이니 모든 p의 정보]

- GNU 옵션 : ‘--' 로 시작

- [--pid PID 목록 : 지정한 특정 정보 ] 

2. 특정 프로세스 정보 검색

pgrep

3. 프로세스 종료

시그널 : p에 무언가 발생했음을 알리는 간단한 메시지

[kill/ pkill : 시그널을 보내 종료]

[* kill – l : 리눅스에서 지원하는 시그널 목록 보기]

 

 

4. 프로세스 관리 도구

Top 명령 : (상단)-현재 실행 중인 p 의 정보를 주기적으로 출력p의 자세한 요약 정보 (하단)-각프로세스 정보

- 종료하지 않고 실시간으로 프로세스의 상태

- 부적으로 사용하는 명령어 존재

시스템 정보 

- 현재 활동 -> 프로그램 표시 -> 유틸리티 -> 시스템 정보 

- 이름, 사용자, cpu사용량, 메모리 사용량을 보여줌

- [p : 종료]

 

포그라운드 백그라운드 프로세스와 작업제어

1. 포그라운드 작업 & 백그라운드 작업

포그라운드 : 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 방식

- 일반적으로 사용자가 명령을 실행

- 프롬프트가 출력이 안되므로 다른 명령을 입력할 수 없음 = 기다려야 함 (단점) 

백그라운드 작업 : 명령의 처리와 상관없이 바로 프롬프트 출력

2. 작업 제어

- 작업전환 : 

- 작업 일시 중지 : 

- 작업 종료 : 

[jobs : 백그라운드 작업을 모두 보여줌 & 특정 번호를 지정해 해당 작업의 정보만 보여줌]

[jobs (%작업 번호)]

[% (번호) : 해당 번호의 정보]

[% + 또는 %% : 순서가 +인 정보]

[%- : 작업 순서가 -인 정보]

 

작업예약

1. 정해진 시간에 한번 실행

한 번만 실행하기

at : 예약한 명령을 정해진 시간에 실행

[at (옵션) (시간)]

[-l : 현재 실행 대기중인 명령의 전체 목록 출력 (atp 명령과 동일)]

[-r (작업번호) : 실행 대기 중의 명령 중 해당 작업 번호를 삭제(= atrm)]

[-m : 출력 결과가 없어도 완료되면 메일로 알려줌] wow

[-f : 표준 입력 대신 실행할 명령 파일로 지정]

2. 반복 실행

crontab 명령 : 지정 시간이 되면 반복적으로 실행하도록 설정

- 기능 : crontab 파일 관리

- [crontab (-u 사용자ID) (옵션) (파일명)] 

- [-e : c.. 파일 생성 및편집]

- [-l : c.. 목록 출력]

- [-r :c.. 파일 삭제]

 

07 파일 시스템과 디스크 관리

 

리눅스 파일 시스템 종류

1. 리눅스 고유의 디스크 기반 파일 시스템

파일 시스템 : 다양한 정보를 소유한 파일과 디렉터리의 집합을 구조적으로 관리하는 

체계

ext(ext1)

- 개발 = 레미 카드 개발시기 = 1992.04 (리눅스 0.96c에 포함되어 발표)

- 풀 네임 = extended file system (MFS의 기능을 확장했다는 의미 담음)

- 주소체계 = 16비트 | 파일 시스템의 최대 크기 = 2GB |이름의 최대 길이 = 255byte 

ext2

- 개발 = 레미 카드 | 사유 = 전 시스템의 문제해결 | 개발시기 = 1993.01

- 초기에 불안정 -> 사용 증가 -> 현재=매우 안정적

ext3

- 개발 = 스티븐 트위디 개발시기 = 2001.11 (리눅스 2.4.15에 추가)

- 전 시스템을 기반 = 호황 가능

- 저널링 기능 도입 * 데이터를 디스크에 기록하기 전에 먼저 저널에 수정 사항을 기록

- 단점 = 1. 최신 파일 시스템 기능 부족 | 2. 온라인 조각 모음 기능 X

- 최대 크기 = 2~32TB 

ext4

- 개발 = 다수 개발시기(안정판) = 2008.12.25 (리눅스 커널 2.6.28에 포함되어 공개)

- 크기 = 1EB이상의 볼륨, 16TB 이상의 파일

- 호황성 = 2,3 가능

- 서브 디렉터리 수 = 64,000개 

- 온라인 조각 모음 가능

XFS

- 개발자 = 실리콘 그래픽스 | 개발시기 = 2000.05 (GNU GPL로 공개)

- 2001 리눅스에 이식되어 현재 대부분의 배포판에서 지원 중

- 64bit | 16EB

- centOS 7~ XFS파일 시스템을 기본으로 ext4 파일도 기본으로 사용

 

2. 리눅스에서 지원하는 다양한 피일 시스템

파일 시스템
기능
msdos
MS-DOS 파티션을 사용하기 위한 파일 시스템
Iso9660
CD-ROM, DVD의 표준 파일 시스템으로 읽기전용으로 사용
nfs
Network file system으로 원격 서버의 디스크를 연결할 때 사용
ufs
Unix file system으로 유닉스 표준 파일 시스템
vfat
윈도 95, 98, NT를 위한 파일 시스템
hpts
HPFS 지원을 위한 파일 시스템
ntfs
윈도의 NTFS를 지원하기 위해
sysv
유닉스 시스템V를 지원하기 위해
hfs
맥 컴퓨터의 hfs 파일 지원을 위해

 

3. 특수용도의 가상 파일 시스템

가상 파일 시스템

- 생성 -> 디스크 X 메모리 O 

- 특수한 용도를 가지고 필요에 따라 생기거나 없어짐

파일 시스템
기능
swap
- 스왑 영역 관리 _> 스왑 파일 시스템
tmpfs
- Temporary file system으로 메모리에 임시 파일 저장을 위한 시스템
*시스템 재시작마다 기존 내용 X
- 예) /tmp 디렉터리
proc
- Proc의 파일 시스템, /proc 디렉터리
- 커널의 현재 상태를 나타내는 파일 소유
ramfs
- 램디스크를 지원하는 파일 시스템
rootfs
- Root file system으로 / 디렉토리
- 시스템 초기화 및 관리가 필요한 내용 관리

 

4. 현재 시스템이 지원하는 파일 시스템 확인

[/proc/filesystem : 현재 커널이 지원하는 파일 시스템 종류 알려줌]

[nodev : 가상 파일 시스템, 뜻 = 블록 장치와 연결 X]

[fuseblk : ntfs을 연결할 때 사용]

리눅스 파일 시스템 구조

1. 리눅스 파일 시스템의 공통개념

모든 파일 시스템 -> UNIX에서 유래 

- 관리 -> Inode

- 디렉터리 = 파일 목록을 가진 파일일 뿐

- 특수 파일로 장치에 접근 

2. ext4파일 시스템의 구조

저장 장치 -> 논리적인 블록의 집합(블록 그룹)으로 구분

블록 크기 = 4KB *실제 크기는 시스템의 설정에 따라 변경 가능

- 0 = 첫번째 블록 그룹 0 패딩, 슈퍼 블록, 그룹 디스크립터 보유

- a = 슈퍼블록, 그룹 디스크립터 복사본 보유

- b = 셋 다 X -> 바로 데이터 블록 비트맵으로 시작

데이터 블록 비트맵 & inode 비트맵 

è각 데이터 블록과 inode 테이블의 항목은 1bit로 표현

- 데이터 블록 비트맵 : 블록 그룹에 포함된 데이터 블록 사용여부 확인

- Inode 비트맵 : inode 테이블의 사용 여부 확인

3. inode 구조

- 크게 | 파일 정보 저장하는 부분 / 실제파일의 저장 데이터블록의 주소 저장하는 부분 |으로 나뉨

- [ls -l : inode에 저장 되어있는 파일의 정보 출력]

- 데이터 블록의 저장 부분 -> 직접 블록 | 간접 블록 | 이중 간접 블록 으로 구분

4. 파일 시스템과 디렉터리 계층 구조

한 파일 시스템 구성

- 기본 설정으로 구성

- / 디렉터리에 해당 파일 시스템을 연결

여러 파일 구성

- 여러 파일로 구분하여 구성

- 루트 파일 시스템 : /디렉터리에 연결된 파일 시스템

- 일부 파일 시스템에 문제가 생기더라도 다른 파일은 안전

파일 시스템 마운트

1. 마운트 포인트

마운트 : 파일 시스템을 디렉터리 계층 구조의 특정 디렉터리와 연결하는 것

마운트 포인트 : 디렉터리 계층 구조에서 파일시스템이 연결되는 디렉터리

2. 파일 시스템 마운트 설정 파일

[/ec/fstab : ]

3. 마운트 관련 명령

디스크 추가 설치

1. 가상머신에 디스크 추가하는 방법

2. 디스크 파티션 나누는 방법

3. 파일 시스템 생성하는 방법

4. 디스크 마운트 하는 방법

5. 여러 디스크 하나로 사용하기

디스크 관리

1. 디스크 사용량 확인

2. 파일 시스템 검사 및 복구

 

08 리눅스의 부팅과 종료

리눅스 시스템의 부팅

1. 부팅

2. 바이오스 단계

3. 부트로더 관계

4. 커널 초기화 단계

5. System 서비스 단계

System 서비스

1. init프로세스와 런레벨

2. 기본개념

3. 관련 명령

4. Systemd 과 런레벨

리눅스 시스템의 종료

1. Shutdown 명령

2. 런레벨 변경 명령

3. 기타 시스템 종료 명령

 

데몬 프로세스

1. 데몬 : 

2. 동작 방식 : 

3. 슈퍼 데몬

4. 데몬의 조상

부트 로더

1. GRUB의 개요

2. GRUB2 관련 디렉터리와 파일

3. root 암호 복구

09 소프트웨어 관리

RPM 패키지 설치

1. 특징과 구조

2. 설치

3. 정보검색

4. 삭제

dnf를 이용한 패키지 설치

1. 특징

2. 목록 확인

3. 설치

4. 업그레이드

파일 아카이브와 압축

1. 파일 아카이브

2. 파일 압축

소프트웨어 컴파일

1. 컴파일러 설치

2. 간단한 C 프로그램 컴파일 및 실행

3. make명령 사용

 

10 사용자 관리

사용자 계정 관련 파일

 

1. /etc/passwd 파일

2. /etc/login.defs 파일

3. /etc/group 파일

4. /etc/gshdow 파일

사용자 계정 관리 명령

1. 사용자 계정 설정

2. 사용자 계정 정보 수정

3. 패스워드 에이징 관련 명령

4. 계정 삭제

 

'2022 > 회로 | 통신 | 운영체제' 카테고리의 다른 글

PLL 위상 고정 루프  (0) 2022.10.20
[무선통신] 디지털 통신  (0) 2022.09.15
[전자회로] PN 바이어스  (0) 2022.09.15