Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제

Similar presentations


Presentation on theme: "UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제"— Presentation transcript:

1 UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제

2 UNIX의 중급 명령어 파일 내 단어 수 세기:wc 파일들의 목록 내의 문자, 단어, 줄의 수를 카운터
사용법: wc –lwc {fileName}* -l 옵션 줄의 수만을 카운터 -w옵션 단어의 수만을 카운터 -c옵션 문자의 수만을 카운터 만일 옵션이 주어지지 않으면, 위 세가지 모두를 표시 단어는 탭(tab),공백(space), 그리고 새 줄(newline)에 둘러싸인 경우로 정의

3 UNIX의 중급 명령어

4 UNIX의 중급 명령어 파일의 속성 필드 번호 필드 값 의미 1 파일에 의해 점유된 저장 블록 수 2 -rw-r--r--
파일의 허가권 모드로 이는 그 파일을 읽고,쓰고,실행할 수 있는 사람을 나타냄 3 하드 링크(hard link) 개수 4 kobi 파일의 소유권을 갖는 사용자의 id 5 other 파일의 그룹 id 6 106 바이트 단위의 파일 크기 7 3월 10일 10:32 파일이 마지막으로 변경된 시간 8 heart.txt 파일의 이름

5 UNIX의 중급 명령어 파일 저장 공간(필드 1) 파일 이름(필드 8) 파일 변경 시간(필드 7)
파일이 디스크 공간을 실제적으로 얼마나 점유하는 지를 나타냄 파일 이름(필드 8) 유닉스의 파일 이름은 14자 길이까지 가능 BSD 유닉스에서는 255까지 가능 파일 이름 사용 원칙 어떤 문자로도 구성 가능 <,>,tab 등의 문자는 셸에서 혼란을 일으키므로 사용하지 않도록 권장 “.”, ”..”의 파일 이름은 가질 수 없음 각각 현재 작업중인 디렉토리와 부모 디렉토리에 미리 정의된 파일 이름 파일 변경 시간(필드 7) 파일이 마지막으로 변경된 시간에 대한 정보를 표시

6 UNIX의 중급 명령어 파일의 소유(필드 4) 파일 그룹(필드 5) 파일의 소유자가 누구인지의 정보를 표시
모든 유닉스 프로세스는 소유주를 가지며, 그 소유는 전형적으로 그 프로세스를 시작한 사용자의 사용자 id와 동일 예) 저자의 사용자 id :kobi *저자의 로그인 셸은 “kobi”에 의해 소유됨 *프로세스가 파일을 생성할 때마다 그 파일의 소유주는 그 프로세스의 소유주로 설정 *그러므로 저자의 셸로부터 생성된 모든 파일은 “kobi”에 의해 소유되며, 그 셸 자체의 소유주도 “kobi”가 됨 파일 그룹(필드 5) 파일 그룸에 대한 정보 표시 모든 유닉스 사용자들은 그룹 id를 가지며, 시스템 관리자에 의해 할당됨 유닉스의 보안 메커니즘의 한 부분으로 사용됨 예) 저자의 로그인 셸의 그룹 id는 “other”

7 UNIX의 중급 명령어 프로세스가 파일을 생성할 때마다 파일의 그룹은 프로세스의 그룹으로 설정 즉, 저자가 소유한 셸로부터 생성된 모든 파일은 “other”라는 그룹 id를 갖는다는 것을 의미 파일 유형(필드 2) 파일의 유형과 허가권 설정에 관한 정보를 표시 필드 2의 첫번째 문자는 다음 표와 같이 부호화된 파일의 유형을 나타냄 문자 파일 유형 - 정규 파일 d 디렉토리 파일 b (디스크 드라이브와 같이)버퍼된 특수 파일 c (터미널 같이)버퍼되지 않은 특수 파일 l 심볼릭 링크 p 파이프 s 소켓

