리눅스 윈도우 파티션, 디스크 이름

1. 파티션에 대한 이해

(1) 파티션이란?

컴퓨터에서 디스크나 메모리 등의 저장 매체를 사용하고자 하는 영역만큼 나누는 것을 말한다. 하드디스크드라이브처럼 용량ㅇ ㅣ비교적 큰 저장 매체를 유용하게 쓰기 위해 고안되었다. 즉, 하드디스크드라이브에 새로운 프로그램을 계속 설치하면 디렉토리로 관리하는 데 한계가 생기며, 컴퓨터 바이러스에 감염될 경우 모든 프로그램과 데이터들을 사용하지 못하게 될 수도 있다. 이에 대비하여 하드디스크 드라이브를 나눠 놓으면 프로그램을 별도로 저장할 수 있으며, 컴퓨터 바이러스에 감염되더라도 그 부분만 제거를 할 수가 있다.

(2) 파티션을 나누는 이유?

 - 루트 파티션 파괴시 다중 파티션 자료보호, 자료 백업 및 업그레이드 수월
리눅스가 설치된 파티션 이외의 파티션에 자료가 들어 있는 파티션의 경우 리눅스가 설치된 파티션을 포맷하여도 다른 파티션에는 영향이 미치지 않기 때문에 데이터를 보호 할 수 있다. 단일 파티션의 경우 데이터 백업 시 별도의 파티션을 필요로 하지만 다중 파티션의 경우 별도의 파티션 없이 다중의 파티션 중 다른 하나의 파티션을 선택하여 백업 할 수 있고, 파티션 용량이 부족할 때 새로운 파티션으로 대체하여 사용 가능하기 때문에 용량 부족 시 업그레이드가 수월하다

- 다중 운영체제 설치시 다중 파티션 필요
각각의 운영체제가 설치될 공간은 독립적인 공간이어야 하므로, 이러한 공간을 만들기 위해 파티션을 나누는 작업이 필요하게 된다. 또한, 하나의 디스크에 여러개의 운영체제를 사용하는 경우에 운영체제는 하드디스크를 직접 다루는 것이 아니라 하드디스크의 파티션을 제어하므로 각 운영체제에 알맞은 파일시스템 형식이 각각 있어야 한다.

- 파일 시스템 점검 시간을 줄여 부팅 시간 감소

 

리눅스 파티션 표시법

 

파티션 종류와 설명

파티션 분할시 파티션 제약이 따르게 되는데 분할된 파티션의 정보를 담고 있는 파티션 테이블의 용량이 제한되어 있기 때문에 하나의 하드디스크로 만들 수 있는 주 파티션의 개수는 최대 4개이다. 이러한 제한을 극복하기 위해서 등장한 것이 확장 파티션과 논리 파티션이다. 주 파티션 네 개에서 다 많은 파티션이 필요한 경우 네개의 파티션 중 하나를 확장 파티션으로 그 안에 논리 파티션 ( hda5, hda6, hda7.... ) 을 만들 수 있다. 주 파티션 및 확장 파티션의 경우 1부터 4까지의 파티션을 가지며, 5부터의 파티션은 그 하드디스크의 논리 파티션을 의미한다.

파티션

설명

주 파티션

 주파티션 ( Primary Partition ), 기본 파티션으로 더 이상 쪼갤 수 없는 파티션이다. 하나의 하드디스크에는 주 파티션과 확장 파티션을 네 개까지만 만들 수 있다는 제한이 있다. 네 개 이상의 파티션이 필요한 경우 확장 파티션을 만들어 그 안에 논리 파티션을 두게 한다.

확장 파티션

 확장 파티션 ( Extended Partition ), 하드 디스크를 여러 개의 파티션으로 나누고자 할 때 만드는 파티션이다. 확장 파티션은 저장 공간이 없으며, 안에 논리 파티션을 만들 수 있게 해주는 커다란 그릇 역할만 한다. 확장 파티션은 디스크에 하나만 만들 수 있다.

