SDD, HDD ... (Storage) 에  프로그램들이 깔려있다. 이러한 하드웨어는 가격은 저렴하지만 용량이크고, 속도는 느린 특징을 가지고 있다.

반면, Memory의 경우 가격은 비싸지만 용량이 작고, 속도가 빠른 특징을 가지고 있다.


■ 컴퓨터의 동작원리 

 - Storage 에 저장된 프로그램을 읽어서  Memory에 적재시킨다. (이 때 실행되지 않은 프로그램들은 Storage에 저장되어 있을 뿐  Memory에 적재되지 X)

 - Memory에 올라가 실행되는 프로그램들을 Process라고 한다. 

 - 이렇게 Memory에 올라간 프로그램을 cpu가 읽어서 컴퓨터가 동작한다.

 - cpu는 Processor라고도 하는데 그 이유는 Memory에 올라간 process를 처리하므로 Proceseeor라고 한다. 

 

http://cybernetnews.com/linux-directory-structure/


http://linux.tutsgo.com/2016/07/manage-files-from-command-line-in-linux.html  


https://opentutorials.org/course/2598/14205 


를 참고하여 리눅스 디렉토리의 구조를 살펴보자.

쉘을 통해서 명령을 실행시키는 작업을 한 번에 실행할 수 있는 방법을 알아보자. 

( Shell Script 를 통해서 여러가지 자동화된 작업을 처리할 수 있다. ) 


■ 예 상황 : a.log,  b.log,  c.log ..20170501.log....이러한 log 파일들이 하루마다 생성된다고 가정하자.

이러한 로그 파일들이 생성되면  bak 이란 백업디렉터리에 저장해야하는데, 이때는 쉘스크립트를 작성하여 자동적으로 실행시키는 것이 좋다.


먼저 echo $0 을 입력하여 어떤 쉘을 사용하는지 확인해보자. 2) 에서 사용하는 shell을 언급해줘야하므로.

 1) 파일을 하나 만들고 해당 파일에 쉘 스크립트를 작성해보자. 

 2)  #!/bin/bash  : bin 밑에 bash라는 프로그램을 통해서 해석되야한다는  것을 의미한다.

 3) if  ! [ -d bak ] ;  then    -- bak이란 디렉터리가 없으면 

          mkdir bak             -- bak 디렉터리를 생성하라.

     fi                             -- if 를 거꾸로 ( END IF 와 비슷한 역할을 한다.)   

     cp *.log bak              -- log 확장자를 가진 모든 파일을 복사하여 bak 디렉터리에 붙여넣자.


 4)  파일을 저장(파일명 : backup이라고 가정) 하면 Shell Script 를 실행해보아야겠지 ? 

 5) ./backup 을 입력하여 쉘 스크립트를 실행하려하였으나 정상적으로 deny 됐다.  그럼 어떻게 해야할까?

 6) 권한을 변경해줘야한다.  chmod +x backup 을 입력하여 x 즉 excutable 실행가능한 상태로 변경해줘야한다.

 7) 이렇게 해주면 해당 쉘 스크립트를 실행시킬 수 있다. 

 


1) kernel : Hardware를 제어하는  운영체제의 핵심이다.

2) shell : 사용자가 명령을 입력하면 그 명령을 컴퓨터가 이해할 수 있도록 하는 프로그램

 

사용자는 이러한 커널을 직접적으로 제어할 수는 없다. 

그럼 사용자들은 커널을 어떻게 제어할 수 있는가 ? 

사용자들이 인지하기 쉬운, 자연어로 된 명령어를 입력하여 2) shell 이 해석하고 이 것을 커널에게 전달하여 하드웨어를 제어하는 것이다.


요약하면, 커널은 주로 하드웨어 자원(HDD, SSD, memory etc..)을 효율적으로 관리하기 위해서 필요한 요소라고 생각하면 된다. 

커널이 시스템 자원을 관리한다고 말했지만 관리가 일어나기 위해서는 어떤 명령이 실행된다던지 프로그램이 실행되어야 한다. 

그리고 보통 그런 명령의 실행은 유저의 입력에 의한 것이 대부분이다. 이 떄 유저의 입력을 어떻게 받아서 처리 할 것인지를 결정하고 도와주는 녀석이 바로 쉘이다.

ps : 현재 실행되는 프로그램의 리스트를 출력하는 명령어(프로그램)이다.

(ps :process의 약자)

ps aux : 백그라운드에서 돌고 있는 프로그램까지 모두 나타난다.

 

예 )  ps aux | grep apache 

백그라운드에서 돌고있는 프로그램까지 포함하여 'apache' 라는 문자열이 들어간 프로그램이 나타난다.

+ Recent posts