Directory

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

1. 기본 디렉토리



* "/"

- 루트 디렉토리(최상위 디렉토리)

- 이 디렉토리를 기준으로 모든 디렉토리가 생성됨

- 모든 디렉토리의 출발점이자 다른 파티션의 연결점


* "/bin"

- 시스템을 사용하기 위한 기본적인 명령어를 포함하는 디렉토리                                                                                                    

  (cp, mv, vi 등)

- 일반 사용자까지 모두가 사용할 수 있는 명령어


* "/boot"

- 부팅에 필요한 커널과 핵심 파일이 들어 있는 디렉토리


* "/dev"

- 장치 파일이 위치하는 디렉토리

- /dev/null은 쓰레기통과 같은 영역


* "/etc"

- 시스템 설정파일이 들어가는 디렉토리(IP, 방화벽, P/W 등)

- 시스템이나 사용자 관리를 위한 자료 파일 관리자용 명령어


* "/home"

- 일반 사용자의 홈 디렉토리가 생성되는 곳


* "/lib"

- 시스템 운영 및 프로그램 구동할 때 필요한 공유 라이브러리


* "/root"

- 시스템 관리자, 즉 root 사용자의 홈 디렉토리


* "/mnt"

- CD-ROM과 플로피 장치에 대한 기본 마운트 포인트를 제공


* "/proc"

- 프로세스와 시스템 정보를 제공하기 위한 목적으로 설계된 가상 파일 시스템을 사용하는 디렉토리

- 프로그램을 구동하게 되면 /proc에 해당 프로세스의 PID 번호에 해당하는 데렉토리를 생성하여 프로세스의 진행 상황을 추적하고 관리

- 시스템 및 커널 정보는 문자로 디렉토리와 파일 명이 이루어지며

  현재 실행중인 프로세스의 정보는 숫자로 이름이 이루어진다.


* "/sbin"

- 관리자가 사용하는 시스템 운영에 필요한 명령어가 존재하는 디렉토리

  (fdisk, reboot, shutdown 등)


* "/tmp"

- 프로세스 생성 과정에서 발생되는 임시파일을 저장하는 디렉토리


* "/usr"

- 프로그램을 설치할 때 패키지에 포함된 대부분의 파일이 이공에 설치

- windows의 Programs files 폴더와 유사


* "/lost + Found"

- 개별 파일 시스템의 최상위 디렉토리 마다 존재

- 일반적인 상황에서는 이 디렉토리에 파일이 존재하지 않는 것이 정상

- fsck(File System Check) 명령어가 사용되는 디렉토리

- 시스템 부팅 시 파일 시스템의 이상 유무를 진단하여 문제가 있으면 구동

- 시스템을 점검 시 파일이 손상된 경우 해당 파일 시스템에 존재하는 lost+found 디렉토릴 이용하여 복구


* "/opt"

- add-on 패키지가 설치되는 디렉토리

- 표준 레드햇 리눅스 배포판에 존재하지 않는 패키지가 설치될 경우 이 디렉토리에 설치


* "/var"

- 내용이 자주 변경되는 가변 자료가 저장되는 디렉토리

-로그, 스풀, 웹 서버 관련 자료, 데이터베이스, FTP의 최상위 디렉토리 등이 이 곳에 저장된다.



2. 자주 사용되는 파일


*"/etc/passwd"

- 사용자 계정이 저장되는 파일


*"/etc/shadow"

- 계정의 P/W가 저장되는 파일, MD5로 암호화되어서 저장된다.


*"/etc/sysconfig/iptables"

- 방화벽 설정을 하는 파일


* "/etc/hosts.allow", "/etc/hosts.deny"

- 각각 화이트,블랙 리스트 기반으로 접속자의 IP와 접속방법을 제어하는 파일들 


3. 기타

* 현재 디렉토리와 상위 디렉토리

- "./"는 현재 디렉토리를 의미하고 "../"는 상위 디렉토리를 의미한다


* 절대경로와 상대경로

- 절대 경로는 최상위 디렉토리 부터 시작하는 경로를 의미

  (ex> /etc/passwd, /usr/lib)

- 상대 경로는 현재 내가 있는 디렉토리를 시작으로 하는 경로를 의미

  (ex> lib -> cdrom => ../../mnt/cdrom,  cdrom->floopy => ./floopy)


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

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

개요

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