unix unbounded a beginning approach
DESCRIPTION
UNIX Unbounded A Beginning Approach. 이 성 현 Home : nimilx2.hannam.ac.kr E-mail : [email protected] Tel : +82-42-629-7559. 목차. 파일 시스템 개요 UNIX 파일 유형 디렉토리 디렉토리 명령어 파일 내용 화면에 출력하기 파일 내용 프린팅 파일 삭제. 요약 질의 및 응답 실습 예제. 파일 시스템 개요. 개요 파일 시스템 인터페이스는 비교적 안정적 , 점진적으로 발전 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/1.jpg)
HANNAM HANNAM Univ.Univ.
UNIX UnboundedUNIX UnboundedA Beginning ApproachA Beginning Approach
이 성 현이 성 현Home : nimilx2.hannam.ac.krHome : nimilx2.hannam.ac.kr
E-mail : E-mail : [email protected]
Tel : +82-42-629-7559Tel : +82-42-629-7559
![Page 2: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/2.jpg)
2
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
목차목차
파일 시스템 개요
UNIX 파일 유형
디렉토리
디렉토리 명령어
파일 내용 화면에 출력하기
파일 내용 프린팅
파일 삭제
요약
질의 및 응답
실습 예제
![Page 3: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/3.jpg)
3
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 개요
■ 파일 시스템 인터페이스는 비교적 안정적 , 점진적으로 발전■ 프레임워크는 초기 버전과 달리 완전히 바뀜■ 초기 유닉스 시스템은 한 타입의 파일 시스템 지원
▶ 로컬 파일만 지원
■ 최근 유닉스 시스템은 여러 시스템 타입을 지원하는 vnode/vfs 인터페이스로 대체
▶ 로컬 및 원격 파일 지원
■ 시스템 V, BSD 4.2 이전은 s5fs 지원■ BSD 4.2 는 Fast File System(FFS) 채택
![Page 4: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/4.jpg)
4
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일에 대한 사용자 인터페이스
■ 파일 , 디렉토리 , 파일 디스크립터 , 파일 시스템 등의 개념을 제공
/
bin etc dev usr
passwd passwd hosts
vmunix
local lib
![Page 5: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/5.jpg)
5
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일과 디렉토리
■ 서로 다른 타입의 파일 시스템은 고유 내부 디렉토리 포맷 사용■ POSIX.1 은 디렉토리 연상용의 표준 라이브러리 루틴을 규정
▶ dirp = opendir (const char *filename); ▶ direntp = readdir (dirp);▶ rewinddir(dirp);▶ status = closedir(dirp);
■ 복귀되는 디렉토리의 포맷은 파일 시스템 독립적struct dirent {
ino_t d_ino ; /* inode 번호 */ char d_name [NAME_MAX+1] ; /* null 로 끝나는 파일 이름 */;
}
![Page 6: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/6.jpg)
6
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 속성
■ i-node 가 파일의 속성 보관■ i-node 의 포맷 및 내용은 파일 시스템 종속적■ Stat 와 fstat 시스템 콜이 파일 속성 복귀
▶ 파일 시스템 독립적 포맷
■ 파일 속성을 조작하는 시스템 콜▶ link, unlink, utimes, chown, chmod
■ 일반적인 파일속성▶ file type ( 디렉토리 , FIFO, 심볼릭 링크 , 특수파일 )▶ 하드 링크의 수 , - 파일 크기 ( 바이트 수 )▶ 디바이스 id, - inode number▶ 타임스탬프 , 허가 및 모드 플래그
세 개의 모드플래그 - suid, sgid, sticky▶ suid 가 on 이면 수행시 effective UID 를 파일의 소유자로 변경▶ 파일이 group-execute 허가 없고 , sgid=on 이면 , mandatory file/record locking 이 enable 상태임▶ sticky 플래그는 수행 파일 수행 후 프로그램 이미지를 스왑 영역에 유지 요구
![Page 7: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/7.jpg)
7
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ fd = open(path, oflag, mode);■ 파일 디스크립터는 오픈 파일의 핸들 ( 또는 참조 번호 ) 역할■ 파일 디스크립터는 프로세스별 객체임■ 파일 처음 오픈 시 옵셋 =0 으로 설정■ dup, dup2 시스템 콜로 디스크립터 복사가능
fd1 offset
offsetfd2
file
![Page 8: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/8.jpg)
8
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ Data structure after Openfd1 = open(“/etc/passwd”, O_RDONLY);fd2 = open(“local”, O_WRONLY);fd3 = open(“/etc/passwd”, O_RDWR);
![Page 9: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/9.jpg)
9
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ Data structure after Two Process Open files(in process B) fd1 = open(“/etc/passwd”, O_RDONLY);
fd2= open(“private”, O_RDONLY);
![Page 10: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/10.jpg)
10
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ 알고리즘
![Page 11: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/11.jpg)
11
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ A Reader and a Writer Process
![Page 12: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/12.jpg)
12
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 디스크립터
■ Table after Closing a File
![Page 13: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/13.jpg)
13
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 입출력
■ 디폴트는 순차 액세스▶ 옵셋 유지
■ nread = read(fd, buf, count)
파일 시스템
■ 루트 파일 시스템에 다른 파일 시스템이 마운트 됨■ /usr 디렉토리의 원래 파일들은 hidden(covered)■ 원래의 s5fs 와 FFS 구현은 마운팅 테이블 사용하여 마운트된 파일 시스템
관리■ 현태의 유닉스는 vfs 리스트 사용
![Page 14: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/14.jpg)
14
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 시스템
![Page 15: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/15.jpg)
15
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 시스템
■ 논리 디스크▶ 논리 디스크는 저장장치에 대한 추상화 개념▶ 고정 크기 , 무작위 액세스 기능 블록의 선형 순서로 구성▶ newfs 또는 mkfs 가 유닉스 파일 시스템 생성▶ 하나의 논리 디스크는 하나의 파일 시스템만 포함▶ 일부 논리 디스크는 스왑 공간으로 사용 ( 파일 시스템을 포함하지 않음 )▶ 논리 디스크는 물리 디스크를 다양하게 매핑
단순한 경우 : 각 논리 디스크가 하나의 물리 디스크 전체로 매핑 일반적인 경우 : 하나의 디스크를 물리적으로 연속된 파타션 ( 하나의 논리 장치 ) 으로 분할
▶ 현대 유닉스 시스템은 다수의 디스크를 하나의 논리 디스크로 구성 가능
![Page 16: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/16.jpg)
16
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 특수 파일
■ 파일 추상 개념을 일반화▶ 모든 입 / 출력 관련 객체▶ 디렉토리 , 심볼릭 링크 , 하드웨어 장치 , 가상 장치 (메모리 ) 와 파이프 , 소켓 등을 포함
■ 파일을 단순한 바이트 스트림으로 취급
■ 심볼릭 링크▶ symlink 시스템 콜로 생성▶ 다른 파일을 가리키는 특수 파일▶ 디렉토리를 링크 가능 ( 파일 트리를 논리적으로 재구성 가능 )▶ 다른 파일 시스템의 파일을 링크 가능
![Page 17: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/17.jpg)
17
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스테 개요파일 시스테 개요 특수 파일
■ 심볼릭 링크
…bar…
reference count = 1
description of file
…foo…
directories
/usr/sue
/usr/joe
reference count = 1
/usr/joe/foo
![Page 18: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/18.jpg)
18
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 특수 파일
■ 파이프와 FIFO▶ FIFO 는 mknod 로 생성▶ Pipe 는 pipe 시스템 콜로 생성▶ 파이프는 액티브 리더와 라이터 수를 유지▶ BSD 변형들은 소켓으로 파이프 구현▶ SVR4 pipe 는 양방향임
![Page 19: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/19.jpg)
19
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 VFS(Virtual File System)
■ 다수 파일시스템 타입을 동시 지원 (s5fs, vfs, DOS 등 )■ 디스크 파티션마다 파일 시스템 타입이 다를 수 있음
▶ 이들이 서로에게 마운트 된 후에는 단일 균질 파일 시스템으로 보여야 함
■ 네트워크 상에서 파일 공유 지원■ 새로운 파일 시스템 타입을 쉽게 생성 추가 가능
System calls
Vnode layer
PC file System 4.2 BSD file System NFS NFS server
NetworkDisk
Floppy
![Page 20: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/20.jpg)
20
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요
VFSvfs_nex
t
root vnodesuper block
vfs_data
VFSvfs_nex
t
root vnodesuper block
vfs_data
vfsops vfsopsvfs_opvfs_o
p
vfssw[]
vsw_vfsops
vfs mount listVNODE
v_data
INODE
vnodeops
v_op
VNODE
v_data
INODE
vnodeops
v_op
struct file struct file*file
f_vnode
System open file list
v_vfsp
vnode of mounted on directory in rootvfs
v_vfsp
vfs_vnodecovered
rootvfs
vfs_mountedhere
![Page 21: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/21.jpg)
21
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 시스템 개요파일 시스템 개요 파일 시스템의 마운팅
■ Mount(spec, dir, flags, type, dataptr, datalen)
▶ spec : 파일 시스템을 나타내는 장치 파일
▶ dir : 마운트 포인트 디렉토리▶ type : 파일 시스템 종류▶ dataptr : 파일 시스템 의존 인수에
대한 포인터▶ datalen : 이들 인수의 전체 길이
![Page 22: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/22.jpg)
22
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
UNIX UNIX 파일 유형파일 유형 유닉스 파일
■ 유닉스 운영체제에서의 파일은 바이트들의 순서를 의미■ 유닉스는 다른 운영체제와 달리 레코드나 필드와 같은 구조를 지원하지 않음■ 유닉스 파일의 범주
▶ 일반 파일 (Regular file) 프로그래밍 코드 , 데이터 , 텍스트 등과 같은 바이트들의 순서 Vi 편집기를 이용하여 생셩한 파일들은 일반 파일로서 사용자가 다루는 대부분의 파일
유형▶ 디렉토리 파일 (Directory file)
일반적인 관점에서 다른 파일과 다른점이 없음 표준 ASCII 텍스트 파일 형태를 가지고 있지 않다 다른 파일에 대한 정보 ( 예 : 파일명 ) 가 포함되어 있는 파일 운영체제가 지정한 특정 형식으로 여러 개의 레코드로 구성
▶ 특수 파일 (Special file) 프린터 , 디스크 등과 같은 주변장치에 대한 특수 정보가 포함 유닉스는 파일로 입 / 출력 장치를 다루고 , 시스템에 있는 프린터 , 플로피 디스크 ,
터미널과 같은 각 장치는 별도의 파일을 소유
![Page 23: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/23.jpg)
23
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 디렉토리
■ 유닉스 파일 시스템의 필수적인 요소■ 디스크 상의 파일을 구성하는 구조를 제공■ 유닉스에서 디렉토리 구조는 계층적인 구조인 레벨로 나누어진다
▶ 사용자에게 특정 파일을 쉽게 찾을 수 있도록 파일을 구성할 수 있다
■ 디렉토리는 사용자 파일에 포함되어 있는 정보가 들어있지는 않지만 , 사용자가 파일을 구성하고 찾을 수 있는 참조 경로를 제공
![Page 24: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/24.jpg)
24
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 중요한 디렉토리들
■ 유닉스 시스템 파일을 표현하는 표준이 존재■ 디렉토리 접근 권한
▶ 일반 사용자는 자신의 홈 디렉토리에 생성한 자신의 디텍로리와 파일에 대해서만 모든 접근 권한을 가짐
■ 유닉스 중요 디렉토리 요약▶ /
루트 디렉토리로서 최상위 - 레벨 디렉토리이며 , 다른 모든 디렉토리가 이 디렉토리에서 파생
▶ /usr 사용자 홈 디렉토리를 포함 대부분의 유닉스 시스템에서 /usr 디렉토리는 /home 디렉토리 사용자 중심의 디렉토리를 포함 /usr/docs
– 다양한 문서를 포함 /usr/man
– man 페이지를 포함 /usr/games
– 게임 프로그램을 포함
![Page 25: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/25.jpg)
25
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 /usr/bin
– 사용자 중심의 유닉스 프로그램을 포함 /usr/spool
– 전자 우편 파일등을 포함하고 있는 mail 과 프린터 파일을 포함하고 있는 spool 과 같은 여러 개의 서브 디렉토리를 포함
/usr/sbin– 시스템 관리 파일을 포함– 일반 사용자가 접근하기 위해서는 특별한 권한을 가진 사용자로 변경해야 함
▶ /bin 다양한 기본적인 유닉스 프로그램 파일을 포함하고 잇다 .
▶ /dev 장치 파일을 포함 프린터와 디스크 등의 물리적인 컴퓨터 구성요소를 나타내는 특수한 파일
▶ /sbin 유닉스 시스템에 의해 자동적으로 실행되는 시스템 파일을 포함
▶ /etc 다양한 유닉스 구성 파일을 포함하고 있는 서브디렉토리들을 포함 일반적으로 텍스트로 구성된 파일을 포함 시스템 구성을 변경 가능하도록 편집할 수 있는 설정파일들이 존재
![Page 26: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/26.jpg)
26
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 홈 디렉토리
■ 홈 디렉토리란 ?▶ 사용자와 연관된 특정 디렉토리
■ 사용자가 로그인할 경우 자동적으로 사용자의 홈 디렉토리에 위치
작업 디렉토리
■ 사용자와 연관된 혹은 작업중인 디렉토리를 작업 (working) 디렉토리 또는 현재 (current) 디렉토리라고 부름
![Page 27: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/27.jpg)
27
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 경로와 경로명 이해하기
■ 경로명 ?▶ 파일 시스템 내의 파일의 위치▶ 모든 파일을 경로명을 가진다
■ 사용자는 루트 디렉토리부터 중간 디렉토리를 따라가면서 파일까지 경로를 추적하여 파일의 경로를 결정
![Page 28: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/28.jpg)
28
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리■ 절대 경로명 (absolute pathname)
▶ 루트부터 파일까지의 경로를 나타낸다▶ 절대 경로는 항상 루트 디렉토리 이름인 / 로 시작▶ 예
/usr/david/myfirst
■ 상대 경로명 (relative pathname)▶ 경로명의 짧은 형식▶ 작업 디렉토리로부터 파일까지의 경로▶ 많은 디렉토리를 통하여 경로를 설명▶ 예
david/REPORT
![Page 29: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/29.jpg)
29
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리디렉토리 파일명과 디렉토리 사용 방법
■ 모든 일반 파일과 디렉토리 파일은 파일이름 ( 파일명 ) 을 가짐■ 유닉스 파일과 디렉토리 이름은 자유롭게 지을 수 있다■ 파일명이 최대 길이는 유닉스 버전과 시스템 제조사에 따라 다르다
▶ 모든 유닉스 시스템은 최소한 14 자까지 허용하고 대부분 255문자까지 지원
■ 사용자는 문자와 숫자를 조합하여 파일명을 결정■ 파일명에서 사용을 피해야 하는 문자
▶ <>, (), {}, [], *, ?, “, ‘, _, $, ^(탈출문자 )
■ 유닉스 운영체제는 대소문자를 구분■ 일반 파일명과 디렉토리 파일명에 대한 구분이 없다
▶ 같은 이름을 가지는 디렉토리와 파일이 가능
■ 파일명 확장자▶ 파일의 내용을 분류하고 설명하는데 도움을 준다
.c, .cpp 등
![Page 30: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/30.jpg)
30
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어 디렉토리 경로 보기 : pwd
■ 사용자의 작업 디렉토리의 절대 경로명을 표시
![Page 31: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/31.jpg)
31
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ 작업 디렉토리에 잇는 파일 위치 알아내기
▶ myfirst 파일의 위치 현재 작업디렉토리에 존재하므로 /usr/david/myfirst 가 절대 경로명이 된다 .
■ 다른 디렉토리에 있는 파일의 위치 알아내기▶ 파일이 사용자의 작업 디렉토리와 다른 디렉토리에 잇을 경우 , 사용자는 파일이 포함되어 있는
디렉토리를 지정할 필요성이 있다▶ 예 )
사용자 작업 디렉토리 : usr 사용자의 source 디렉토리에 있는 first.c 파일의 경로 david/source/first.c 가 상대 경로명이다 .
![Page 32: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/32.jpg)
32
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어 디렉토리 변경 : cd 명령어
■ 작업 디렉토리를 지정한 디렉토리로 변경
![Page 33: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/33.jpg)
33
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ 홈 디렉토리로 돌아가기
▶ 특정 작업 디렉토리에서 홈 디렉토리로 돌아가기 위해서는 경로 변수를 사용▶ $HOME : 홈 디렉토리의 경로를 포함▶ cd $HOME
![Page 34: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/34.jpg)
34
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어 디렉토리 만들기
■ 유닉스에는 디렉토리 구조에 대한 제한이 없음■ 효율적인 디렉토리 구조를 생성해야 할 필요성이 있음■ 디렉토리 생성의 이점
▶ 하나의 디렉토리안에 관련된 파일들을 그룹으로 만들면 해당 파일을 기억하고 액세스하기 쉽다▶ 화면에 나타내는 파일들의 목록이 짧을수록 원하는 파일을 보다 빨리 찾을 수 있다▶ 서로 다른 디렉토리 안에 저장된 파일에 대해 같은 파일명을 사용할 수 있다▶ 디렉토리른 각 사용자에 대해 잘 지정한 공간을 이용하여 다른 사용자와 함께 저장 규모가 큰
디스크를 공유할 수 잇게 만들 수 있다▶ 사용자는 디렉토리를 다루는 유닉스 명령어들을 이용할 수 있다
![Page 35: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/35.jpg)
35
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ 디렉토리 만들기 : mkdir 명령어
▶ 사용자가 작업 중인 디렉토리 아래나 명령어의 일부분으로 지정한 어떤 디렉토리 아래에 새로운 서브 디렉토리를 만든다 .
![Page 36: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/36.jpg)
36
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어▶ -p 옵션
단일 명령문 라인을 이용하여 전체 디렉토리 구조를 만들 수 있다 현재 디렉토리 밑에 다른 디렉토리 레벨을 만들기 위해서 사용하는 옵션
![Page 37: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/37.jpg)
37
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어 디렉토리 없애기 : rmdir 명령어
■ 지정된 디렉토리를 삭제▶ 반드시 비어 있는 디렉토리를 삭제
서브 디렉토리를 포함하지 않는 경우 . 또는 .. 으로 된 디렉토리가 아닌 파일을 포함하고 있지 않은 디렉토리
![Page 38: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/38.jpg)
38
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어 디렉토리 나열하기 : ls 명령어
■ 지정한 디렉토리의 내용을 보여주기 위해서 사용▶ 파일명의 알파벳 순서로 정보를 나열▶ 목록에는 파일 이름과 디렉토리 이름을 포함
![Page 39: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/39.jpg)
39
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ ls 명령어의 옵션
▶ 사용자 파일에 대한 더 많은 정보를 얻거나 다른 형식으로 된 목록을 원할 때 사용
옵션 동작
-a 숨겨진 파일을 포함해서 모든 파일들을 나열
-C 다양한 컬럼 형식으로 파일을 나열 , 엔트리들은 컬럼에 따라 분류
-F 파일이 디렉토리이면 , 각 파일명 다음에 / 를 붙이고 실행 파이이면 * 를 붙인다
-l 파일에 관한 상세한 정보를 보여주는 긴 형식으로 파일을 나열
-m 컴마 (,) 에 의해 나누어진 페이지에 따라 파일을 나열
-p 파일이 디렉토리명이면 각 파일명 뒤에 / 를 붙이고 , 실행 파일의 이름이면 * 를 붙인다
-r 알파벳 순서 반대로 파일을 나열
-R 순환적으로 서브디렉토리의 내용을 나열
-s 블록에 들어 있는 각 파일의 크기를 보여준다 .
-x 복수의 컬럼 형식으로 파일을 나열엔트리들은 라인으로 분류
![Page 40: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/40.jpg)
40
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ ls –l 옵션에 의한 명령어 실행 결과
![Page 41: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/41.jpg)
41
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ ls 명령어 출력 유형
▶ 1열 10 개의 문자로 구성되어 있다 . 첫번째 문자는 파일의 유형을 나타내고 나머지는 접근
모드를 나타낸다 .▶ 2열
숫자로 된 링크의 개수를 나타낸다 .▶ 3열
소유자의 이름을 나타낸다 .▶ 4열
그룹의 이름을 나타낸다 .▶ 5열
파일의 크기를 바이트로 나타낸다▶ 6열
파일의 수정한 최근 날짜와 시간을 보여준다 .▶ 7열
파일의 이름을 보여준다 .
![Page 42: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/42.jpg)
42
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어▶ 파일 유형
- : 일반 파일을 나타낸다 d : 디렉토리 파일을 나타낸다 b : 디스크와 같은 블록 중심의 특수 파일을 나타낸다 c : 프린터와 같은 문자 중심의 특수 파일을 나타낸다
▶ 파일 접근 모드 r : 읽을 수 있는 접근 권한이 부여됨 w : 쓸 수 있는 접근 권한이 부여됨 x : 실행 권한이 부여됨 - : 접근권한이 부여되지 않음
▶ 링크의 숫자 해당 파일과 연결된 링크의 수
▶ 파일 소유자 파일의 소유자이며 , 일반적으로 파일을 만든 사용자 ID 와 같다 .
▶ 파일 그룹 시스템 관리자로부터 할당받은 사용자 ID 와 그룹 ID 를 표시한다 . 일반적으로 한 프로젝트에서 작업하고 있는 사람들은 동일한 그룹 ID 를 얻는다
▶ 파일 크기▶ 날짜와 시간▶ 파일명
![Page 43: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/43.jpg)
43
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
디렉토리 명령어디렉토리 명령어■ 보이지 않는 파일
▶ . 으로 시작하는 파일▶ . 과 .. 으로 구성된 디렉토리 엔트리
자동적으로 생성되는 엔트리 현재의 디렉토리와 한단계 상위 디렉토리를 의미
■ 다중 옵션 사용하기▶ 하나의 명령어 라인에 여러 개의 옵션을 사용할 수 있다 .
ls –alr ls –a –l –r
■ 명령어 옵션 출력하기
![Page 44: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/44.jpg)
44
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 내용 화면에 출력하기파일 내용 화면에 출력하기 파일의 화면 출력 : cat 명령어
■ 파일의 출력 , 생성 , 연결을 위해서 사용
![Page 45: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/45.jpg)
45
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 내용 프린팅파일 내용 프린팅 프린팅 : lp 명령어
■ 파일의 하드카피를 만들기 위해 프린터에 파일의 복사본을 보낸다
![Page 46: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/46.jpg)
46
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 내용 프린팅파일 내용 프린팅■ 명령어 옵션
옵션 동작
-d 지정된 프린터에 출력한다 .
-m 프린트 요청을 완료한 후에 사용자 메일박스에 메일을 보낸다
-n 지정된 숫자만큼 파일의 복사본을 출력한다
-s 피드백 메시지를 숨긴다
-t 출력 배너 페이지에 지정된 문구를 출력한다
-w 프린터 요청을 완료한 후에 사용자 터미널에 메시지를 보낸다
![Page 47: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/47.jpg)
47
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 내용 프린팅파일 내용 프린팅 프린팅 : 리눅스에서 lpr 명령어
■ 리눅스에서 사용하는 프린팅 명령어■ 파일을 지정하여 출력하기 위해서 사용
프린팅 요청 취소하기 : cancel 명령어
■ 프린터 작업에 대한 요청을 취소하기 위해 사용하는 명령어
프린터 상태 보기 : lpstat 명령어
■ 프린팅 요청에 관한 정보와 프린터 상태를 알아보기 위해 사용하는 명령어
![Page 48: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/48.jpg)
48
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
파일 삭제파일 삭제 파일 삭제 : rm 명령어
■ 파일을 삭제하기 위한 명령어
옵션 동작
-i 파일을 삭제하기 전에 확인을 묻는다
-r 지정된 디렉토리와 서브디렉토리에 있는 모든 파일을 지운다
![Page 49: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/49.jpg)
49
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
요약요약 유닉스 시스템에서의 파일 시스템 구조
디렉토리의 의미
디렉토리 명령어 이해 및 실습
파일 내용의 출력
파일 삭제
![Page 50: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/50.jpg)
50
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
질의 및 응답질의 및 응답
![Page 51: UNIX Unbounded A Beginning Approach](https://reader036.vdocuments.site/reader036/viewer/2022081603/56814e54550346895dbbe8d9/html5/thumbnails/51.jpg)
51
Network Lab.Network Lab.
HANNAM HANNAM Univ.Univ.
유닉스 이론 및 실습
실습실습