- 커널
- 응용 프로그램
- 쉘(The Shell)
- X windows system
Operating system의 가장 핵심적인 부분은 커널입니다. 핸들링 파일, 디스크, 네트워킹 등 다른 필수적인 역할을 하는 것인데요. 그 이후 문서작성이나 웹브라우징, 오디오, 비디오, 프로그래밍, 문서 같은 것을 publishing이나 암호화하는 응용 프로그램이 있습니다.
이런 응용프로그램 중에서 독특한 것이 있는데 이것의 이름은 Shell입니다. 이는 command형식으로 운영체제를 사용할 수 있도록 해주는 것입니다. 윈도우를 사용할 때는 마우스나 같은 그래픽이 된 것으로 사용했습니다. X vindows system으로 GUI를 사용할 수 있으며 이는 리눅스에서는 KDE와 GNOME이라는 패키지가 있습니다.
리눅스는 익숙하게 되면 COMMAND로 많이 쓰게 됩니다. 리눅스에서는 다양한 쉘이 있는데 Bourne shell, Bourne Again shell 등등이 있습니다.
터미널이란?
터미널의 어원의 근거를 알려면 컴퓨터의 과거로 가야합니다. 옛날에는 컴퓨터 한대를 여러명이서 같이 썼는데요. 이런 화면과 키보드가 붙어 있는 것을 바로 터미널이라고 부릅니다.
사람이 터미널 앞에 앉아서 입력을 하는 것입니다. 이것이 그대로 GUI로 옮겨 왔다고 보면 됩니다. 전체 바탕화면이 있고 우리가 터미널을 띄우면 사각형의 화면이 나옵니다. 이것이 마치 기존의 터미널처럼 화면을 보여주고 입력은 키보드에서 입력이 들어가는 것입니다.
그래서 이 터미널에서 입력을 받아서 실행한 후 터미널에 보여주는 것이 바로 쉘입니다. UNIX Operating system이 있고 이것에는 쉘이 크게 있으며 쉘은 이것을 사용자에게 입력을 받고 출력을 해주는 역할을 합니다.
지금은 이런 터미널을 쓰지 않기 때문에 GUI로 만들어진 가상의 터미널이며 H/W 터미널을 emulate하는 프로그램으로 구성됩니다.
여기서 $ 기호는 사용자가 입력을 기다리는 의미입니다.
man 명령
주어진 명령(command)에 대한 manual page를 보여주는 명령입니다.
형식
man[man options][[section]page]command
예
man ls
한번 직접 실행을 해보면서 보겠습니다.
man - ls를 실행한 결과입니다. 이렇게 NAME, SYNOPSIS, DESCRIPTION 등등이 나옵니다. 리눅스는 중간에 빠져나오려면 q를 입력하시면 됩니다.
파일 및 디렉토리 리스트 및 정보를 나타내는 man -ls에 대해서 알아봤습니다.
리눅스의 파일 계층 구조
Directory는 윈도우의 폴더라고 생각하시면 되는데요. 맨 위에는 root라는 폴더가 존재합니다. 이후 usr, etc, home 등등 나눠져서 cam, alice, hatter, gryphon 등등으로 계층의 구조가 되어 있습니다. 이는 리눅스를 계속 이용하다 보면 조금 익숙해질 것입니다.
루트 디렉토리
최상위 디렉토리로 '/'로 표기
경로 혹은 절대경로
루트에서 특정 파일에 이르는 디렉토리와 파일명 /home/cam/book/wonderland
현재 또는 작업 디렉토리
쉘이 현재(작업중) 위치한 디렉토리입니다. 상대경로는 현재 디렉토리에서 시작하여 나타낸 경로를 의미합니다.
특수한 디렉토리
모든 디렉토리는 . 이라는 디렉토리와 .. 이라는 디렉토리가 존재합니다. 점 하나(.)은 현재 디렉토리를 가리킵니다. 점 두개(..)는 부모 디렉토리 즉 한 칸 위의 디렉토리를 의미합니다.
홈 디렉토리
사용자 별로 주어진 디렉토리로 사용자 이름에 '~'를 붙입니다. ex) ~gildong
$HOME 변수는 현재 사용자의 홈 디렉토리를 나타내는 것입니다.
디렉토리 관련 명령
pwd(print working directory)
현재 (작업) 디렉토리를 알려줍니다.
cd(change directory)
현재 디렉토리를 주어진 디렉토리로 변경하는 것을 의미합닌다. cd / 를 루트 디렉토리를 현재 디렉토리로 바꿔주는 것이며 cd ~사용자 이름 하면 사용자의 홈 디렉토리로 변경해주는 것을 의미하며 cd - 는 이전 디렉토리로 변경하는 것입니다.
'tab key'를 입력하면 적용가능한 경로를 쉘이 자동으로 채워줍니다.
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
Linux 파일 (0) | 2024.09.19 |
---|---|
리눅스 ls 명령, 디렉토리 추가 및 삭제 명령 (0) | 2024.09.13 |
GPL, LGPL, BSD, MIT, Apache License개념 설명 (0) | 2024.09.05 |
OSS 라이선스 준수사항 및 sw 라이센스 (0) | 2024.09.05 |
OSS 장단점 활용 및 개발 과정 (0) | 2024.09.05 |