8 UNIX의 중급 명령어 파일의 유형: file 파일의 내용이 쓰여진 언어를 포함하여 파일의 내용을 묘사
파일의 내용이 쓰여진 언어를 포함하여 파일의 내용을 묘사 사용법: file –L {fileName}+ -L 옵션 심볼릭 파일에 대해 연결 자체보다 연결에 의해 지적되는 파일에 대한 정보를 표시

9 UNIX의 중급 명령어 파일의 허가권(필드 2)
파일 유형을 표시하는 첫번째 문자 다음의 9개 문자는 파일의 허가권 설정에 관한 정보를 표시 예) 만일 문자 대신 –(대시) 문자가 나타난다면 그 허가권이 거부됨을 의미 파일의 허가권의 읽기,쓰기,실행 허가의 의미는 파일의 유형에 따라 다름 사용자(소유주) 그룹 다른 사용자 rw- r-- 읽기 허가 쓰기 허가 실행 허가 r w x

10 UNIX의 중급 명령어 정규 파일 디렉토리 파일 특수 파일 읽기 프로세스는 그 내용을 읽을 수 있다.
프로세스는 디렉토리를 읽을 수 있다.(즉 디렉토리가 포함하고 있는 파일의 이름을 표시한다) 프로세스는 read() 호출을 이용하여 파일을 읽을 수 있다. 쓰기 프로세스는 내용을 변화시킬 수 있다. 프로세스는 디렉토리로부터 파일을 제거하거나 디렉토리로 덧붙일 수 있다. 프로세스는 write() 호출을 이용하여 파일에 쓸 수 있다. 실행 프로세스는 파일을 실행할 수 있다.(단지 그 파일이 프로그램인 경우에 한하여) 프로세스는 디렉토리에 또는 디렉토리의 서브 디렉토리 중 하나에 포함되어 있는 파일에 접근할 수 있다. 아무 의미가 없다.

11 UNIX의 중급 명령어 프로세스가 실행될 때, 프로세스는 파일 허가권에 관련된 4개 값을 가짐
실제 사용자 id(real user id) 유효 사용자 id(effective user id) 실제 그룹 id(real group id) 유효 그룹 id(effective group id) 로그인할 때, 로그인 셸 프로세스는 실제 및 유효 사용자 id를 사용자 id로 설정하고, 실제 및 유효 그룹 id로 설정 프로세스가 실행될 때, 파일의 허가권은 다음과 같이 적용 만약 프로세스의 유효 사용자 id와 파일의 소유자가 같다면, 사용자의 허가권이 적용됨 만약 프로세스의 유효 사용자 id가 파일의 소유자와는 다르지만, 프로세스의 유효 그룹 id가 파일의 그룹 id와 같다면, 그룹의 허가권이 적용됨 만약 프로세스의 유효 사용자 id나 프로세스의 유효 그룹 id 모두 일치되지 않으면, 다른 사용자의 허가권이 적용됨

12 UNIX의 중급 명령어 파일 허가권에 관련된 참고 사항 하드 링크 계수(필드 3)
프로세스가 파일을 만들 때, 그 파일에 주어진 허가권은 umask라 불리우는 특별한 값에 의해 수정 슈퍼 유저는 자동적으로 모든 접근 권리를 가짐 파일의 소유자가 그룹 또는 다른 사용자보다 적은 허가권을 가질 수 있음 하드 링크 계수(필드 3) 계층 내에 얼마나 많은 레이블이 동일한 물리적 파일을 가리키는가를 지시하는 파일의 하드 링크 수를 표시

13 UNIX의 중급 명령어 그룹 모든 사용자는 heart.txt파일을 읽을 수 있으나, 단지 소유자(kobi)만이 쓸 수 있도록 허가됨 목적: “test”라는 새로운 그룹을 생성하여 이 그룹 내의 사용자는 누구든지 저자의 파일을 읽는 것을 허용하고자 한다. 해결 절차 1)새로운 그룹(test)를 만들어 줄 것을 시스템 관리자에게 요청 2)시스템 관리자에게 저자와 친구 initself을 test 그룹에 넣어줄 것을 요청 3)자신이 속한 그룹을 확인하고(groups 명령어를 통해) 4)파일(heart.txt)의 그룹을 변경하고(chgrp 명령어를 통해) 5)파일의 허가권을 변경함(chmod 명령어를 통해) =>따라서 heart1.txt 파일은 kobi와 initself만이 읽을 수 있고, dobest는 쓰기까지 가능함

