리눅스 기초 - 리눅스란? 리눅스의 구조와 특징

728x90

리눅스는 컴퓨터를 실행시키기 위한 하나의 운영체제(OS)이다. 

리누스 토발스에 의해 만들어진 OS이고 '오픈소스' 개발에 가장 유명한 표본이다.

 

하드웨어는 손으로 만질 수 있는 것.

예를 들면 메인보드, RAM, 파워, 하드디스크, 마우스 , 키보드 , 태블릿 등

 

소프트웨어는 손으로 만질 수 없는 것.

소프트웨어는 OS, 응용프로그램( 카카오톡, Excel, Chrome )가 있다.

 

응용 프로그램은

'프로세스'라고도 하며  VS Cord, Zoo, Chrome 등과 같이 흔히 알고 사용하는 실행하는 프로그램

 

운영 체제 (OS)는

컴퓨터 사용자와 컴퓨터 하드웨어 간의 소통할 수 있게 해주는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.

 

 

 

 

리눅스의 구조

리눅스는 응용프로그램과 셸(shell)과 커널 3가지로 구성되어 있다.

- 응용프로그램 : 프로세스라고도 하고, VS Cord, Zoo, Chrome 등과 같이 흔히 알고 사용하는 실행하는 프로그램 자체가 응용프로그램이다. 이러한 응용프로그램에서 사용자가 명령을 내리면 'shell'은 이 명령을 해석한다.

 

- Shell(셸) : 명령 해석기라고도 하는 shell(셸)은 리눅스의 사용자 인터페이스로서 사용자와 커널 사이의 중간자 역할을 담당한다.

입력 명령어를 해석해서 커널에게 전달한다.

 

- Kernel(커널) : 셸에서 해석된 입력 명령어를 받아서 하드웨어에 전달하여 실행시킨다. 그래서 운영체제의 핵심인 부분이다.

그래서 커널은 OS마다 고유의 특성이 있다.

 

리눅스 명령 흐름

 

 

 리눅스 특징

 

1. 뛰어난 안정성과 보안성, 높은 신뢰성과 성능

2. 소스코드를 무료로 배포해서(오픈소스) 다양한 리눅스 배포판이 생겼다.

3. 시스템 자원을 효율적으로 관리 및 사용할 수 있다. 

멀티 유저와, 멀티 태스킹을 지원한다.

 

- 멀티유저 : 여러 사용자가 동시에 하나의 시스템에 접근 가능 ( 여러 사용자가 이용은 가능하지만 관리자 계정이 제약을 걸 수 있다.)

- 멀티태스킹 : 여러 개의 작업을 동시에 실행하고, 교대로 컴퓨터의 자원을 사용하는 기능

-CLI, GUI  : 쉽게 생각하면, CLI는 마우스로 움직일 수 없지만, GUI은 일반적인 컴퓨터처럼 마우스를 사용할 수 있다.

CLI를 사용하기 위해선 명령어를 알아야 한다.

 

 

 

리눅스 대표적인 디렉토리 구조

 

폴더명 설명
Root 더이상 뒤로 갈 수 없는 최상위 디렉토리
/bin 모든 사용자가 사용할 수 있는 기본적인 명령어가 저장된 디렉토리 (ls,cp,mkdir, mv, ....)
/dev 디바이스 파일이 존재하는 디렉토리 (블록 디바이스, 캐릭터 디바이스)
/etc 시스템의 거의 모든 파일들을 가지고 있는 디렉토리
/home 로그인한 사용자 전용 홈 디렉토리,
사용자를 생성하면 대부분의 사용자의 id와 동일한 이름의 디렉토리가 자동 생성됨
/lib 커널에서 사용하는 모듈과, 시스템에 설치 되어있는 라이브러리가 저장되어 있는 디렉토리 
/media CD_ROM이나 USB같은 외부 장치를 연결하는 디렉토리
/mnt 다양한 디바이스를 마운트시 사용하는 임시 디렉터리(맥 사용자는 없음.)
/var 애플리케이션 실행중 임시로 생성되거나 삭제될 수 있는 데이터가 담긴 디렉토리
( 로그, 스풀파일 등등...)

dev

1. 블록 디바이스 - 하드디스크, CD/DVD 같은 주변 장치를 말함.(저장장치 파일들) 수바이트 크기의 블록 단위로 입출력을 수행한다. 

