파일의 구조
파일은 운영체제 서비스와 장치에 관한 간단하고 일관적인 인터페이스를 제공하기 때문에
리눅스 환경의 파일은 특히 중요하다.
리눅스는 다중 사용자 시스템 이다
여러 사용자가 같은 시스템에서 작업을 하게 되는데 내가 아닌 다른 사람이 고의 혹은 실수로
나의 파일을 복사하거나 삭제가 가능하다
따라서 리눅스에서는 사용자의 파일에 마음대로 접근할 수 없도록
접근권한을 제한할 수 있는 보안 기능을 제공한다
-rw-r--r-- (퍼미션) 부분 설명
가장 왼쪽에 - 는 파일의 속성을 나타낸다
- : 일반파일 d : 디렉터리파일 l : 심볼릭링크파일
첫번째를 제외한 부분은 세자리씩
---/---/--- 로 구분하여 user, group, other 의 권한을 의미한다
r(Read), w(Write), x(eXcute)
rwx 권한 차이
x권한이 없으면 아무것도 할수 없다
그외 나머지
2 : Hard Link 갯수
root : user(오너 소유주)
root : user(소유그룹)
4.0k : 용량
10월 20 09:28 : 파일 수정시간
.Trash/ : 파일명
파일 종류
파일의 구조는 파일이름 , inode(Index node), Data block로 구분할 수 있다
파일의 이름은 유일해야 하며 대소문자는 다른 문자로 인식한다
inode는 파일의 속성정보와 데이터 블럭을 포인트하는 정보가 있으며 ls cmd에 -l옵션을 사용하여 정보 확인 가능
data block은 실제 파일에 저장되는 내용이 들어가게 된다
일반 파일(Odinary File)
문자 - ( cat, more, cp, rm, head, tail, grep, find ...)
디렉터리 파일(Directory File)
문자 d ( ls, pwd, mkdir, cd ,mv, grep, find ...)
링크 파일(Link file)
-심볼릭 링크
문자 l
-하드 링크
디바이스 파일(Device File)/(장치파일)
-블럭 장치 파일
문자 b (ex /dev/sha, /dev/hda, /dev/fd0 )
-케릭터 장치 파일
문자 c ( Character Device File, 입출력 장치)
파일의 이름
Inode - 파일의 속성정보
# echo
Data Block - 실제 내용
# cat file
일반파일
inode 에 들어있는 파일정보
data block 에 들어있는 파일정보
디렉터리 파일
링크 파일
명령어 형식
# ln file1 file2 // 하드링크 존재하는파일(링크1) 새로생성할파일(링크2)
# ln -s file1 file2 // 심볼릭링크
하드링크
ln 명령 실행하기 전과 후 file001의 상세정보에서 하드링크 숫자가 변한것을 확인
Inode 번호 같음 을 확인
cat 을 통해서 내용이 같아 지는걸 확인(원본 수정시 링크파일도 동일하게 수정됨)
cp 와 ln 의 차이점
cp cmd는 완전히 독립적인 파일을 생성(Inode)가 다름
원본 파일을 수정해도 복사된 파일은 변경되지 않음
echo text > file2 // file2에 text 작성(새로 덮어쓰기)
echo text >> file2 // file2 에 text 추가작성
file1 을 삭제해도 file2는 보존된다
심볼릭링크
파일,inode,속성..등등 원본파일과 다름(서로 다른 파일)
fl.ln 의 파일은 l이라는 파일의 종류를 나타내고 있다(link file)
원본 파일이 어떤 것인지 가르키고 있다
파일의 크기가 다르다
(원본은 내용의 파일크기를 가지고 있지만, 링크파일은 원본의 주소만 가지고 있어서 크기가 작다)
하드링크와 심볼릭 링크의 차이점
하드링크
*파일 시스템을 넘어서 링크를 걸수 없다
*디렉터리에 링크를 걸수 없다
*Inode 번호가 동일하다
*하드링크 수 가 링크파일의 수와 동일하게 올라간다
*원본파일의 파일크기가 링크파일의 크기와 동일하다
심볼릭링크
*파일 시스템을 넘어서 링크를 걸수 있다
*Inode 번호가 다르다
*디렉터리를 파일에 링크를 걸수 있다
*바로가기 아이콘(윈도우 바탕화면에 아이콘 실행시 링크원본파일 명령하여 실행)
*상대경로를 사용하지 않는다
*하드링크 수가 변하지 않는다
*링크파일의 크기는 변하지 않는다
*일반적으로 상대경로를 사용하지 않는다
심볼릭 링크를 많이 사용한다
웹서버 에서 웹소스 디렉토리 마이그레이션 작업
용량이 큰 파일 복사 옴기기 힘듬(시간이오래걸림)
심볼릭 링크 걸어서 사용
관리 디렉터리 통합
들어가기 까다로운 곳에 있는 파일 을 바탕화면에 링크걸어서 편하게 사용
버전관리
심볼릭 링크로 파일을 관리하면 원본파일 의 버전 업데이트시
편하게 링크파일을 새로 사용할수 있다.
기존 파일을 삭제하고 새로 업데이트된 파일의 이름을 기존에 사용하던 링크 이름으로 변경
링크파일을 삭제하고 새로 업데이트된 파일에 새로운 링크파일을 생성한다
장치 파일(Device File)
어떠한 장치를 리눅스에 마운트 하면 리눅스 에서는 해당 장치를 표현하는 장치 파일로
관리가 된다. 장치파일들을 사용할 수 있게 해주는 것이 장치 드라이버 이다
-블럭 장치 파일(Block Device File)
b---------
하드디스크 , CD/DVD, 플로피디스크 등의 장치
블록이나 섹터 등의 정해진 단위로 데이터를 전송한다 I/O전송속도가 높다
-케릭터 장치 파일(Character Device File)
c---------
키보드,마우스,테이프,모니터,프린터 등의 장치
byte 단위로 데이터를 전송한다 I/O전송속도가 느리고 어플리케이션단에서 버퍼링을
제어하므로, 성능에 따라 차이가 있다.
/dev 디렉터리
터미널 , 프린터 등 각종 주변장치들을 나타내는 파일들이 있다.
/dev/*
/dev 란
리눅스 운영체제에서 '장치 파일'을 위한 특별한 디렉터리인 /dev 가 있다.
노드(node)라고 불리는 요소를 포함하며, 각 노드는 시스템의 한 장치를 나타낸다.
실제 하드웨어 장치도 있으며, 가상(pseudo)장치도 존재한다.
프로그램이나 서비스와의 입출력 연동을 편리하게 하기 위함이다.
장치타입
cdrom : CD,DVD-ROM 드라이브
fd : 플로피 디스크 드라이브
hd : 하드 드라이브나 CD-ROM과 같이 IDE로 연결된 장치
md : 하드 드라이브와 같은 메타디스크와 RAID 장치
ram : RAM 디스크
sd : SCSI로 연결된 대용량 저장 장치
usb : USB로 연결된 장치
/dev/null
널(null) 디바이스
이 가상장치는 장치로 보내는 모든 데이터를 무시해버릴 목적으로 만들어졌다
프로그램의 출력을 무시함으로써 화면상에 아무런 텍스트도 표시하지 않게 할 때 사용
/dev/full
풀(full) 디바이스
이 가상장치는 항상 꽉찬 것으로 간주되어 쓰기를 하면 에러가 리턴되고, 읽기를 하면
널(null)문자가 리턴된다.
/dev/full 장치의 목적은 프로그래머와 관리자에게 의도적인 에러를 유발하는 작업을 제공
'Learning > └Essential & Admin' 카테고리의 다른 글
리눅스 VI 편집기_Unit8 (0) | 2016.10.22 |
---|---|
리눅스 파일 속성관리_Unit7 (0) | 2016.10.21 |
리눅스 기타 관리용 명령어(2)_Unit5-2 (0) | 2016.10.20 |
리눅스 기타 관리용 명령어(1)_Unit5-1 (0) | 2016.10.20 |