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 |