파일의 구성요소
우분투: 모든 처리과정을 파일 단위로 처리하며 계층적 특성을 가짐
3개 충족요건: 파일 이름, I-node, 데이터 블록
파일 존재 가치: 3대 충족요건을 가져야 하는 전제 조건
파일 이름
- 파일 이름은 사용자가 파일을 사용 목적에 맞도록 사용하고 해당 파일에 정확하게 접근할 수 있는 변별력 제공
- 이와 같은 변별력은 파일을 조작하기 위한 과정에서도 활용
- 만약 파일 이름을 정확히 파악할 수 없다면 다른 파일을 조작하여 시스템에 예상치 못한 결과 초래할 수 있음
I-node
- Index Node라고 불리며 파일정보를 기술하는 데이터 구조
- 파일의 데이터 블록이 디스크 상의 어느 주소에 위치하고 있는가에 대한 정보 기록
- 파일의 종류, 파일의 소유권, 파일의 액세스 모드, 파일의 타임스탬프(파일 갱신일)
데이터 블록
- 파일에서 데이터를 저장하는 블록
- 일반 파일이나 디렉터리 파일의 데이터가 존재, 디스크 장치에 파일을 저장할 때 실제 데이터는 특별한 구분 없이 디스크에 저장
- 파일 1과 파일 2가 디스크에 저장될 때 특별히 2개를 구분하지 않고 디스크에 차례대로 기록됨
- 실제 데이터는 디스크의 어느 한 곳에 차례대로 쌓여 있음
리눅스의 파일 속성
- r : 읽기 허용
- w : 파일 쓰거나 수정 허용
- x : 파일의 실행 허용. 디렉터리 경우 디렉터리 안으로 진입 가능
cf. touch [파일명] : 새로운 파일 만듦
소유자, 소유자와 같은 그룹의 사용자, 그 밖의 사용자 순서로 있음
ex. drwxrwxr-x : 현재 디렉터리이고, 소유자 그리고 소유자와 같은 그룹의 사용자는 는 읽기 쓰기 실행 모두 가능하며 그 밖의 사용자는 읽기와 실행만 가능
맨 앞이 d로 시작: 현재 디렉터리를 의미함
맨 앞이 -로 시작: 일반 파일을 의미함
ls -ial
- 현재 디렉터리에 저장된 파일의 i-node 번호와 i-node에 들어 있는 파일 메타 정보 출력
- 파일 이름과 i-node 번호는 디렉터리 항목에 들어 있는 정보가 출력된 것
파일의 종류
우분투에서 관리하는 모든 데이터는 파일로 인식
- 현재 실행 중인 프로세스
- 일반 파일
- 하드웨어 등
우분투는 3개의 파일 종류를 가짐
- 일반 파일
- 디렉터리 파일
- 특수 파일
파일은 사용자가 이용할 수 있는 데이터의 실체를 의미
일반 파일
- 데이터를 관리하는 데 주로 사용되는 일상적인 파일
- 각종 실행 파일이나 텍스트 파일, 이미지 파일, 프로그램 소스 파일 등 우분투에서 사용하는 대부분의 파일
- 실행 파일이나 이미지 파일의 경우 데이터가 바이너리 형태로 저장
디렉터리 파일
- 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보를 가짐
- 일반 파일과 마찬가지로 디스크에 저장, 다른 파일을 조작하고 액세스하는데 필요한 정보 가짐
링크 파일
- 유닉스와 리눅스에서는 링크(link)라는 개념을 도입해 여러 개의 파일 이름이 하나의 I-node에 연결되도록 수행
- 실제 파일이나 디렉터리 혹은 또 다른 링크를 가리킴
cf. 링크를 추가한다는 것은 단순하게 디렉터리의 엔트리를 만드는 것임
ln : 링크 파일 생성
하드 링크
- 원본 파일을 복사하여 원본 파일과 동일한 내용의 사본 파일을 만드는 것
- 원본 파일과 링크 파일 2개가 서로 다른 파일로 취급, 둘 중 어느 하나를 삭제하더라도 나머지 하나는 그대로 남음
- ln 원본파일 링크파일명
즉, 본체가 같고 서로 이름이 다름
심볼릭 링크
- 통상적으로 사용되는 링크 파일, 소프트 링크라고도 함
- Windows 운영체제에서 사용되는 ‘바로 가기’ 기능이나 ‘단축 아이콘’과 같은 역할 수행
- ln -s 원본파일 링크파일명
이미 생성된 심볼릭 링크 파일을 삭제해도 원본 파일에는 어떠한 영향도 미치지 않음
원본이 삭제되어 존재하지 않을 경우 링크 파일이 깜빡거리면서 원본 파일이 없음을 알려줌
특수 파일
- 우분투가 지원하는 파이프, 소켓, 디바이스(주변장치)를 의미함
- Windows 운영체제에서 하드디스크가 C:, D:, E: 등으로 표시
- 우분투에서는 /dev/hda1, … , /dev/hda3과 같이 사용
문서 파일
- 키보드로 입력받은 값만 가지고 있으며 ASCII 문자로 구성
- 문서를 작성할 때 해당 알파벳을 ASCII 문자로 매칭
이진 파일
- 문자가 아닌 데이터 파일이 들어 있으며 0과 1의 값으로 구성
- 프로그램을 코딩하여 컴파일을 수행하는 과정에서 생성되는 파일 (=실행 파일)
cf. 파일의 종류
|
-
|
일반 정규적인 파일
|
|
d
|
디렉터리 파일
|
|
l
|
심볼릭 링크 파일
|
|
b
|
블록 단위의 Read/Write 블록장치 파일
|
|
c
|
블록 단위의 Read/Write 문자장치 파일
|
|
p
|
프로세스 간 통신에 사용되는 특수 파일(파이프 파일)
|
|
s
|
네트워크 통신에 사용되는 특수 파일 (소켓 파일)
|
디렉터리와 파일 관리
디렉터리 계층 구조: 트리 형태
루트 디렉터리와 서브 디렉터리
- 루트 디렉터리는 기본적으로 서브 디렉터리를 가지고 있으며 유닉스와 호환성 가짐
- 파일명 뒤에 붙어있는 /는 디렉터리 파일을 의미하고 @는 심볼릭 링크 파일을 의미
- ls -F / : 루트 디렉터리의 내용을 표시
작업 디렉터리
- 사용자가 우분투에 접속하여 현재 사용하고 있는 디렉터리를 의미
- 현재 작업 중인 디렉터리는 점(.)으로 표시, 위치 상세하게 확인하려면 pwd 명령 사용
홈 디렉터리
- 각 사용자에게 할당되는 디렉터리, 사용자 계정을 처음 만들 때 지정
- 서버 시스템 구조이므로 사용자별로 홈 디렉터리를 지정해줘야 함
cf. 홈 디렉터리의 표시는 **틸드(~)**로 함
절대 경로
- 항상 루트(/) 디렉터리 위치부터 시작해야 함
상대 경로
- 현재 디렉터리를 기준으로 경로명을 시작하며, 현재 디렉터리 위치에 따라 상대 경로명이 달라질 수 있음
- ‘/’ 이외의 문자로 시작해야 함
- 현재 자신이 속해 있는 디렉터리 ‘.’으로 표현, 바로 상위 디렉터리 ‘..’으로 표현
파일과 디렉터리명 생성 규칙
- ‘/’는 파일명이나 디렉터리명에 사용할 수 X
- 파일과 디렉터리 이름에는 알파벳, 숫자, -, _, .(마침표)만 사용할 수 있음
- 공백, *, |, “, ‘, @, #, $, %, ^, & 등은 사용할 수 없음
- 알파벳 대/소문자는 엄격하게 구별되며 다른 글자로 취급
- 파일과 디렉터리명을 선언할 때 점(.)으로 시작하면 숨김 파일로 간주됨
'공부 기록 > 리눅스 기초' 카테고리의 다른 글
| [리눅스 기초] 06 우분투 에디터 (0) | 2025.11.02 |
|---|---|
| [리눅스 기초] 05 파일 명령어 (0) | 2025.10.31 |
| [리눅스 기초] 04 디렉터리 명령어 (0) | 2025.10.31 |
| [리눅스 기초] 02 우분투 기본 명령어 (0) | 2025.10.31 |
| [리눅스 기초] 01 리눅스와 가상머신 (0) | 2025.10.31 |