728x90
반응형
728x90
반응형

14. 프로세스

14.1 컴퓨터의 구조

CPU(중앙처리장치) : Processor

RAM(메모리) : 가격이 비싸다 | 용량이 작다 | 속도가 빠르다

HDD, SSD, SD(Storage, 저장장치) : 가격이 싸다 | 용량이 크다 | 속도가 느리다

프로그램은 storage에 저장되어 실행을 할 때는 프로그램을 읽어 메모리에 적재시킵니다.

실행되지 않는 프로그램은 메모리에 올라가지 않겠죠.

메모리에 올라온 상태의 프로그램을 cpu가 읽어 동작하여 데이터를 처리합니다.

즉, CPU가 빠르기 때문에 느린 storage를 이용할 수 없기 때문에 빠른 메모리에 필요한 프로그램을 적재하여 사용하는 것입니다. 이것이 컴퓨터 시스템이 갖고 있는 기본 아키텍쳐(설계)입니다.

프로세스 : 프로그램을 실행하면 메모리에 적재되어 cpu(프로세서)에 의해 처리되는 것들이 실행되고 있는 상태



14.2 프로세스 모니터링 (ps, top, htop)

프로세스 리스트를 살펴보는 방법에 대해 알아보겠습니다.

 · ps : 프로세스 리스트를 보여주는 명령어입니다.

 · ps aux : 백그라운드에서 돌아가는 수많은 프로그램을 보여주는 명령어입니다.

 · ps aux | grep apache : apache를 포함하는 프로세스를 화면에 출력합니다.

PID는 프로세스 아이디로 각각에 프로세스마다 식별자를 갖습니다. 

 · sudo kill 1347 : 강제로 프로그램을 종료시키는 명령어입니다.

 · sudo top : 작업관리자 화면으로 각각의 항목이 프로세스 리스트입니다.

 · sudo htop : top보다 시각적으로 그래피컬한 프로그램입니다.

load average : 프로세스 점유율을 1분간, 5분간, 15분간 평균치를 나타냅니다.

CPU의 숫자에 따라 load average숫자가 갖는 의미가 다를 수 있습니다.

f10은 나가기, f4는 특정 프로세스 확인



15. 파일을 찾는 법

15.1 locate와 find

파일의 위치 찾는 방법에 대해 알아보겠습니다.

파일은 데이터를 보관하기 위한 용도와 실행파일로 구분 됩니다.

 · locate [파일명] : [파일명]과 일치하는 파일들을 찾아 줍니다.

locate *.log : 확장자가 로그로 끝나는 파일을 모두 찾아줍니다.

find는 실제 디렉토리를 검색하여 찾아줍니다. 현재 상태를 가져올 수 있습니다.

find usage (find 사용법)

 · find --help | head : find 도움말의 한 줄만 출력하는 명령어

find / : 루트 디렉토리부터 찾겠다 find . : 현재 디렉토리부터 찾겠다.

 · find / -name *.log : 컴퓨터에 있는 모든 디렉토리를 뒤져 log라는 파일을 찾는다.

permission denied 권한이 없다고 뜨면

 · sudo find /-name *.log

 · find -type f -name "tecmint.txt" -exec rm -rf {} \; : 현재 머물고 있는 디렉토리에 파일에서 tecmin.txt를 찾아 삭제를 실행하라는 의미를 갖습니다.


15.2 whereis와 $PATH

 · whereis : 실행파일을 찾아주는 명령어입니다.

 · whereis ls : /bin/ls는 빈 디렉토리 밑에 있다 /usr/share/man/ma1/ls.1.gz ls메뉴얼 정보의 위치를 알려줍니다.

 · Echo $PATH : 선택한 정보가 path라고 담겨있는 정보, : 을 통해 경로가 구분되어 있습니다.

$PATH는 리눅스가 기본적으로 갖고 있는 변수로 환경변수라고 부릅니다.



16. 백그라운드 실행

여러 개의 일을 한 화면에 진행하는 것을 멀티 태스팅(Multitasking)이라고 합니다.

리눅스 유닉스 계열에서도 Background, foreground를 바꿀 수 있는데요.

 · nano : 나노 에디터 편집기가 나타납니다.