2. 캐릭터 디바이스 - 입출력이 한 바이트 단위로 이루어지며, 데이터가 순차적으로 읽고 쓰인다. 입출력 성능을 향상하기 위해서는 응용프로그램에서의 조작이 필요함.

etc

/etc/sysconfig(시스템 제어판용 설정 파일)
/etc/password (사용자 관리 설정 파일)
/etc/ssh : SSH 서비스가 담겨있는 디렉토리
/etc/hosts : 도메인의 IP를 찾을 때 컴퓨터가 맨 처음 조사하는 파일
/etc/skel : 계정 사용자 생성 시의 초기화 파일이 저장된 디렉토리(adduser)에서 사용함.

var

오류가 발생하면 로그가 생성되는데 그 로그가 담긴 디렉토리

 

 

CLI와 GUI

위가 GUI 아래가 CLI

CLI 주요 명령어

명령어 사용법 설명
cd cd ..   
cd Desktop
디렉토리를 변경할 때 (이동할 때) 사용한다.
ls ls
ls -a
현재 디렉토리 안의 내용을 확인한다.
( -a : 숨김파일까지 확인한다.)
mkdir mkdir 경로+디렉토리 명 경로를 포함한 디렉토리 명을 적으면 경로에 디렉토리가 생성된다.
경로가 없으면 초기값으로 현재 폴더가 된다.
ex) mkdir /home/user/new_folder
vi vi 에디터 열기(파일 열기), 파일 내용을 추가, 수정 할 수 있는 모드
mv mv [현재위치/파일명] [이동할 위치/파일명] 파일 이동 할 때 쓰는 명령어, 이동할 위치에서 파일명을 다르게 적으면 파일 이름을 변경할 수 있다.
cp cp [현재위치/파일명] [복사할 위치/파일명] 파일 복사 할 때 쓰는 명령어,이동할 위치에서 파일명을 다르게 적으면 파일 이름을 변경할 수 있다.
cat cat 파일명 파일 내용을 보일 때 사용하는 명령어,
에디터를 이용하지 않고 바로 내용을 보여준다.
pwd pwd 내가 위치한 디렉토리 경로를 보여준다
who,whoami who 또는 whoami 로그인한 계정의 이름을 보여준다.
env env 컴퓨터가 사용하고 있는 변수를 출력하여 준다.
변수 = 값 형태로 출력된다.
echo echo $변수 변수의 값이 출력된다.
ps ps -e  
ps -f
- -e: 현재 수행하고 있는 프로세스에 관한 내용을 보여준다.
- -f: 프로세스 ID와 부모 프로레스 ID를 포함한 전체리스트를 보여준다.
kill kill pid 프로세스를 종료 시킴
grep grep 문자열 원하는 문자나 문자열을 찾을 때 사용한다.

 

vi 

1. 명령 모드 : 초기에 진입하는 모드로 방향키를 이용해서 커서 이동 가능

2. 입력 모드 : 명령 모드에서 'i' 를 이용해서 입력 모드로 들어감 (입력 모드가 되면 하단에 insert)가 표시됨. 입력 모드에서 esc를 누르면 명령 모드로 돌아옴.

3. 콜론 모드 : 명령 모드에서 ' : ' 콜론을 사용하면 맨 마지막 줄에 입력 가능한 공간이 생긴다. 

- :q > 일반 종료
- :q! > 강제 종료
- :w > 일반 저장
:w! > 강제 저장    
- :wq! > 강제로 저장하고 종료

 

ps

ps를 호출하면 pid가 있는데 프로세스를 실행할 때 생기는 고유번호이다.

ps를 종료할 때 pid를 이용하여 종료시킬 수 있다.

 

kill

kill -9 구현한 종료 함수가 호출되지 않고 즉시 프로세스가 종료되어 버리므로 데이터가 유실되거나 리소스가 제대로 안 닫히는 큰 문제가 발생할 수 있다.

반응형

'SETTING' 카테고리의 다른 글

Nodemon 설치 및 세팅  (0) 2023.04.19
MAC - MySQL 설치하기  (2) 2022.12.21
MAC - Node.JS 환경 세팅하기  (0) 2022.12.05
Mac - GitHub 세팅하기  (0) 2022.11.25
Mac - Git 환경 세팅하기  (0) 2022.11.23