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
반응형

5. sudo(Super User DO), 수도명령어

sudo란? 일반 사용자로 접속하여 사용하다가 경우에 따라 슈퍼의 권한이 필요할 때 사용하는 것입니다.

sudo 권한이 필요한 이유는 a라는 사람의 파일을 b가 마음대로 사용하면 안되겠죠?

그래서 permission 권한을 지정했습니다.

sudo의 사용의 예입니다.

apt-get install git : 깃 프로그램을 설치하는 명령어 입니다.

하지만 아래의 사진과 같이 "Permission denied" 권한을 거부하는 메시지가 뜹니다.

 · sudo apt-get install git 앞에 sudo 명령어를 붙여 줘야 설치가 됩니다.

개발자 개그에 "아들아 엄마가 하는 말 앞에는 sudo가 붙는 것을 명심해라"라는 개그가 있는데요

그만큼 sudo명령어가 엄마만큼 중요하답니다.ㅎㅎ



6. nano, 파일 편집

파일 편집이란? 파일을 만들고 편집하는 방법인데요.

운영체제에서는 파일은 정보 저장의 기본적인 수단입니다.

디렉토리는 파일을 잘 정리 정돈하기 위한 수납 공간이라고 합니다.

정보 저장을 위해서 파일 편집기를 이용합니다. 

Command Line Interface 명령어 기반에서도 편집기가 있습니다. 대표적으로 nano, vi가 있습니다.

nano는 리눅스를 처음 사용하는 분들에게 추천하고,

vi는 리눅스 중,고급자 분들에게 추천한다고 하네요. vi는 익숙해지는데 시간이 소요된다고 합니다.

두 개의 편집기는 대부분의 리눅스 계열에 들어가 있기 때문에 사용법을 익히면 어디든 사용 가능하다고 합니다.


콘솔창에 nano 명령어 입력후 엔터를 치면 아래와 같은 화면이 나옵니다.

글자가 깨져있네요. ㅜㅜ

^g, ^0, ^k, ^j 등등의 명령어가 있습니다. 여기서 ^는 호스트 키를 의미해요.

각자 기억하기 쉬운 호스트 키를 지정하셨을 거라고 생각합니다.

 · nano 파일 명 후 엔터를 치면 파일을 수정할 수 있습니다.

 · ctrl+0 : File Name to Write라는 메세지가 뜹니다., 파일 이름을 적어 주시면 됩니다. 

           엔터를 하면 wrote 문장수 lines 라는 메시지가 뜹니다.

       파일을 저장하는 기능도 합니다.

 · ctrl+c : 취소하는 기능입니다.

 · ctrl+g : 나노의 도움말 기능입니다.

 · ctrl+x : nano를 나가는 기능입니다. exit

 · ctrl+k : 잘라내기 기능을 합니다.

 · ctrl+u : 붙여넣기의 기능입니다.

 · ctrl+6 : 드래그 기능인데요, 화살표를 이용해 커서를 이동시킵니다. 

복사하려는 텍스트 다음까지 커서를 이동해주세요

 · ctrl+w : 원하는 텍스트를 찾아주는 기능입니다.  ctrl+f 기능이죠.

스트키+w한 번더 눌러준다면 원하는 다음 텍스트로 이동합니다. 



nano의 기능들을 사용해 보았습니다.



7. Package Manager, 패키지 매니져

Package Manager란? 운영체제에 기본적으로 설치되어 있지 않은 프로그램을 쉽게 설치할 수 있는 방법입니다.

Package는 프로그램 또는 앱을 뜻합니다. 패키지가 갖고 있는 기능들을 이용해 다양한 처리를 할 수 있는데요.

리눅스에는 기본적으로 탑재되어 있는 패키지가 있습니다. ls, mkdir 등이 있습니다.

리눅스는 Package Manager를 제공합니다. 앱 스토어(구글 스토어 등)가 하는 역할을 합니다.

즉 필요한 프로그램을 찾고 다운 받아 설치,삭제하는 기능을 합니다.

대표적으로 apt, yum이 있습니다.

 · apt-get update; : Package Manager를 통해 설치하는 소프트웨어 상태를 최신으로 하는 명령어 입니다.

 하지만 Permission denied라는 메시지가 뜹니다. 아래에 사진에는 글자가 깨져있네요..

 · export Lang=C : 명령어를 쓰고 엔터를 치고 다시 확인하면 글씨가 잘 보입니다.



업데이트를 완료했다면 htop프로그램을 설치해보겠습니다.

 · sudo apt-cache search htop : htop로 시작하는 프로그램을 찾아줍니다.

 · top : 윈도우에서 작업 관리자와 같은 역할

 · htop : top프로그램을 개선한 프로그램입니다.



 · sudo apt-get install htop : htop 프로그램을 내 컴퓨터에 설치합니다.

 · sudo apt-get upgrade htop : 최신 버전으로 업데이트 됩니다. update가 아니에요!

 · sudo apt-get remove htop : htop프로그램을 삭제하는 명령어 입니다.

 · htop 나 top 프로그램을 들어가고 q를 누르면 빠져 나올수 있어요~


아래 사진을 보시면 조금? 화려한 작업 관리자 화면으로 설치 되었네요ㅎㅎ



Package Manager는 기본적으로 갖고 있지 않은 프로그램을 설치할 때 사용하는데요.

주어진 프로그램으로 사용하느냐 필요한 것을 다운 받아 사용하느냐의 차이인데요.

원하는 프로그램을 다운 받으려면 패키지 매니져는 필수일 것 같습니다.


생활코딩 리눅스 강의


728x90
반응형
728x90
반응형

+ Recent posts