본문 바로가기
2CHAECHAE 학교생활/OSNW실습

[ OS/NW 실습 ] 4주차 - 파일 아카이브, 프로세스

by 2CHAE._.EUN 2022. 9. 30.

[ 파일 아카이브와 압축 ] 

 

파일 아카이브 : 파일을 묶어서 하나로 만드는 것

 

1. tar : 여러 파일이나 디렉토리를 하나의 아카이브 파일로 생성하기 위해 사용하는 명령어

 

c : 생성

x : 추출 ( 압축 해제 )

t : 파일의 내용을 출력

v : 처리하고 있는 파일의 정보를 출력한다.

 

* 현재 디렉토리에 있는 내용을 하나로 묶기 위해서는 부모 디렉토리로 가서 디렉토리 자체를 압축한다.

 

① cvf : 새로운 tar 파일 생성 & 아카이브 생성하기

 

tar cvf [ 아카이브명.tar ] [ 압축할 파일/디렉토리명 ]

* tar 파일임을 명시하기 위해서 확장자 명을 사용하는 경우도 존재한다. 

 

② tvf : 파일 안에 무엇이 들었는지 확인 가능 

 

tar tvf [ tar 파일명 ]

 

③ xvf : 압축되어있는 원본 파일 추출하기 ( 압축해제 )

 

tar xvf [ tar 파일명 ]

 

2. gzip : 파일을 압축 ( 확장자 명은 gz )

 

① gzip : 파일 압축

② gunzip 파일 압축 해제

* linux.tar.gz의 압축을 해제하기 위해서는 먼저 gz을 해제하고 tar를 해제해야한다.

 


[ 프로세스 관리하기 ]

 

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

 

① 프로세스는 부모와 자식 관계가 있다.→ 부모 프로세스가 자식 프로세스를 생성한다. 

② init(1번) 프로세스는 매우 중요하다.

③ 각 프로세스는 고유한 번호를 가지고 있다.

PID : 프로세스 ID

PPID : 부모 프로세스 ID

 

④ 데몬 프로세스 : 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행된다.

→ 웹 서버, FTP 서버 같은 하나의 특별한 서비스를 위한 프로세스이다. 백그라운드로 동작하기 때문에 보이지 않는다.

 

1. 프로세스 목록 보기

 

① ps -ef : 현재 실행 중인 프로세스의 정보를 출력한다.

 

현재 실행 중인 프로세스는 매우 많기 때문에 ps -ef | more로 한페이지씩 넘기면서 확인이 가능하다.

 

-e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력한다.

-f : 프로세스의 자세한 정보를 출력한다. 

 

* ps : 프로세스 목록만 출력

 


2. 시그널 

 

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

 

① 첫번째 putty에서 무한 루프 중인 프로그램을 실행시킨 상태에서 두번째 putty에서 접속하기

 

② 두번째 putty에서 ps -ef | grep [ 실행중인 프로그램 ]을 입력해서 실행중인 프로세스를 확인할 수 있다.

 

③ 첫번째 putty에서 실행 중인 프로세스를 중지한다면 두번째 putty서 실행중인 프로세스를 다시 확인했을 때

실행중이였던 프로세스는 보이지 않는다.

 

④ kill : 시그널을 보내는 명령 → 시그널을 받은 프로세스가 옵션에 따른 값을 수행한다.

* kill을 사용하기 위해서는 반드시 종료할 프로세스의 PID를 알아야한다. 

 

kill -9 [PID]

 

-9 : 프로세스를 강제로 종료한다. 

 

첫번째 putty에서 프로세스를 다시 작동시키고 두번째 putty에서 실행중인 프로세스의 PID를 확인 후 그 PID를

사용해서 프로세스를 강제로 종료시킬 수 있다.

 

두번째 putty
첫번째 putty

 


3. grep 

 

grep : 파일 내에 있는 특정 키워드를 찾는 명령어 ( 파일 내용 검색하기 )

 

grep [ 키워드 ] [ 파일명 ]

 

① grep SSL data : data 파일 안에 존재하는 SSL을 모두 찾기

 

② ps -ef | grep hello : ps -ef에서 hello 키워드가 들어있는 프로세스 찾기

* | ( 파이프라인 ) : 명령어를 연결하는 용도

 

* grep printf *.c : C 소스코드에 존재하는 모든 printf 함수 찾기

 


4. find 

 

find : 파일 자체를 찾는 명령어 

 

find [ 찾고 싶은 위치 ] -name [ 파일명 ] -print

 

 

찾고자하는 파일인 hello.c를 내가 원하는 위치인 .( 현재 위치 )로 부터 찾고, 찾은 다음 출력해서 보여달라는 의미

 

* find  / -name hello.c -print : 위치가 /( 루트 )일 경우 리눅스 전체에서 찾으라는 의미 → 너무 많음

 


5. which

 

 which : 명령어의 위치를 찾아주는 명령어

 


6. 포그라운드와 백그라운드 프로세스

 

백그라운드로 프로세스를 실행하기 위해서는 명령어 뒤에 &( 앤퍼센드 )를 붙여줘야 한다.

 

백그라운드로 실행중인 프로세스는 ctrl + c를 사용해서 프로세스를 종료시킬 수 없다.

→ kill -9 [PID]를 사용해서 실행 중단을 시켜야한다.

 

백그라운드로 프로세스를 실행시키는 것은 뒤에서 실행이 되는 것이기 때문에 키보드 입력을 받을 수 없다.

 

* PID 알아내기

① ps -ef | grep [ 실행중인 프로세스 ] : 찾고자하는 프로세스의 정보만 확인할 수 있다.

② ps -ef : 실행 중인 프로세스 전체의 정보를 확인할 수 있다.