14 UNIX의 중급 명령어 그룹 목록 보기: groups 사용자가 회원으로 속해 있는 모든 그룹의 목록을 표시
사용자의 이름이 명시되어 있다면, 사용자 그룹의 목록이 표시됨

15 UNIX의 중급 명령어 파일의 그룹 바꾸기:chgrp 사용법: chgrp –R groupID {fileName}*
자신 소유 파일의 그룹을 변경 슈퍼 유저는 임의의 파일 그룹을 변경 가능 인수 groupID의 뒤에 위치하는 모든 파일이 영향을 받음 -R 옵션 디렉토리 내의 파일의 그룹을 재귀적으로 변경

16 UNIX의 중급 명령어 파일의 허가권 변경:chmod 사용법: chmod –R change {fileName}+
clusterSelection + newPermissions (허가권의 추가) clusterSelection – newPermissions (허가권의 제거) clusterSelection = newPermissions (허가권 유지) clusterSelection은 아래의 기호들의 임의의 조합 u(user/owner) g(group) o(others) a(all) newPermission는 아래의 기호들의 임의의 조합 r(read) w(write) x(execute) s(set user id/set group id) – 소유자와 그룹만 실행 -R옵션 디렉토리 내의 파일의 모드를 재귀적으로 변경 디렉토리의 허가권 설정 변경은 그 디렉토리에 포함된 파일의 허가권을 변경시키지 않음

17 UNIX의 중급 명령어 < chmod의 예 > 요구 사항 허가권 변경 그룹 쓰기 허가권 추가 g+w
사용자 읽기 및 쓰기 허가권 추가 u+rw 사용자,그룹,일반인에 대한 실행 허가권 추가 a+x 그룹에 읽기 허가권만을 주기 g=r 사용자에 쓰기 허가권 추가, 그리고 그룹의 읽기 허가권 제거 u+w, g-r

18 UNIX의 중급 명령어 8진수에 의한 허가권 설정 사용자 그룹 모든 사용자 설정 rwx r-x --- 2진수 111 101
000 8진수 7 5

19 UNIX의 중급 명령어 파일의 소유권 변경: chown 슈퍼 유저는 chown을 이용하여 파일의 소유권을 변경할 수 있음
사용법: chown –R newUserID {fileName}+ -R옵션 재귀적으로 디렉토리 내의 파일에 대한 소유권을 변경 heart1.txt파일은 dobest의 소유임 heart1.txt파일은 initself의 소유임 heart1.txt파일을 initself의 소유로 변경

20 UNIX의 중급 명령어 그룹의 변경: newgrp
시스템 관리자는 사용자가 가질 수 있는 여러 그룹 id 중 하나를 사용자의 로그인 셸의 유효 그룹 id로 선택 사용자는 로그인 셸의 유효 그룹 id를 영구히 변경하고자 한다면 시스템 관리자에게 요청해야 함 시스템 관리자에 의하지 않고 상이한 그룹 id를 갖는 셸의 생성 사용법: newgrp [-] [groupId] groupId가 인수로 불리워질 때, 명시된 groupId를 갖는 새로운 셸을 생성 기존의 셸은 새롭게 생성된 셸에서 빠져나오기 전까지는 비활성화됨 사용자는 자신이 명시한 그룹의 회원이어야함 만일 파일 이름 대신에 대시(-)를 인수로 사용하면, 시스템에 로그인할 때 생성되었던 셸과 동일한 설정의 셸이 생성됨

21 UNIX의 중급 명령어 “staff” 그룹 셸로부터 파일 test1 생성 일시적으로 “test” 그룹 셸 생성

