프로그래밍/Unix

유닉스 파일의 종류

미냐님 2020. 3. 22. 23:06
728x90

명령어 구조



유닉스 파일 시스템

  • 파일 시스템이란
    • 파일을 저장하는데 쓰이는 수단
    • 디스크에 파일을 저장하는 방법. 디스크에서 파일이 구성되는 방식
  • 시스템 내의 수많은 파일을 효과적으로 관리하기 위해 디렉토리를 계층적으로 구성
    • 디렉토리, 서브디렉토리, 개별 파일
  • 유닉스의 파일은, ‘파일 이름’, ‘i-node’, ‘데이터 블록’의 세 가지 요소를 모두 충족해야 함

파일 이름 명명규칙

  • 특별한 확장명 없이 이름 사용
  • ‘.’으로 시작하는 파일의 경우
    • 숨어있는 파일을 의미
    • 주로 시스템 파일에 사용
    • ls 명령어에 옵션 ‘-a’를 설정해야 파일의 존재 확인
  • 파일 이름은 최대 255자까지 허용
  • 루트를 의미하는 ‘/’는 사용 불가
  • 파일과 디렉토리 이름에는 알파벳, 숫자, 하이픈(-), 밑줄(_), 점(.) 만을 사용
  • 파일과 디렉토리 이름에 공백, *, &, , “, ‘, ~, #, $, (, ), \, ;, <, >는 쓰지 않음

i-node

  • 리눅스가 파일을 생성할 때의 두 가지 절차
    • 파일의 데이터를 저장하기 위한 디스크 공간 확보
    • 파일에 대한 기본 정보를 저장하는 i-node(index node) 구조 생성
  • 리눅스는 i-node를 테이블에 보관
  • 각각의 i-node는 i-number(혹은 index number)라고 부름
  • 모든 디렉토리는 파일의 이름과 i-number만을 가지고 있음
  • i-node 확인 명령
    • ls –il
  • 파일 시스템에서 i-node 확인 명령
    • df –i (df는 디스크 용량 확인 명령)



데이터 블록

  • 파일을 저장할 때 실제 데이터는 구분없이 디스크에 저장
  • 데이터 블록 : 파일들의 실제 데이터가 디스크의 한 곳에 저장되어 있는 것
  • 파일들을 구분할 수 있는 부가적인 정보는 i-node에 있음

슈퍼블록

  • 디스크에 저장되는 가장 중요한 정보
  • 디스크의 헤드와 실린더 수, i-node 목록의 헤드, 자유 블록에 대한 정보
  • 파일 시스템이 마운트될 때 맨 처음 읽는 정보
  • 슈퍼블록은 모든 블록 그룹에 똑같은 복사본을 갖도록 시스템이 자동으로 만듦
    • 파일 시스템 손상되었을 때 슈퍼블록을 이용하여 복구 가능

 

파일의 종류



일반 파일

  • 데이터 저장이 목적인 파일
  • 사용자가 작성한 문서, 프로그램, 자료
  • 텍스트 파일과 바이너리 파일로 나뉨

텍스트 파일

  • 내용이 아스키(ASCII) 코드로 구성된 파일
  • 텍스트 편집기나 cat, more 명령을 이용해 내용을 볼 수 있음

바이너리 파일

  • 내용이 아스키 코드가 아닌 모든 파일
  • 실행 파일과 데이터 파일이 있음
  • 지정된 응용 프로그램을 이용해야 내용을 볼 수 있음

디렉토리 파일

  • 그 내용이 다른 파일이나 하위 디렉토리의 이름인 특수 파일
  • 디렉토리에 포함된 파일들에 대한 위치, 크기, 생성 시간 등의 정보 포함
  • 기본적으로 다음 두 파일을 항상 가짐

심볼릭 링크 파일

  • 윈도우 시스템의 바로가기 아이콘에 해당하는 파일
  • 원본 파일을 가리키는 역할만 함
  • 사용 목적 : 불필요한 파일 복사를 줄이고 파일시스템을 보다 기능적으로 사용하기 위해서
  • 디렉토리도 파일처럼 링크할 수 있음
  • 링크를 삭제할 때는 링크만 삭제, 원본 파일은 그대로 존재
  • 링크의 원본 파일을 삭제해도 링크 파일은 그대로 존재
$ cd /bin
$ ls –l ypdomainname
lrwxrwxrwx 1 root root 8 5월 30 13:20 ypdomainname ->
hostname
$

장치(디바이스) 파일

  • 유닉스 시스템에 부착된 장치들을 관리하기 위한 특수 파일
  • /dev, /devices 디렉토리에 존재
  • 문자 장치 특수 파일
    • 버퍼가 없는 장치로부터 한 번에 한 문자씩(바이트 단위) 자료를 입출력하는 장치
    • 예) 키보드, 모니터, 터미널, 프린터, 플로터, 보조 기억장치
  • 블록 장치 특수 파일
    • 버퍼기술을 사용해 자료 전송 효율을 높임
    • 수십 혹은 수백 바이트 크기의 블록 단위로 데이터를 입출력하는 장치
    • 예) HDD, FDD, 테이프 드라이브, 광자기 드라이브

파이프 파일

  • 네임드 파이프(named pipe)라고 하며, 프로세스간 통신을 수행하기 위해 만들어진 파일
  • 한 프로그램의 출력을 중간 파일 없이 다른 파일의 입력으로 바로 보내는 파일
  • 파이프는 파이프( ) 기호 왼쪽 명령어의 출력을 오른쪽 명령어의 입력으로 보냄
  • 파이프라인은 하나 이상의 파이프로 구성되며, 파이프에서의 데이터는 선입선출(FIFO : First In First Out) 방식

소켓 파일

  • 소켓(socket) : 네트워크의 입출력을 담당하는 API(Application Program Interface)로 두 호스트 컴퓨터 사이의 정보전달
  • 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치
  • 소켓 연결 과정
    • 1단계 : 소켓 생성
    • 2단계 : IP 주소와 포트 번호 할당
    • 3단계 : 연결 요청 가능한 상태로 설정
    • 4단계 : 연결 요청에 대한 수락

파일의 종류 확인

  • file 명령
    • 파일의 종류를 알아보는 명령
    • 패키지 파일의 경우 버전을 알려줌
    • 형식 : file 파일이름
$ file passwd
passwd: ascii text
$
728x90

'프로그래밍 > Unix' 카테고리의 다른 글

유닉스 디렉토리 이동  (0) 2020.03.23
유닉스 디렉토리 구조  (0) 2020.03.22
유닉스 일반 명령어  (0) 2020.03.22
유닉스 사용자 계정  (0) 2020.03.22
유닉스의 특징  (0) 2020.03.22