논리 파티션

 논리적인 파티션 ( Logical Partition ), 네 개 이상의 파티션을 사용하게 되는 경우 hda4를 확장 파티션으로 지정하여 논리 파티션을 만들게 된다.

 

 

리눅스 디렉토리 구조 ( root, bin, proc, var, etc .... )

리눅스의 디렉토리 구조는 전체적으로 트리 ( Tree ) 구조를 하고 있으며, 명령어의 성격과 내용 및 사용 권한 등에 따라 디렉토리로 구분되어 있다. 리눅스 파일 시스템 구조는 기본적인 구조를제외하고는 사용자의 설정에 따라 달라질 수 있다. 하지만 리눅스의 디렉토리 구조는 파일 시스템 표준안 ( FSSTND, linux File System Standard )을 기반으로 하는 것이 바람직 하다. 표준안을 무조건 따르라는 강제력은 없지만 리눅스 파일 시스템 표준안을 따라 파일 시스템을 구성할 경우 파일들의 위치가 일관되게 유지되어 프로그램 작성, 포팅은 물론 시스템 관리도 쉬워지는 이점이 있기 때문에 대부분의 배포판들이 이 표준안을 지키고 있다.

대부분의 리눅스는 FHS ( Filesystem Hierarchy Standard ) 표준 파일 시스템 계층을 많이 사용하고 같은 목적의 파일들을 같은 장소에 일관되게 모아 관리하므로 시스템 자원이나 프로그램들을 쉽게 찾을 수 있다. 다시 말하자면 명령어, 파일 그리고 문서들이 제각기 독립된 장소에서 관리 된다.

디렉토리명

설명

/

 ● / (root), 가장 최상위 디렉토리

 ● 모든 파일시스템의 마운트 포인터가 존재, 모든 파일 시스템의 이름 ( Name Space )이 존재

/root

 ● 시스템 관리자 (예 : root 사용자) 의 홈 디렉토리

/bin

 ● 기본 명령어들이 모여 있는 디렉토리

/etc

 ● 각종 환경 설정에 연관된 파일들과 디렉토리들을 가진 디렉토리

 ● 시스템 환경설정 파일, 서비스 구성 설정 파일, 사용자/그룹 정보 파일...

/boot

 ● 리눅스의 커널이 저장되어 있는 디렉토리

/mnt

 ● 외부 장치인 플로피 디스크, CD-ROM, Samba 등을 마운트하기 위해서 제공되는 디렉토리

/usr

 ● 대부분의 프로그램이 설치되어 있는 디렉토리 공유할수 있는 디렉토리와 파일들

/lib

 ● 프로그램들의 각종 라이브러리들이 존재

/home

 ● 시스템 계정 사용자들의 홈 디렉토리

/dev

 ● 시스템의 각종 디바이스 목록

/proc

 ● /proc 디렉토리에는 시스템의 각종 프로세스

 ● 프로그램 정보 그리고 하드웨어적인 정보들이 저장

/var

 ● 시스템에서 사용되는 가변적인 파일들이 저장

 ● 스풀, 로그, 캐싱

/tmp

 ● 임시 파일들을 위한 디렉토리

지금 배우고 있는 과정인데 숙지를 하면 좋을 것 같습니다~~^^

리눅스 명령어 kill ( 프로세스를 죽이는 명령 )

실행 중인 프로세스를 강제로 종료 ( 인터럽트 ) 시킬 수 있지만 백그라운드에서 싱행되는 프로세스는 종료 시키지 못하게 된다. 이때 kill 명령을 사용해서 프로세스를 종료시키다. kill 명령은 사용자가 프로세스에 일정한 신호를 보내서 프로세스를 종료시킨다. kill -l 명령을 사용하면 신호의 종류를 확인할 수 있다.

[명령어 형식]

# kill PID

# kill PID PID PID