22 UNIX의 고급 명령어 어떤 조건과 일치하는 줄만을 골라내는 것같이, 파일의 내용을 여과(제거)할 수 있는 것은 유용함
파일 여과 유틸리티 egrep, fgrep, grep은 명시된 패턴이 없는 줄만을 여과 uniq는 인접한, 반복된 줄을 여과 패턴 여과: egrep/fgrep/grep 파일을 검사하여 명시된 패턴을 포함하지 않은 줄을 여과 이것들은 본질상으로 비슷하지만 여과해 내는 패턴이 각기 다름 사용법 grep –hilnvw pattern {fileName}* fgrep –hilnvwx string {fileName}* egrep –hilnvw pattern {fileName}* grep은 파일의 목록에서 패턴(pattern)을 탐색 만일 명시된 파일이 없으면, 표준입력을 탐색 패턴과 일치되는 모든 줄은 표준 출력에 표시 만일 하나 이상의 파일이 명시되면, -h옵션이 명시되지 않는 한, 각각 일치하는 줄 앞에 파일 이름이 먼저 표시됨

23 UNIX의 고급 명령어 fgrep egrep -n옵션 -i옵션 -l옵션 -v옵션 -w옵션
각각 일치하는 줄 앞에 줄번호가 먼저 표시됨 -i옵션 패턴의 대소문자를 무시 -l옵션 지정된 패턴이 포함된 파일들의 목록을 표시 -v옵션 패턴과 일치하지 않는 줄을 표시 -w옵션 전체 단어로서 비교 fgrep 일정한 문자열들만 조사하는 grep의 빠른 버전 -x옵션 문자열(string)과 정확하게 동일한 줄만을 출력 egrep grep의 확장된 버전으로 정규식을 지원

24 UNIX의 고급 명령어 파일 생성 grepfile로부터 “the”를 탐색
줄번호와 함께 출력

25 UNIX의 고급 명령어 여과기(filter)의 의미를 역으로 .c로 끝나는 모든 파일에서 단어 “ch”를 탐색
들의 이름 을 표시

26 UNIX의 고급 명령어 반복 줄 제거: uniq
사용법: uniq –c –number [ inputfile [outputfile]] 입력 파일 내의 인접한 중복된 줄들을 하나의 줄로 표시 만일 입력 파일이 명시되지 않으면 표준 입력을 읽음 -c옵션 각 줄 앞에 그 줄이 반복된 횟수를 표시 만일 number가 지정되어 있다면, 각 줄의 해당 number 항목은 무시됨

27 UNIX의 고급 명령어 동일한 내용의 인접 줄들을 여과 반복 횟수를 각 줄에 표시 각 줄의 첫째 항목은 무시

28 UNIX의 고급 명령어-파일 정렬 파일을 오름 또는 내림차순으로 1개 이상의 정렬 항목을 기준으로 정렬시킴
사용법: sort –tc –r {sortField –bfMn}* {fileName}* 디폴트로 줄은 오름차순으로 정렬됨 -r 옵션 내림차순으로 정렬 입력 줄들은 공백 또는 탭(tab)으로 분리된 항목으로 나뉘어짐 -t옵션 여러 가지 다른 항목 분리자를 명시함 -f옵션 정렬 실행시 항목의 대소문자를 무시 -M옵션 항목을 월(month)순으로 정렬 -n옵션 숫자 순으로 정렬 -b옵션 줄의 앞에 있는 공백(spaces)을 무시

29 UNIX의 고급 명령어 오름차순으로 파일을 정렬

30 UNIX의 고급 명령어 역순으로 정렬

31 UNIX의 고급 명령어 두 파일의 같은 점 비교:cmp 두 파일 간의 동일성을 검사
사용법: cmp –ls fileName1 fileName2 offset1 offset2 만일 fileName1과 fileName2가 정확하게 일치하면, 종료 코드 0을 반환 다르면 종료 코드 1을 반환하고, 일치하지 않는 첫번째 바이트의 줄 번호와 옵셋(offset)을 표시 만일 한 파일이 다른 파일의 앞부분과 같으면, EOF 메시지는 더 짧은 쪽의 파일에 대해 보여줌 -l옵션 일치하지 않는 바이트에 대한 옵셋과 값을 보여줌 -s옵션 모든 출력을 금지 옵션 값 offset1과 offset2는 fileName1과 fileName2의 시작 옵셋을 각각 지정하며, 그 위치에서부터 비교가 시작됨

