1.
어떤 분의 질문입니다. 제가 쓴 글을 따라가다 보면 한곳에서 막힙니다. 그래서 보충을 합니다.
우리가 주변에서 볼 수 있는 OS는 여러종류가 있습니다. 스마트폰에 들어가는 OS도 있고 PC에서 사용하는 OS도 있습니다. 아니면 증권사의 원장시스템에서 사용하는 OS도 있습니다. 스마트폰, PC 및 원장서버는 하드웨어입니다. CPU, Memory 및 주변기기등으로 나뉩니다. OS를 이러한 자원을 이용자의 요청에 따라 활용할 수 있도록 해줍니다.
OS의 핵심은 커널입니다. 이용자가 쉘을 통하여 영어로 된 명령어를 입력하면 – 혹은 여러개의 명령어를 입력하면 – OS의 커널은 명령어를 하나씩 수행하여 결과를 보여줍니다. CLI(Command Line Interface)라고 합니다. 이 때 이용자와 OS의 커널 및 하드웨어를 연결해주는 것이 필요합니다. 그것이 쉘입니다. 반대로 GUI(Graphical User Interface)는 CLI처럼 명령어를 입력하지 않습니다. 일반 사용자들이 익숙한 윈도우도 커널이 있고 쉘이 있습니다. 다만 GUI에 익숙한 나머지 커널이나 쉘을 접할 기회가 거의 없기 때문에 생소할 뿐입니다.
2.
리눅스에서 쉘을 이용하려면 Terminal Window를 열어야 합니다. 윈도우에서 Command Shell을 사용할 때 명령창(Command Window)를 여는 것과 똑같습니다. 윈도우7을 기준으로 하여 설명해 보겠습니다.
윈도우 시작버튼을 누르면 맨 아래 ‘프로그램 및 파일검색’이라고 입력창이 보입니다. 여기에 cmd를 입력하면 아래와 같은 명령창이 나옵니다.
리눅스도 다르지 않습니다. GUI상단에 위치한 Application>System Tools> Terminal을 누르면 Terminal 창이 뜹니다.
쉘이 무엇인지 해볼까요? 윈도우 명령창에서 ipconfig를 입력합니다. IPconfig는 네트워크환경정보를 얻을 수 있는 명령어입니다. 아래와 같은 출력이 보입니다.
리눅스도 다를 바 없습니다. IPconfig에 해당하는 리눅스 명령어는 ifconfig입니다. 실행하는 윈도우와 비슷한 정보를 보여줍니다.
이처럼 윈도우 쉘이나 리눅스 쉘은 명령어를 입력받아 이용자가 원하는 정보를 보여주거나 실행을 합니다. 윈도우는 Command Shell 이외에 Power Shell을 제공합니다. 리눅스는 좀더 종류가 많습니다. Centos를 포함한 많은 리눅스들은 bash를 기본으로 지원합니다.
3.
이제 어제 설명한 부분이 빈자리를 살펴보죠. 어제 설명한 자료를 “$”로 시작하는 부분들이 많습니다. 특히 eclipse를 설치하는 설명이 그렇습니다. $는 쉘상태에서 명령어를 입력하라는 뜻입니다. su나 sudo도 마찬가지입니다. 입력을 하면 아래와 같은 결과를 얻습니다.
리눅스 쉘을 잘 이용하면 굳이 c프로그램을 짜지 않고도 할 수 있는 작업이 무척이나 많습니다. 특히 시스템관리분야는 그렇습니다. 그렇다고 전문가일 필요는 없습니다. 아래에 소개한 unix toolbox에서 정리한 명령어정도만 이해하여도 개발하는데 어려움이 없습니다.
ZeroAOS를 이용한 예제 자료 또는 교육은 없는가요? 증권사에서 자료를 받아서 study를 하고 있지만 C언어에 리눅스라서 너무나도 생소합니다. 교육이라도 빨리 진행되었으면 좋겠습니다.
혹 배포한 자료중 샘플이 있는데 부족한가 보네요. 혹 어떤 유형이면 좋을지 알려주시면 작성해서 공개할께요. 메일로 하셔도 됩니다.