# kill -9 PID     ( # kill -KILL PID )

# kill -2 PID     ( # kill -INT PID )

 

따라만 하면 참 쉽죠... 이런.. 전에 배운것을 점점 까먹고 있네요..ㅠ.ㅠ;;

리눅스 명령어 ps CMD ( 프로세스 정보 확인 )

[명령어 형식]

# ps      ( 현재 터미널에서 실행된 프로세스의 간략한 정보 확인 )

# ps -l     ( 현재 터미널에서 실행된 프로세스의 자세한 정보 확인 )

# ps -a     ( 사용자 프로세스에 대한 간략한 정보 확인 )

# ps -U <사용자명>     ( 특정한 사용자가 실행시킨 프로세스의 간략한 정보 확인 )

# ps -t pts/5     ( 특정한 터미널에서 실행시킨 프로세스의 간략한 정보 확인

옵션

내용

-e

 모든 프로세스 리스트를 출력한다.

-f

 프로세스 시작시간, 프로세스의 부모 ID, 그 프로세스에 관련된 사용자 ID, 명령 이름과 가능한 매개 변수등 모든 정보를 출력한다. ( full format )

-l

 자세한 정보 보기

-p ( pid )

 지정된 프로세스에 대한 정보를 출력한다.

-t ( tty )

 지정된 터미널에 연관된 프로세스에 대한 정보를 출력한다.

-u ( uid )

 지정된 사용자에 연관된 프로세스에 대한 정보를 출력한다. 

a

 다른 사용자의 프로세스 상태도 표시된다.

x

 화면에 보이지 않는 프로세스까지 모두 표시

예.

데몬 ( Daemon ) 의 정의 ?

시스템 ( system ) 을 위해 또는 서비스 ( Service ) 를 위해 백그라운드에서 동작하는 프로세스이다.

커널 상에서 백그라운드 모드로 작동하여 비활성화 상태에서 요청이 있을 때만 동작하는 프로세스를 말한다. 커널상에 백그라운드 모드로 실행되어 작동하지 않고 있을 때는 CPU에 부하를 주지 않지만 메모리의 공간은 차지하고 있으므로 데몬이 커널상에 많이 존재한다면 시스템의 자원을 많이 사용하게 된다.

웹 데몬 : httpd

메일 데몬 : sendmail

ftp 데몬 : vsftpd

telnet 데몬 : telnetd

리눅스 프로세스 ( process ) 란?

실행중인 프로그램

DISK ( 한글.exe ) ---> MEM ( 한글 process ) ---> CPU ( 중앙 처리 장치 )

프로세스는 프로그램이 메모리에 적재되어 실제로 실행되고 있는 상태를 말한다. 프로세스는 컴퓨터 내에서 실행중인 프로그램의 인스턴스이다. 여러 명의 사용자들에 의해 공유되고 있는 응용프로그램은 일반적으로 각 사용자들의 실행단계에서 하나의 프로세스를 갖는다. 프로세스는 자 프로세스라고도 불리는 서브프로세스를 시작시킬 수 있다. 자프로세스는 부프로세스의 복제로서 부프로세스의 자원을 일부 공유하는데, 부 프로세스가 종료되면 더 이상 존재 할 수 없다. 프로세스들은 몇 가지 IPC 방식을 통하여 정보를 교환하거 그들의 연산을 동기화 할 수 있다.

모든 프로그램은 실행될 때 하나 이상의 프로세스를 갖는다. 하나의 프로세스에는 여러 명령어와 카운트, CPU 레지스터, 그리고 루틴 인자, 복귀 주소, 저장된 변수 등의 데이터 스택이 포함되어 있다. 각 프로세스는 고유한 권한과 책임을 가지고 서로 통신하며, 시스템에서 동작중인 하나의 프로세스가 잘못된 연산을 수행하여 에러를 일으키더라고 다른 프로세스는 정상적으로 작동한다. 개별 프로세스는 자신의 가상 주소 공간에서 실행되며, 커널이 제공하는 인터페이스를 통해서만 다른 프로세스와 연동할 수 있다.