32 UNIX의 고급 명령어

33 UNIX의 고급 명령어 … 두 파일이 서로 다름 lady2 파일은 lady3 파일의 앞부분 일치하지 않는 모든 바이트를 표시

34 UNIX의 고급 명령어 파일 탐색:find 특수한 조건들을 만족하는 파일들에 대해 작업을 수행
사용법: find pathList expression pathList를 재귀적으로 내려가며, expression을 모든 파일에 적용 expression의 구문 예 값/동작 -name pattern 파일의 이름이 pattern과 일치하면 참, pattern은 셸 문자 *,[ ],?를 포함할 수 있다 -mtime count 파일의 내용이 count 날 수 이내에 수정되었으면 참 -print 현재 파일명을 프린트하고 참값을 반환 -exec command 수행중인 command의 종료 코드가 0이면 참, 명령은 \;에 의해서 끝내야한다. 만일 { }를 명령의 인수로 지정하면, 현재 파일의 이름으로 치환

35 UNIX의 고급 명령어 현재 디렉토리나 부디렉토리의 모든 C소스 파일들의 이름을 출력
현재 디렉토리나 부디렉토리의 “*.bak”으로 끝나는 모든 파일들을 표시한 후에 제거

36 UNIX의 고급 명령어 사용자 대치: su 실제 및 유효 사용자/그룹 id를 갖는 임시 셸을 생성
사용법: su [-] [userName] [args] userName이 명시되지 않으면, “루트”로 가정되며 새로운 셸 프롬프트는 #로 설정됨 Control-D로 셸을 종료시키면, 본래의 셸로 돌아옴 -옵션 새로운 셸에서 로그인 과정을 수행 args 명령 줄 (command line) 인수로서 새로운 셸에게 넘겨짐

37 UNIX의 고급 명령어 현재 사용자 id를 찾기 initself라는 사용자로 대치 패스워드 입력
Control-D로 셸을 종료 현재 사용자 id가 복구되었음을 확인

38 UNIX의 고급 명령어 셸 확인:whoami 파일 보관:tar : tar [Option] xxxx.xxx 파일/디렉토리
셸의 소유자를 표시 파일 보관:tar : tar [Option] xxxx.xxx 파일/디렉토리 특별한 tar-형식의 보관 파일을 생성하고 접근할 수 있게 함 -c옵션 tar-형식의 파일을 생성 -f옵션 저장하고자 하는 파일명을 사용하여 디폴트 이름(/dev/rmt8)을 변경 -v옵션 장황하게 긴 출력을 조장 -x옵션 명명된 파일을 추출해 낼 수 있게 함 -t옵션 목차를 표시 -r옵션 무조건 리스트된 파일을 보관 파일에 덧붙임 -u옵션 이미 보관된 파일보다 더 최근의 파일을 덧붙임

39 UNIX의 고급 명령어 현재 디렉토리를 보관 보관 파일 “tarfile” 보기

40 UNIX의 고급 명령어 보관 파일 tarfile의 목차보기 무조건적으로 파일을 덧붙임

41 연습문제 1.그룹의 목적은 무엇인가? 2.누가 파일의 소유권을 변화할 수 있는가?
3.시스템 관리자에게 전자우편을 보내어 2개의 새로운 그룹을 설정하고, 그룹과 관련된 유틸리티들을 실습해 보고, 허가권에 대해 공부해 보라. 4.자신의 중요한 파일들을 tar를 이용하여 백업해 두라. 5.파일을 보관하는 다른 유틸리티에 대해 조사하고 사용법을 실습해 보라.


Download ppt "UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제"

Similar presentations


Ads by Google