운영체제실습
1. 디렉토리관리 계층적구조 ( 트리구조 ) 절대경로 & 상대경로 /home /root /bin /sbin /usr /dev /lib /proc /tmp /var /etc 2
1.2 디렉토리관련명령어 # pwd # mkdir aa bb 2 개디렉토리동시생성 # mkdir p dir_p/dir_c 자식디렉토리를동시에생성 # rmdir aa # rmdir p dir_p/dir_c # rm rf dir_p 3
2. 파일관리 1. 리눅스파일은확장자가없다. 2. 대소문자를구별, 최대 255자. 3. 파일별소유권한 / 허가권한가진다. 4. 숨김파일은파일명앞에. 을둔다. 5. 백업파일은 -, ~ 포함. 4
2. 파일관리 리눅스의파일시스템 : ext2, ext3 Cluster : 한번에일어오는 DATA 단위 (linux = 1K) # prtvtoc /dev/dsk/cltld0s2 5
2. 파일관리 6
2. 파일관리 d rwxr-xr-x 일반 File 특수 ( l ) : soft link ( p ) : pipe file ( s ) : socket file text (ASCII) binary (2 진수 ) directory (d) 장치 file (-) block : had,fd0,cdrom (b) char : printer (c) 7
명령어 # ls -m 파일들을, 로구분하여출력 # ls -F /boot 파일의형식까지함께출력, / : 디렉토리, * : 실행파일 # ls -Srl /bin 파일크기를오름차순으로정렬 8
명령어 # cat > song > : 리다이렉션, 명령어내용을파일로생성, 입력종료시 : ctrl + D # chown -R jackson song # chgrp -R singer song -R : 하위의디렉토리 / 파일을모두변경 # chown -R hoffman.actor song. 을사용하여동시에사용자. 그룹등록 9
명령어 # chmod 10
명령어 # chmod g+w song 그룹에 w 추가 # chmod go-x song 그룹과일반사용자에 x 삭제 # chmod u-x, o+x song 그룹에 x 삭제, 일반사용자에 x 추가 # chmod a+w song # chmod u=rwx, g=rx, o=r song 11
명령어 # chmod -R 755 song # mkdir -m 777 test test 생성과동시에권한부여 12
명령어 관리자로 (umask = 0022) 파일 (666) 생성시 644(rw- r r--) 디렉토리 (777) 생성시 755(rwx r-x r-x) 일반사용자로 (umask = 0002) 파일 (666) 생성시 664(rw- rw- r--) 디렉토리 (777) 생성시 775(rwx rwx r-x) umask : 특정허가권한박탈명령어 기본권한 : 파일 (666), 디렉토리 (777) 13
명령어 # umask # umask 0440 # mkdir test_dir d -wx -wx rwx # touch test_file - w- -w- rw- # ls -al # umask 0022 # rm test_dir / # rm test_file 사용자 jackson 으로로그인하여반복실습 14
2.3 파이프와리다이렉션 파이프 (Pipe) (shift + ) 하나이상의명령어수행 수행결과를다른명령의입력으로사용 의수는제한없음 # cat /etc/passwd grep kim # cat /etc/passwd ; ls -al pipe 와의차이는 (?) 15
리다이렉션 입출력의방향을재설정하라는의미 # cat < /etc/passwd = # cat /etc/passwd cat : 파일의내용을표준입출력장치로출력 16
리다이렉션 # cat > favorites 내용입력후, ctrl + d # cat favorites # cat < favorites > goodmusic # cat goodmusic favorites 와동일한 goodmusic 생성 # cat >> favorites 기존 favorites 에문자추가 # cat < goodmusic >> favorites 17
파일의복사 cp [ 옵션 ] source target # cp favorites favorites2 18
파일의복사 #cp -a favorites favorites3 #cp favorites./test #ls -l./test #cp -i favorites./test/favorites 중복파일존재문구표시여부확인 #cp -r test test_1 하위파일까지복사 #touch favorites 현재시간으로파일변경 #cp -u favorites./test/favorites»./test/favorites 파일을현재시간으로변경후다시실습 19
파일의이동 mv [ 옵션 ] source target cp와유사하지만, 원본파일을제거한다. # mv favorites3./test 20
파일의이동 #mv -i favorites3./test/favorites y 또는 n 입력에따라이동여부결정 #mv favorites2 favorites20 #mkdir sub_test #mv sub_test./test 디렉토리를다른디렉토리아래로이동 21
파일의삭제 rm [ 옵션 ] 파일 / 디렉토리 # rm favorites favorites2 # rm -v favorities20 # rm -rfv./test 지금까지생성했던모드파일삭제합시다!!! 22
2.5 압축파일관리 ü 윈도우 : 파일수집, 압축동시진행 ü 리눅스 : 1 파일수집후, (tar Archive) 2 압축진행 (gzip, compress) 23
파일의수집과해제 - tar tar [ 옵션 ] 결과파일.tar 묶을파일 / 디렉토리 # tar -cvf 결과파일.tar 묶을파일 / 디렉토리 여러파일을묶을때!!! # tar -xvf 결과파일.tar 파일을해제할때!!! c : creat ( 생성 ) x : extract ( 추출 ) v : verbose ( 장황한 ) 24
파일의수집과해제 - tar 실습을위한 6 개의파일생성 # cat > doc01 # vi doc02 # touch doc03 # ls -al > sample01 # cat < doc02 > sample02 # cp doc03 sample03 25
파일의수집과해제 - tar # tar cvf doc.tar d???? d 로시작하는 5 글자파일들을모아라. # tar cvf sample.tar s* s로시작하는파일들을모아라. # rm -f doc0* # rm -f sample0? # tar xvf doc.tar 메타문자란? * : 모든문자열? : 한개문자 # tar xvf sample.tar 26
파일의압축과해제 ü 저장공간절약 / 데이터전송시간단축 ü gzip Lempel-Ziv 인코딩방법사용 60~70% 압축율 (text 압축기준 ) 압축후.gz 파일생성 / 원본파일자동제거 # gzip [ 옵션 ] 압축대상파일명 압축시 # gunzip -v 압축파일명 해제시 27
파일의압축과해제 # gzip -v doc.tar # gzip -v sample.tar # gunzip -v doc.tar.gz # gzip -d sample.tar.gz 압축해제후압축파일삭제여부확인 28
파일의압축과해제 ü bzip2 (gzip 이후등장 ) 블록정렬텍스트압축알고리즘 + 허프만코딩 gzip 보다 60~70% 높은압축율, but 속도는다소낮음.bz2 확장자생성, 기타 gzip 과동일 # bzip2 [ 옵션 ] 압축대상파일명 압축시 # bunzip2 -v 압축파일명 해제시 29
파일의압축과해제 # bzip2 -v doc.tar # bzip2 -v sample.tar # bunzip2 doc.tar.bz2 # bzip -d sample.tar.bz2 압축해제후압축파일삭제여부확인 30
기타파일관련명령어 내용출력 ü cat # cat [ 옵션 ] 텍스트파일명 # cat -n doc01 # cat -s doc01 31
기타파일관련명령어 내용출력 ü more # more [ 옵션 ] 텍스트파일명 # more -5 /etc/passwd # ls -al /dev more 32
기타파일관련명령어 내용출력 ü more 기타옵션 33
기타파일관련명령어 내용출력 ü head ( 파일내용앞부분출력 ) # head -5 /etc/passwd # head -c 10 /etc/passwd 처음 10Byte 내용출력 ü tail ( 파일끝부분출력 ) # tail -5 /etc/passwd # tail -c 10 /etc/passwd 마지막 10Byte 내용출력 ( 결과 : 한글자부족 ) 34
문자열검색 특정문자열검색후, 해당내용만출력 ü grep # grep [ 옵션 ] 검색문자열텍스트파일명 35
문자열검색 # grep -ni Root /etc/passwd # grep -A 2 admin /etc/passwd # grep -B 2 admin /etc/passwd # ls al /dev grep -ni sda 36
파일의검색 ü find ( 계층적구조인리눅스에서매우유용한명령어 ) # find 시작경로 [ 옵션 ] [ 동작 ] 시작경로 : 검색을시작할경로 옵션 : 검색할조건 동작 : 검색을수행해산출된결과에대한연산을지정 37
파일의검색 find 옵션 38
파일의검색 find 동작 39
파일의검색 # find /dev -maxdepth 2 -name *sd* -print # find / -name *apache* # find /dev size +2k print # find / -user hoffman # find./ -type l 심볼릭링크파일리스트표시 # find./ -size +500k fprint result # find./ -name doc?? exec rm {}\n; 40
파일의종류확인 리눅스는확장자가없음 파일의형식을표면적으로알기어렵다. /usr/share/file/magic 파일이파일형식분석 # file result # file /bin/rm 41
파일링크생성 v Link 를사용하는이유 1. 파일명 / 디렉토리名이길어서간단히사용할때 2. 다른디렉토리의파일을현재디렉토리에서편리하 게실행하고자할때 3. 파일이복잡한경로에있을때 42
파일링크생성 ü 하드링크 (Hard Link) 원본파일 inode#1 data 링크파일 inode#1 data» 원본파일의 inode 와링크파일의 inode 가공유되는구조» Symbolic Link 보다속도빨라부팅시사용» 디렉토리는링크불가» 원본삭제시에도 Data 접근가능» 서로다른 File System 간에 Link 불가능» 실제데이타는한개 43
파일링크생성 ü 심볼릭링크 (Symbolic / Soft Link) 원본파일 inode#1 data 링크파일 inode#2 원본파일,inode data» 원본파일과다른 inode 로원본파일을가리키는포인터구조» 파일하나를여러사람이공유하기가좋다.» 디렉토리링크가능» 원본파일삭제시 data 접근불가능» 서로다른 File System 간에 Link 가능» 링크파일크기작음 44
파일링크생성 ü inode 파일 / 디렉토리에대한모든정보저장소 파일정보포함» 파일소유자의식별번호, 파일소유자의그룹식별번호» 파일의형태, 데이터블럭의주소» 파일생성시간, 최근파일변경시간, 파일사용시간» 파일크기, 파일의링크수 45
파일링크생성 46
파일링크생성 # mkdir linktest # cd linktest # vi basefile # ln basefile hardlink # ln -s basefile softlink # cat hardlink # cat softlink # ls -ali 47
파일링크생성 # mv basefile../ # ls -ali # cat hardlink # cat softlink 48
파일의정렬과병합 ü sort # sort [ 옵션 ] 파일명리스트 49
파일의정렬과병합 교재 p202, member-office 파일작성 # sort -c member-office # sort -k 2 -f member-office # sort -o sorted-file member-office 50
파일의문자정보출력 ü wc (Word Count) # sort [ 옵션 ] 파일명 # ls al /dev > dev-list # wc dev-list 51
파일의분할 ü split ( 파일을일정단위로분할 ) # split 원본파일명생성파일명 # split -l 100 dev-list dev-split # ls -al dev* # split -b 5k dev-list dev-size # ls -al dev* 52
파일의화면출력과저장 ü tee ( 파일을화면출력과동시에파일로저장 ) # tee [ 옵션 ] 파일명 # ls -ali tee -a list-inode # cat list-inode 53