프로세스는 여러 가지 자원을 사용한다. 프로세스는 해당 명령을 수행하기 위해 운영체제에 따라 CPU를 점유 할  수 있다. 명령어와 데이터를 저장하기 위해 물리적인 메모리를 사용한다. 프로세스는 운영체제의 제어를 받으면서 실행 ( running ), 대기 ( waiting ), 중단 ( stopped ), 좀비 ( zombie ) 중 한 상태에 있게 된다.

리눅스 <Tab> 파일 이름 자동 완성 기능

디렉토리에 있는 파일이나 디렉토리의 첫 번째 문자만 입력 후 <Tab>키를 누르면 첫 글자로 시작하는 파일이나 디렉토리의 나머지 글자가 자동 완성된다. 단 , 첫 문자가 같은 디렉토리나 파일이 있는 경우 <Tab> 키 한번만 누르면 아무 변화도 없지만 <Tab> 키 두번 연속으로 누르면 동일하게 시작하는 모든 디렉토리나 파일을 출력해 준다.

[명령어 형식]

# ls t <Tab>

예를 한번 볼까요??

위의 캡쳐 사진이 보이시나요??

Tab 키를 누르게 되면 자동적으로 입력이 되는 것을 표현한 것입니다.

Tab 키를 두번 누르게 되면 파일 혹은 디렉토리가 검색이 되는 것을 확인 할 수 있습니다.

 

탭키를 은근 많이?? 사용하게 되니 적용을 잘 해 놓으시면 작업을 하시는데 편히 작업을 하실 수 있을 것 입니다.

'공부합시다 > 리눅스' 카테고리의 다른 글

데몬 ( Daemon ) 의 정의  (0) 2016.12.19
리눅스 프로세스 ( process ) 란?  (0) 2016.12.18
리눅스 파이프( Pipe, | )  (0) 2016.12.16
리눅스 쉘의 정의, 기능  (0) 2016.12.15
리눅스 명령어 find CMD linux  (0) 2016.12.14

리눅스 파이프 ( Pipe, | )

파이프 ( Pipe ) 란? 앞에 실행한 명령어의 출력 결과를 뒤에 실행하는 명령어의 입력 값으로 넣어 준다. 앞의 출력 결과를 뒤에 실행하는 명령어의 입력 결과로 보내줌으로 인해 파이프 ( | ) 를 사용하면 여러 명령을 동시에 연결하여 사용할 수 있다.

ls -al 명령을 사용하게 되면 모든 파일을 보여주므로 한 화면을 넘는 많은 파일을 보여 주게 될 때 " ls -al | more " 를 쓰게 되면 ls 명령에 대한 결과를 more 명령을 통해 확인해 볼 수 있다.

파이프의 원리

CMD   ===>>> Kemel Buffer ===>>> CMD

첫번째 CMD로 출력된 내용을 화면에 그대로 출력하지 않고 커널 버퍼에 date를 저장 해 두었다가 버퍼에 저장된 결과 값을 고지고 뒤에 있는 CMD의 입력 값으로 넘겨 뒤에 있는 명령어가 실행한 결과를 출력해 주게 된다.

[명령어 형식]

# CMD | CMD

# CMD | less    ( less : 한 페이지가 넘는 페이지 출력 방법지정 )

이해가 가시나요??

다른방법으로는

CMD ===>>> Kemel Buffer ===>>> CMD ====>> Kemel Buffer ===>>> CMD

요런 방식도 가능합니다~~^^

 

리눅스 쉘의 정의,기능

