Download presentation
Presentation is loading. Please wait.
1
3장 파일 및 디렉토리 조작 정보보호 연구실 김동민
2
목차 계층적 구조 파일명과 경로명 파일의 종류 파일의 조작
3
계층적 구조 Linux 시스템의 디렉토리 구조 계층적 구조를 사용함 최상위 루트 디렉토리로부터 하위로 뻗어나가는 구조를 가짐
/ /bin /sbin /dev /boot /etc /media /usr /home /mail /cron /skel /include /local
4
계층적 구조 루트(/) 디렉토리 기본 실행 명령어(/bin) 디렉토리 시스템 운영 명령어(/sbin) 디렉토리
Linux 파일 구조에서 최상위에 위치하는 단 하나의 디렉토리 리눅스에 존재하는 모든 시스템 운영 파일과 디렉토리를 포함 절대경로 표현을 사용할 경우 기준이 되는 디렉토리 기본 실행 명령어(/bin) 디렉토리 기본 명령어 파일이 위치하게 되는 디렉토리 시스템 관리 명령어를 제외하고 일반적인 명령어가 포함되어있다 ls, ps, cp, mv, cat, chmod, date, kill, mount, … 시스템 운영 명령어(/sbin) 디렉토리 시스템 운영에 필요한 명령어를 포함하고 있는 디렉토리 root 사용자만 사용할 수 있는 명령어로 구성 되어있다 halt, shutdown, fdisk, mkfs, …
5
계층적 구조 시스템 설정 파일(/etc) 디렉토리 마운트(/media) 디렉토리 부트 파일(/boot) 디렉토리
시스템의 설정 파일들이 포함되어있는 디렉토리 시스템 관리자의 경우 숙지해야 하는 디렉토리로 백업 시 반드시 해줘야 함 마운트(/media) 디렉토리 외부 장치가 마운트 되면 사용되는 디렉토리 기존의 /mnt 디렉토리에서 디렉토리 명 변경 부트 파일(/boot) 디렉토리 리눅스 시스템 부팅에 관련한 모든 파일이 포함된 디렉토리 장치(/dev) 파일 리눅스에서 인식한 모든 장치가 파일형태로 존재하는 디렉토리
6
계층적 구조 사용자 홈(/home) 디렉토리 라이브러리(/lib) 디렉토리 응용 프로그램(/usr) 디렉토리
사용자 계정에 대한 디렉토리가 생성되는 디렉토리 mykokonut 에 대한 디렉토리는 /home/mykokonut 가 된다 라이브러리(/lib) 디렉토리 명령어나 응용 프로그램이 실행하거나 새로운 프로그램을 개발하는데 필요한 동적 라이브러리와 정적 라이브러리가 존재 한다 응용 프로그램(/usr) 디렉토리 실행 가능한 명령어, 시스템 프로그램, 라이브러리 루틴 등을 포함하고 있는 디렉토리 윈도우의 C:\Windows 폴더에 해당한다
7
계층적 구조 가변 자료 저장(/var) 디렉토리 프로그램 추가 설치(/opt) 디렉토리 lost+found 디렉토리
리눅스가 운영되거나 여러 프로그램이 실행되면서 만들어지는 로그 파일이나 스풀 파일이 저장되는 디렉토리 아파치 웹 서버나 DNS 서버, 메일 프로그램 등 필요한 데이터를 저장하게 됨 프로그램 추가 설치(/opt) 디렉토리 리눅스에서 번들로 제공되지 않는 프로그램을 추가로 설치할 경우에 사용되는 디렉토리 lost+found 디렉토리 디스크의 오류나 비정상적인 시스템 종료에 의해 잃어버린 파일을 위해 사용되는 디렉토리 리눅스 시스템 부팅시 fdisk 가 실행되면서 잃어버린 파일을 찾아 lost+found 디렉토리에 저장
8
파일명과 경로명 파일명 경로명 대/소문자 구분 숨겨진 파일 존재 특정 파일이나 디렉토리 명을 나타내는 방법
.파일명 ls 명령어의 –a 옵션을 통해 볼 수 있음 경로명 특정 파일이나 디렉토리 명을 나타내는 방법 하나의 디렉토리의 하위 디렉토리 혹은 파일을 구분하기 위해 ‘/’ 가 사용 됨 이는 최상위 디렉토리를 나타내는 ‘/’ 와 다르다
9
파일명과 경로명 절대 경로명 / /etc /var /tmp 최상위 디렉토리를 기준으로 파일과 디렉토리의 위치를 나타내는 방법
10
파일명과 경로명 상대 경로명 / /etc /var /xml /tmp
현재 위치를 기준으로 파일과 디렉토리의 위치를 나타내는 방법 / /etc /var /xml /tmp /etc/xml 디렉토리에서 절대 경로를 사용하여 /var 디렉토리의 /tmp 디렉토리로 접근하는 방법
11
파일의 종류 리눅스 파일을 이루는 3 요소 파일 이름 I-node 데이터 블록 파일 형태 파일 이름 I-node 데이터 블록
12
파일의 종류 파일 이름 I-node I-node에 포함되는 정보 데이터 블록 파일의 이름
파일을 기술하는 디스크 상의 데이터 구조 파일의 데이터 블록(부분)이 디스크의 어느 부분에 위치해 있는지에 대한 정보를 가짐 I-node에 포함되는 정보 파일의 소유권 파일의 액세스 모드 파일의 타임스탬프 파일의 종류 데이터 블록 파일의 실제 데이터 영역
13
파일의 종류 파일의 종류 일반 파일 디렉토리 파일 링크 파일 디바이스 파일
14
파일의 종류 일반 파일 디렉토리 파일 리눅스에서 대부분을 차지하는 파일 퍼미션 값 앞에 ‘-’ 로 표시 됨
파일들을 하나의 그룹으로 만들어 저장하도록 구분되어 있는 공간 디렉토리는 I-node에 대한 포인터(번호)만 저장하도록 되어있다 디렉토리는 최소한 두 개의 엔트리를 포함하게 된다. . : 현재의 디렉토리 .. : 상위의 디렉토리
15
파일의 종류 링크 파일 파일이나 디렉토리의 링크 심볼릭 링크 하드 링크
16
파일의 종류 심볼릭 링크 원본 파일의 경로를 가리키는 바로가기 형태의 파일 I-node 주소(번호)가 다름
ln –s [원본파일] [심볼릭링크파일] 파일 퍼미션 앞의 파일 유형에서 ‘l’ 표기
17
파일의 종류 하드 링크 원본 파일을 복사한 사본 형태의 파일 I-node 주소(번호)가 같음 ln [원본파일] [하드링크파일]
18
파일의 종류 디바이스 파일 블록 디바이스 파일 캐릭터 디바이스 파일 리눅스 시스템의 물리 장치를 나타내는 파일
파일 퍼미션 앞의 파일 유형에서 ‘c’ 또는 ‘b’ 표기 /dev 디렉토리에 위치 함 블록 디바이스 파일과 캐릭터 디바이스 파일로 구성 블록 디바이스 파일 수 십에서 수 백 바이트 크기의 블록 단위로 데이터를 입출력 HDD, FDD, ODD 에서 사용됨 캐릭터 디바이스 파일 바이트 단위로 데이터를 입출력 터미널, 프린터, 플로터에서 사용됨
19
파일의 조작 현재 위치 디렉토리 표시 : pwd 현재 위치한 디렉토리의 절대 경로를 알려줌 옵션이 없음
20
파일의 조작 디렉토리 이동 : cd 파일 목록 보기 : ls 디렉토리를 이동하기 위해 사용되는 명령어
절대경로나 상대경로를 이용하여 디렉토리를 이동할 수 있음 파일 목록 보기 : ls 디렉토리에 있는 파일의 목록을 보기 위한 명령어 옵션 의미 -a 모든 파일 출력, 숨김 파일도 출력 -C 세로정렬 출력 -d 디렉토리 자체의 정보를 출력 -F 파일이름 뒤에 파일 유형 출력 -k 파일 크기를 킬로바이트 단위로 출력 -l 파일의 모든 속성 출력 -m 한 라인에 디렉토리 내용을 쉼표로 구분 -n UID, GID 출력 -i I-node 출력 -r 최근 파일 순으로 내림차순 정렬 -R 하위 디렉토리 내용 출력 -s 파일 크기가 작은 순서로 출력 -t 최근 사용 순서로 출력 -x 가로 정렬 출력 -1 한 라인에 한 파일씩 출력
21
파일의 조작 파일 유형 표시 : file 파일의 유형을 알기 위한 명령어
Binary 파일인지 Text 파일인지 확인할 수 있음 /usr/share/magic 파일을 참조하여 파일의 종류를 표시함 옵션 의미 -C 매직 파일 포맷 검사 -m 다른 파일 포맷 참조 -z 압축된 파일 분류 -f 목록에 해당하는 파일들에 대해 명령 적용
22
파일의 조작 파일 내용 보기 : cat, head, tail, more, less cat 명령어
파일 내용을 살펴보는데 사용하는 명령어 cat 명령어 파일 내용을 파일 단위로 표준 출력할 때 사용
23
파일의 조작 head 명령어 tail 명령어 파일의 처음부터 10행 까지의 라인만 출력
옵션으로 숫자를 지정하면 해당 숫자 라인까지 표시 가능 tail 명령어 파일의 마지막 라인부터 위로 10라인만 출력
24
파일의 조작 more 명령어 화면 크기에 맞게 한 화면씩 끊어서 출력해주는 명령어
옵션으로 숫자를 주면 해당 숫자 라인부터 출력하게 됨 키 의미 <space> 다음 페이지 출력 d 다음 반 페이지 출력 <Enter> 다음 라인 출력 v vi 에디터 모드로 전환
25
파일의 조작 Binary 파일의 읽기 가능한 문자 출력 : strings
표준 출력 명령어로 내용을 볼 수 없는 바이너리 파일을 읽기 위한 명령어
26
파일의 조작 파일 이름 작성, 시간 수정 : touch 파일의 시간 정보를 변경 새로운 0바이트 파일을 생성
# touch [option] [파일명] 옵션 의미 -a 최근 파일 사용 시간만 변경 -c 파일이 존재하지 않으면 생성 안 함 -m 최근 파일 변경 시간만 변경 -t 파일의 날짜를 임의의 날짜로 변경
27
파일의 조작 디렉토리 생성 : mkdir 디렉토리를 만드는 명령어 # mkdir [option] [디렉토리명] 옵션 의미 -p
하위 디렉토리도 함께 생성 -m 생성할 디렉토리의 퍼미션을 설정
28
파일의 조작 디렉토리 삭제 : rmdir 파일 삭제 : rm 디렉토리 삭제 명령어
삭제하려면 하위 디렉토리나 파일이 먼저 삭제되어야 함 파일 삭제 : rm 파일이나 디렉토리를 삭제하는 명령어 복구 불가능 # rm [option] [파일명 or 디렉토리명] 옵션 의미 -i 삭제할 경우 의사 결정을 하게 함 -f 묻지 않고 바로 삭제 -r 해당 디렉토리와 하위 디렉토리 삭제
29
파일의 조작 파일 복사 : cp 파일을 복사하는 명령어
# cp [option] [원본파일명 or 원본디렉토리명] [복사파일명 or 복사디렉토리명] 옵션 의미 -a 원본 퍼미션 유지 -b 백업본 생성 -d 심볼릭파일을 복사할 경우 그 자체를 복사 -f 복사할 파일이름이 겹치면 강제 복사 -i 복사할 파일이름이 겹치면 물어봄 -l 하드 링크 생성 -p 소유주,그룹 소유주,퍼미션,시간을 복사 -s 심볼릭 링크 생성 -U 최신 파일의 경우 복사하지 않음 -v 복사하기 전에 복사할 파일 출력 -R 하위 디렉토리 까지 복사 -r
30
파일의 조작 파일 이동 : mv 파일의 이름을 변경하거나, 다른 위치로 이동 시키는 명령어
# mv [option] [원본파일명] [변경할 파일명] # mv [option] [원본디렉토리명] [이동할 디렉토리명] 옵션 의미 -f 이동할 위치에 파일 이름이 겹치면 강제 이동 -i 이동할 위치에 파일 이름이 겹치면 물어봄
31
파일의 조작 파일 통계치 확인 : wc 파일 찾기 : find 파일의 통계치를 확인할 때 쓰는 명령어
문자 개수 라인 개수 특정 단어 개수 현재 로그인 사용자 수 파일 찾기 : find 원하는 조건에 맞는 파일을 찾는 명령어 # find [디렉토리명] [option] [action] 특정 UID 파일 찾기 파일이름으로 찾기 파일타입으로 찾기 지정된 퍼미션으로 찾기 파일 수정 시간으로 찾기
32
파일의 조작 특정 패턴 검색 : grep, egrep, fgrep grep egrep fgrep
파일 내의 특정한 문자열 패턴을 검색하여 결과를 보여주는 명령어 grep 파일 안의 정규식으로 표현한 특정 패턴을 검색하여 출력하는 명령어 # grep [option] ‘패턴’ [파일이름] egrep 확장 정규식을 통하여 더욱 다양한 패턴을 검색할 수 있는 명령어 fgrep 정규식을 사용하지 않고 입력한 패턴 그대로를 검색하는 명령어 # fgrep [option] ‘패턴’ [파일이름]
33
파일의 조작 파일 비교 및 정렬 : cmp, diff, sort cmp diff sort
파일을 비교하거나 정렬하기 위해 사용되는 명령어 cmp 서로 다른 두 개의 파일을 비교하여 어느 부분이 다른지 알아내는 명령어 # cmp [option] [파일1] [파일2] diff 서로 다른 두 개의 파일을 비교하는 명령어 출력 결과가 cmp 명령어에 비해 직관적임 # diff [option] [파일1] [파일2] sort 텍스트로 된 파일의 라인을 원하는 순서로 정렬하고자 할 때 사용하는 명령어 디렉토리를 크기 별로 정렬하거나 파일들을 파일명으로 정렬할 수도 있음
34
Q & A
Similar presentations