개요

i2sec/Linux 2014. 7. 31. 01:10

1.Linux 개요


Linux는 Windows의 프로그램이 아닌 독자적인 OS 이다.

Linux는 공개버전과 상용버전으로 나뉜다.

그러나 기본적으로 Linux는 소스코드가 공개된 누구나 변경 수정이 가능한 오픈소스 OS이다.

Linux는 다국어를 지원



2.Linux 탄생 배경


리눅스 토파즈라는 사람이 커널 개발

리차드 스톨만이 모든 소퓨트웨어는 공유되고 공유에 대한 제한 철폐를 목표로 창립한 FSF의 GNU 프로젝트와 발전

 *GNU(Gnu Not Unix)

 *GPL(General Public License)라이선스 -> 소스 공개 및 수정 재 배포 가능



3.사용범위


-개인용 데스크탑

-워크스테이션 -> 개발자 환경

-서버 -> 웹,메일,DB,FTP 서버등 

-임베디드 -> TV, PDA, 핸드폰등

-클러스트링(pc방 카운터 pc 기능)



4.Linux 구조



-Kernel Mode/User Mode

-((((H/W(cpu,ram))커널)쉘(csh,bash)응용프로그램(vi 에디터, x 윈도우))

 -우리가 쉘에서 명령어를 입력하면 그 것이 커널로 전달되어 커널에서 하드웨어들을 제어한다.

  (우리는 앞으로 리눅스에 접속하면 서버를 다루고 원격접속을 하기 떄문에 x윈도우같은 응용프로그램은 사용하지 않는다)

=>Kernel은 H/W와 S/W의 징검다리 역활을 한다.

-커널소스 숫자

 -linux-x.y.z.tar.gz의 형식

  -x : 주 버전

  -y : 홀수 -> 베타버전, 짝수 -> 안정

  -z : 버그 수정 횟수

 -숫자가 높을수록 장치지원이 높음

=>취약점을 찾을 수 있는 가장 기본적인 요소이다.


-커널과 모듈

 -자주 사용하는 요소 : 커널에 포함

 -가끔 사용하는 요소 : 모듈(독립적)로 작성하여 필요 시 마다 호출


-Linux 특징

-대소문자의 구별이 분명하다.

-다중 사용자, 다중 작업 시스템

 -사용자 추가

  -root 사용자만이 권한을 가지고 있다.

  -설정 파일:/etc/default/useradd

  -기본 설정 파일 저장 : /etc/skel -> 사용자 생성시 마다 설정 반영

   (예 : 'ms'라는 사용자 추가시 /etc/skel -> /home/ms)

-서버로 사용하기 적합

-계정과 비밀번호가 필요

-명령어로 하드웨어를 제어(Shell 역할)

-ROOT 사용자 : 계정의 관리

-홈 디렉토리 : 각 사용자의 공간

-환경설정 파일 : 각 사용자별 환경(예:path)

 (.bashrc(단축명령어 저장), .bash_profiles(환경변수 저장))


*로그

 누가 시스템에 접근하고 제어한 기록이 남는 곳이다.

 프로그램, 서비스의 발생 시 오류도 기록한다.

 (/var/log)



5.Linux system


-리눅스 실행 과정

 전원 on ->시스템 reset -> 로그인창 -> 아이디/페스워드 입력 ->쉘 실행 ->명령어 입력 -> 커널에게 명령어 전달 ->커널이 하드웨어 조작 -> 모니터 출력

|_________________________________순환_____________________________________|


-가상 콘솔

 *기본적으로 6개 제공된다

 *Ctl+Alt+F1~F6은 Text Mode 형식의 콘솔: CLI

 *Ctl+Alt+F7은 X 윈도우로 전환 : GUI


-ROOT 계정

 *시스템 설치시에 자동으로 생성된다.

 *시스템 관리를 위해 모든 권한을 가지고 있다.(Linux의 대통령)


-일반 계정

 *시스템 관리자(root 사용자)에 의해 생성된다.

 *시스템 관리자가 초기 패스워드를 설정해준다.

  (만약 패스워드를 설정하지 않으면 접속할 수 없다.)

 *개인 사용 환경 변경 및 저장이 가능하다.


-SHELL

 *시스템과 사용자간의 대화를 가능하게 하는 명령어 해석기이다.

  ->우리가 입력한 명령어를 Kernel에게 전달

 *종류 : bash,C shell, V shell등

  ->기본 기능이나 작동법은 동일

 *기능 : 내부명령/외부명령을 실행해주는 명령프롬프트다.

         여러 명령어를 연결해서 사용가능하다(파이프:|)

         입/출력 리다이렉션으로 명령 방향 전환이 가능하다(>,>>,<,<<)

         특수문자를 해석 및 치환한다(명령어 치환)

         지역변수/환경변수를 관리한다.


-사용자 환경 설정 파일

 -.bash_logout, .bash_profile(환경변수 등록), .bashrc(단축명령어 등록)라는 환경 설정파일이 존재하는데

  이러한 환경 설정파일들은 새로운 사용자가 추가될 때 마다 각 사용자의 홈디렉토리에 복사된다.

  (원본파일은 /etc/skel(계정이 생성되는 곳) 에 존재한다)

 -모든 사용자의 환경설정 파일은 /etc/profile, /etc/bashrc 이다.


-PATH 디렉토리 추가

 현재 로그인에서만 추가할 때(로그아웃시 소멸된다,)

  -PATH = $PATH <추가할 디렉토리>

 특정 사용자에게 추가할 때는 ~/.bash_profile 에 추가해준다(로그아웃해도 소멸되지 않는다)

 전체 사용자에게 추가할 때는 /etc/profire 에 추가해준다(역시 로그아웃시 소멸되지 않는다)


-단축명령어 등록

 현재 로그인에서만 추가할 때(로그아웃시 소멸된다,)

  -alias <단축어> = 'FULL 명령어'

 특정 사용자에게 추가할 때는 ~/.bashrc 에 추가해준다(로그아웃해도 소멸되지 않는다)

 전체 사용자에게 추가할 때는 /etc/bashrc 에 추가해준다(역시 로그아웃시 소멸되지 않는다)


-Linux 기본명령어

*echo : 뒤에나오는 문자열 출력

(예 : echo shell -> shell 출력)

*echo $SHELL : 현재 내가 사용하고 있는 SHELL을 확인할 수 있는 명령어(실행결과 : /bin/bash)

 ($ : 변수 인식 인자값으로 단어를 변수로 인식 시켜준다)

*echo $? : 이전 작업이 제대로 수행됬는지 확인할때 사용(단, 바로 전에 수행했던 명령어만 확인된다!)

 (잘됬으면:0, 잘못됬으면:숫자)

*echo $PATH : 현재 환경변수 확인

*cd : 디렉토리 이동시 사용

*clear : 화면의 모든내용을 지워줌(Ctrl + L)

*history : 로그인 후 지금까지 사용한 명령어를 보여준다

 (history 목록을 지우고 싶을때 : history -c)

 (로그아웃시 .bash_history에 저장 된다)

'i2sec > Linux' 카테고리의 다른 글

프로세스  (0) 2014.08.14
권한  (0) 2014.08.14
사용자 계정 / 그룹 관리  (0) 2014.08.13
명령어 정리  (0) 2014.07.31
Directory  (0) 2014.07.31