<html>

<body></body>

</html>

ctrl+0 저장 후 -> hello.html 이라는 html파일을 생성합니다.

여기서 프로그램을 종료하지 않고 다른 작업을 할 수 있는 방법이 있습니다.

 · ctrl+z를 누르면 프로그램이 꺼진 것 같지만 꺼지지 않고 다른 작업을 진행 하도록 하는 기능입니다.

 · fg : foreground의 약자로 hello.html이 다시 켜집니다.

 · jobs : 백그라운드 작업들의 목록을 보여줍니다.  nano, vim이라는 프로그램이 백그라운드로 실행되고 있네요.

vim : nano와 경쟁관계에 있는 에디터 입니다.

 · fg %[번호] : 번호 프로그램이 foreground 프로그램이 실행됩니다.

fg %2 : 2번 프로그램이 foreground 프로그램이 실행됩니다.



 · kill $4 : 4번 프로그램을 강제 종료시키는 명령어입니다.

 · kill -9 $4 : kill보다 강력한 명령어로 기능은 동일합니다.

 · ls -R / > result.txt 2> error.log : 실행된 결과가 result. txt에 저장, 에러가 난다며 error.log에 저장하는 명령어

 · ls -alR / > result.txt 2> error.log & : 만약 1-2시간 걸리는 작업의 명령어라면 &를 입력하고 작업을 진행하다 보면

exit라는 출력 메시지가 뜨면서 작업이 완료되었음을 알려줍니다. 



17. 항상 실행 (daemon, service)

17.1 데몬의 개념

Daemon : 사전적으로 반신반인의 의미를 가집니다. 데몬은 항상 실행되고 있다는 특징을 가집니다.

ls, mkdir, rm프로그램은 데몬이 아니라 필요할 때 키고 필요가 없다면 끌 수 있는 프로그램입니다.

예를 들어 설명하자면

컴퓨터, 전자레인지, 티비는 항상 켜져 있지 않은 반면에

모뎀, 도어락, 냉장고는 항상 켜져 있는 상태이죠 이를 데몬이라고 합니다.

리눅스에서도 데몬이 있는데요. 바로 server로 불리는 프로그램입니다.

클라이언트    인터넷    서버

서버는 언제 클라이언트(웹 브라우저)가 접속할지 모릅니다.

따라서 서버(웹 서버)는 카운트 파트너로 항상 켜져 있습니다. = daemon 또는 service라 부릅니다.


17.2 service와 자동실행

웹 서버 중 대표적인 예로 apache가 있습니다.

 · sudo apt-get install apache2 : apache2 프로그램을 설치합니다

 · cd /etc/init.d/ : apache2 프로그램이 위치하고 있습니다, 데몬 프로그램들이 위치하는 디렉토리입니다.

 · ls : apache2 apache2가 설치되었음을 알 수 있습니다.

 · sudo service apache start : 아파치2 프로그램을 실행하는 명령어입니다.

 · ps aux : 현재 실행 중인 프로세스 리스트입니다.

 · ps aux | grep apache2 : 아파치가 실행되고 있음을 알 수 있습니다.

 · sudo service apache stop : 아파치2 프로그램을 종료하는 명령어입니다.

데몬은 컴퓨터가 실핼될 때 자동으로 실행되고 있어야합니다. 언제나 실행되고 있어야 하죠.

/etc/rc3.d/링크 : CLI방식

/etc/rc5.d/링크 : GUI방식

s는 시작 k는 종료를 의미합니다.

./S02apache2 : 프로그램이 없음에도 불구하고 아파치를 구동시키는 명령어입니다.





생활코딩 리눅스 강의



728x90
반응형

'OS > Linux' 카테고리의 다른 글

리눅스 명령어 이해하기7!!  (0) 2017.08.30
리눅스 명령어 이해하기6!!  (0) 2017.08.29
리눅스 명령어 이해하기4!!  (2) 2017.08.27
리눅스 명령어 이해하기3!!  (0) 2017.08.26
리눅스 명령어 이해하기2!!  (4) 2017.08.25
728x90
반응형

+ Recent posts