쉘은 명령행에서 입력되거나 스크립트 파일에서 읽어 들이는 명령어들을 해석함으로써 사용자와 커널의 중계 ( Interface ) 역할을 담당한다. 사용자가 로그인하면 쉘이 시작되고 사용자가 명령어를 입력하면 쉘은 명령행의 구분을 분석하고, 리다이렉션, 파이프, 와일드 카드, 작업 제어 등을 처리하고, 명령어를 PATH변수에서 검색하고 존재하면 실행한다. 쉘의 주요 기능들 중 하나는 명령행 프롬프트에서 입력된 명령어들을 해석하는 대화형 기능이다. 쉘은 명령행에서 입력된 명령어들을 분석해서 '토큰' 이라는 단어 단위로 해석한다. 토큰은 텝이나 빈칸, 개행문자 등 공백으로 구분한다. 입력된 명령어들에 메타문자들이 포함되어 있으면 적절하게 처리한다. 쉘은 파일 입출력과 백그라운드 작업을 처리하며, 명령행에서 입력이 정상적으로 분석되었을 경우 해당 명령어를 찾아 실행한다.

 

쉘의 기능을 요약해 보면 다음과 같다.

* 쉘은 PATH 변수에 정의된 모든 디렉토리를 참고하여 명령어를 찾아 실행한다.

* 쉘은 파이프, 입/출력 리다이렉션, 백그라운드 프로세싱 (Background Processing ) 을 설정한다.

* 쉘은 명령어의 모임인 별칭(alias), 쉘 함수(Function) 등을 찾아 실행시킨다.

* 쉘은 TERM 변수를 사용하여 서로 다른 터미널 환경을 초기화 한다.

* 쉘은 명령어 자동 완성 기능을 사용하여 입력한 명령어를 기록한다.

* 쉘은 사용자 환경 정의 파일을 가지고 사용자의 환경을 초기화 한다.

 

쉘의 기능

- 명령어 해석기

- 프로그램 언어

 

리눅스 명령어 find CMD linux

디렉토리안에서 원하는 파일을 찾고자 할 때 사용하는 명령어이다. find 명령 다음에 시작 디렉토리를 정해주고 찾고자 하는 파일 이름 앞에 옵션을 주면 된다.

[명령어 형식]

# find [검색시작위치] [옵션1] [인자값2] [옵션2] [인자값2]....

[명령어 옵션]

옵션

설명

-name

 파일 이름을 기준으로 검색

-perm

 파일 권한을 기준을 검색한다.

-type

 파일의 종류를 기준으로 검색

b : 블록 파일

c : 문자

d : 디렉토리

f : 파일

ㅣ : 링크

s : 소켓

-size

 파일의 크기를 기준으로 검색

+n : n보다 크다

-n : n보다 작다

n : n dlek

b : 512-byte

c : Bytes ( Character = Byte )

k : Kilo Byte

M : Mega Byte

G : Giga Byte

w : 2-byte

-links

 링크의 개수를 기준으로 검색

-user

 사용자 ID를 기준으로 검색

-atime

 특정 기간 이상 접근하지 않은 파일을 기준으로 검색

-mtime

 특정 기간 이상 수정되지 않은 파일을 기준으로 검색

-print

 표준출력으로 검색된 파일 출력 : GNU는 디펄트, Unix는 필수 입력

-inode

 number 지정된 inode 번호와 파일을 찾는다.

-exec command {} \;

 찾은 각 파일에 대해 지정된 명령을 실행

-ok command {} \;

 실행여부 ( 실행되어 있는지 아닌지 ) 를 사용자에게 확인 후 명령을 실행

이거원... 노트북을 업그레이드 해야겠네요....ㅠ.ㅠ;;

'공부합시다 > 리눅스' 카테고리의 다른 글

리눅스 파이프( Pipe, | )  (0) 2016.12.16
리눅스 쉘의 정의, 기능  (0) 2016.12.15
리눅스 명령어 grep CMD linux  (0) 2016.12.13
리눅스 명령어 file CMD linux  (0) 2016.12.12
리눅스 명령어 sort CMD linux  (0) 2016.12.11

+ Recent posts