75
7. 7. 유유유유 유유유유 (Utilities) (Utilities)

7. 유틸리티 (Utilities)

  • Upload
    afi

  • View
    87

  • Download
    0

Embed Size (px)

DESCRIPTION

7. 유틸리티 (Utilities). 7.1 소개. 구분. Utilities. 구분. Utilities. grep, fgrep, egrep uniq (3 장 참조 ). compress, crypt, sed, uncompress, tr, ul. 화일 변환. 화일 여과. 화일 정렬. sort. 전자우편 검사. biff. cmp, diff. 화일 비교. 순수화일 내용보기. od. 화일 보관. tar, cpio, dump. 화일시스템 마운팅. mount, umount. su. - PowerPoint PPT Presentation

Citation preview

Page 1: 7.  유틸리티 (Utilities)

7. 7. 유틸리티유틸리티 (Utilities)(Utilities)

Page 2: 7.  유틸리티 (Utilities)

7. 유틸리티 2

7.1 7.1 소개소개구분 Utilities

화일 여과 grep, fgrep, egrep uniq (3 장 참조 )

화일 변환 compress, crypt, sed,uncompress, tr, ul

화일 정렬 sort 전자우편 검사 biff

화일 비교 cmp, diff 순수화일 내용보기 od

화일 보관 tar, cpio, dump 화일시스템 마운팅 mount, umount

화일 보관 find 사용자 대치 su

명령어 스케줄 at, cron, crontab 셀 확인 whoami

텍스트 처리 awk (3 장 참조 ) 문서 준비 nroff,spell,style,troff

하드 및 소프트링크

구분 Utilities

ln

Page 3: 7.  유틸리티 (Utilities)

7. 유틸리티 3

7.2 7.2 파일 여과파일 여과

패턴여과 : egrep/fgrep/grep 명시된 패턴 (pattern) 이 없는 줄만을 여과

반복 줄 제거 : uniq 인접한 , 반복줄을 여과

Page 4: 7.  유틸리티 (Utilities)

7. 유틸리티 4

7.3 7.3 화일 정렬 화일 정렬 : SORT: SORT

sort [ -tc -r ] {sortField -b -f -M -n}* {fileName}*-tc 정렬을 위한 비교 항목들을 구분하는

문자를 c 로 새로이 설정 (default: 이 옵션이 생략되어있으면 , blank 나 tab

으로 구분한다 )

-r 내림차순으로 정렬 (default: ASCII 표에 의한 오름차순 )

-b 줄의 앞부분에 있는 공백을 무시 (default: blank 도 정렬시 비교대상임 )

Page 5: 7.  유틸리티 (Utilities)

7. 유틸리티 5

7.3 7.3 화일 정렬 화일 정렬 : SORT: SORT-f 대소문자를 무시하고 정렬-M 월 (month) 순으로 정렬-n 숫자의 크기 순으로 정렬sortField 특정항목을 기준으로 정렬하도록 지정 ( 다수 항목 지정 가능 ) "-number1 +number2" 의 형태

number1 은 시작 항목 번호를 , number2 는 정지 항목번호를 나타냄 , 시작 항목 번호는 0 부터 시작 ( 즉 , -0 은 첫 번째 항목을 가리킴 ), 정지 항목 번호는

정렬 대상 에서 제외되며 생략시 모든 항목이 포함

Page 6: 7.  유틸리티 (Utilities)

7. 유틸리티 6

7.3 7.3 화일 정렬 화일 정렬 : SORT: SORT

( 예 ) $ sort -r sortfile → 역순으로 정렬 $ sort +0 -1 sortfile [1-c7p293] → 첫 번째 항목만을 기준으로 정렬 $ sort +0 -1 -bM sortfile → 첫 번째 항목만을 기준으로 정렬하되 ,

줄의 앞부분에 나오는 공백을 무시하여 첫 번째 항목을 잡는다 . 그리고 이를 월별로 정렬

Page 7: 7.  유틸리티 (Utilities)

7. 유틸리티 7

7.3 7.3 화일 정렬 화일 정렬 : SORT: SORT

$ sort +0 -1 -bM +4 -n sortfile→ 공백을 무시하면서 첫 번째 항목을 기준으로

월별로 정렬한 후 , 그후에 다섯 번째 항목이하를 숫자 크기로 추가로 정렬

$ sort -t; +0 -1 -bM +2 -n sortfile → 항목 구분을 ':' 로 한다 . 공백을 무시하여 첫

번째 항목을 월별로 정렬한 후 , 세 번째 항목 이하를 숫자 크기로 추가 정렬

Page 8: 7.  유틸리티 (Utilities)

7. 유틸리티 8

7.4 7.4 파일 비교파일 비교 cmp

두 화일의 동일성을 검사하여 , 차이가 생기는 첫 번째 바이트를 보여 줌

diff 두 화일을 비교하여 한 파일을 다른 화일로

전환하는 편집 변경을 행할 때에 필요한 동작 목록을 보여 줌

(3 종류의 편집변경이 제공됨 )

Page 9: 7.  유틸리티 (Utilities)

7. 유틸리티 9

7.4 7.4 화일 비교화일 비교

cmp [-l -s] fileName1 fileName2 [offset1 offset2] 내용이 동일하면 , 종료값은 0 으로서 ,

출력으로는 아무 것도 보여주지 않슴 다르면 , 종료값은 1 으로서 , 출력으로는

일치하지않은 첫 번째 바이트의 옵셋 (offset: 문자의 순서값 ) 과 위치한 줄 번호을 보여줌

만일 어느 한 쪽 화일이 짧으면 , 짧은 쪽 화일 이름 앞에 EOF 메시지를 붙임

Page 10: 7.  유틸리티 (Utilities)

7. 유틸리티 10

7.4 7.4 화일 비교화일 비교

-l 일치하지않는 모든 바이트들에 대한 옵션과 각각의 문자값을 보여줌

-s 모든 출력을 금지한다 (sillent)

offset1 fileName1 의 비교 시작 위치에 대한 옵셋

offset2 fileName2 의 비교 시작 위치에 대한 옵셋

Page 11: 7.  유틸리티 (Utilities)

7. 유틸리티 11

7.4 7.4 화일 비교화일 비교

( 예 ) $ cmp lady1 lady2

$ cmp lady3 lad

$ cmp -l lady1 lady2

Page 12: 7.  유틸리티 (Utilities)

7. 유틸리티 12

7.4 7.4 화일 비교화일 비교

diff [ -i -Dflag ] fileName1 fileName2-i 대소문자의 구분을 무시한다 (ignore)

-Dflag C preprocessor 를 위한 출력을 생성

출력 형태 1: 첨가 (addition)

firstStart a secondStart, secondStop> 두 번째 화일에서 첫 번째 파일로 첨가 되어야 할 부분

Page 13: 7.  유틸리티 (Utilities)

7. 유틸리티 13

7.4 7.4 화일 비교화일 비교

출력 형태 2: 삭제 (deletion)

firstStart, firstStop d lineCount < 첫 번째 화일에서 제거되어야할 줄들

firstStart 와 firstStop 는 첫 번째 화일의 줄번호

를 의미하고 secondStart 와 secondStop 는 두 번째 화일의 줄번호를 의미

Page 14: 7.  유틸리티 (Utilities)

7. 유틸리티 14

7.4 7.4 화일 비교화일 비교

출력 형태 3: 변경 (change)

firstStart firstStop c secondStart, secondStop

< 첫 번째 화일에서 치환되어야할 줄

--- > 치환을 위하여 사용되어야할 두 번째 파일 의 줄

Page 15: 7.  유틸리티 (Utilities)

7. 유틸리티 15

7.4 7.4 화일 비교화일 비교

( 예 ) $ diff lady1 lady2 → 3c3

$ diff lady2 lasy3 → 3a4,6

$ diff lady3 lady4 → 2,4d1

$ diff -Dflag lady3 lady4

→ #ifndef flag …… #endif flag 를 이용 하여 전처리기 대상 생성

Page 16: 7.  유틸리티 (Utilities)

7. 유틸리티 16

7.5 7.5 화일 보관화일 보관

화일을 보관하는 이유 ① backup( 정기적 , 보관용 )

② 네트워크 연결이 안된 컴퓨터로의 데이터 전송

cpio : 화일 복사용 . 오직 하나의 backup volume 으로 저장한다 . 소규모 백업에 적당

Page 17: 7.  유틸리티 (Utilities)

7. 유틸리티 17

7.5 7.5 화일 보관화일 보관

tar tape 에 화일을 보관함 . 추가 저장시 항상 뒷

부분에 저장됨 . 오직 하나의 backup volume으로 저장 . 소규모 백업에 적당

dump/restore 시스템 관리자가 전체 시스템을 백업하고 추출

하는데 사용 . 개개의 화일을 다루는 데는 불편 하지만 , 정기적 시스템 백업에 유용

Page 18: 7.  유틸리티 (Utilities)

7. 유틸리티 18

7.5 7.5 화일 보관화일 보관

cpio -ov > backupFile-o 표준 입력으로부터 복사 ( 백업 ) 할

화일명 의 목록을 받아 복사 (ouput)

-v 화일을 복사하는 동안 각 화일의 이름을 보여 줌 (verbose)

Page 19: 7.  유틸리티 (Utilities)

7. 유틸리티 19

7.5 7.5 화일 보관화일 보관

cpio -idtu patterns < backupFile-i 표준 입력으로부터 cpio 형식 파일 (

이전에 cpio 로 저장된 화일 ) 을 읽어서 , 명시된 pattern 에 일치하는 화일들 모두를 재생 (input)

-d 필요하다면 디렉토리를 생성-t 복사 대신 목차를 보여 줌-u 무조건 복사

Page 20: 7.  유틸리티 (Utilities)

7. 유틸리티 20

7.5 7.5 화일 보관화일 보관 cpio -pl directory

-p 표준 입력으로부터 복사 ( 백업 ) 할 화일명 목록을 받아서 이를 명명된 directory 로 복사 ( 하나의 서브디렉토리 복사시 cp -r

명령이 더 간단 )

-l 물리적 복사 대신에 링크 (link) 를 만듦 결국 디스크 사용이 전혀 없슴

Page 21: 7.  유틸리티 (Utilities)

7. 유틸리티 21

7.5 7.5 화일 보관화일 보관

( 예 ) $ ls *.c | cpio -ov > backup $ cpio -i < backup

$ find . -name \*.c -depth -print | cpio - ov >backup2

→ 패턴 *.c 인 모든 화일들을 서브디렉토리를 포함 하여 백업

Page 22: 7.  유틸리티 (Utilities)

7. 유틸리티 22

7.5 7.5 화일 보관화일 보관

$ find . -mtime -2 -print | cpio -p ..

→ 현재의 디렉토리에 있는 화일들 중에서 지난 2 일 동안 수정된 화일들을 부모 디렉토리에 복사함

$ find . -mtime -2 -print | cpio -pl ..

→ 현재의 디렉토리에 있는 화일들 중에서 지난 2 일 동안 수정된 화일들을 부모 디렉토리에 링크함

Page 23: 7.  유틸리티 (Utilities)

7. 유틸리티 23

7.5 7.5 화일 보관화일 보관

tar -cvf tarFileName fileList-c fileList 에 대한 tar 형식의 백업 화일을

생성 (create)

-v 진행되는 상황을 설명 (verbose)

-f tar 형식의 백업 화일 이름을 지정 (default: /dev/rmt8)

Page 24: 7.  유틸리티 (Utilities)

7. 유틸리티 24

7.5 7.5 화일 보관화일 보관 tar -txru tarFileName [ fileList ]

-t tar 형식의 백업 화일 안에 어떤 것들이 들어 있는지 목차만 보임 (title)

-x 백업 화일로부터 화일을 추출 복귀 (extract)

-r fileList 를 기존의 백업 화일 뒤에 무조건 덧붙임 (rear)

-u 기존의 백업 화일에 이미 포함되어있는 ileList

중 수정된 화일들만을 백업 화일의 뒤에 덧붙임 .

디렉토리가 있어도 recursive 하게 적용

Page 25: 7.  유틸리티 (Utilities)

7. 유틸리티 25

7.5 7.5 화일 보관화일 보관

( 예 ) $ tar -cvf tarfile .

$ tar -tvf tarfile

$ tar -rvf tarfile reverse.c

$ tar -uvf tarfile reverse.c

$ tar -vxf tarfile ./tmp

$ tar -xvf tarfile `tar -tf tarfile | grep '.*\.c'` → C 프로그램 화일들만을 추출한다

$ tar -vxf ../tarfile reverse.c

Page 26: 7.  유틸리티 (Utilities)

7. 유틸리티 26

7.5 7.5 화일 보관화일 보관

dump [level] [f dumpFile] [v] [w] fileSystem

level 덤프의 수준을 지정 . 명시된 level 보다 낮은 level 에서 최근에 덤프한

이후에 수정된 모든 화일들만을 덤프시킴 (default 값 : 9)

만일 level 을 0 으로 하면 , 항상 모든 파일 들을 덤프하게 됨

Page 27: 7.  유틸리티 (Utilities)

7. 유틸리티 27

7.5 7.5 화일 보관화일 보관

f 덤프될 화일 (dumpFile) 을 지정 (defautl: /dev/rmt8)

v 화일을 덤프하는 동안 각 화일의 이름을 보여 줌 (verbose)

w 백업을 수행하는 대신 , 덤프될 모든 화일의 목록을 보여준다

Page 28: 7.  유틸리티 (Utilities)

7. 유틸리티 28

7.5 7.5 화일 보관화일 보관

dump [level] [f dumpFile] [v] [w] {fileName }+

지정된 화일들만을 덤프한다 .

( 예) $ dump 0 fv /dev/rmt0 /dev/da0

→ 화일 시스템 /dev/da0 를 테이프 드라이버 /dev/rmt0 로 level 0

덤프 수행

Page 29: 7.  유틸리티 (Utilities)

7. 유틸리티 29

7.5 7.5 화일 보관화일 보관 restore -irtx [ f dumpFile ] { fileName }+

-i 대화형 복구 . 사용자에게 복구할지 말지를 목록을 보여주면서 진행한다 .

-r dumpFile 에 있는 모든 화일을 현재의 디렉토리로 복구

-t 복구는 하지않고 그 대신에 dumpFile 내용의 목록들만을 보여준다

-x 복구 (extract)

( 예) $ restore -x f /dev/rmt0 wine.c hacking.c

Page 30: 7.  유틸리티 (Utilities)

7. 유틸리티 30

7.6 7.6 화일 탐색화일 탐색

find pathList expressionpathList 화일을 탐색할 경로의 리스트

(recursive search)

expression -name pattern 화일 이름이 pattern 과 일치하면

참 (*, [, ], ? 포함 가능 )

-perm oct permission 의 8 진수 표현이 oct와 일치하면 참

-type ch 화일의 유형이 ch 이면 참 (ch: b=block, c=char)

Page 31: 7.  유틸리티 (Utilities)

7. 유틸리티 31

7.6 7.6 화일 탐색화일 탐색

-user userId 화일의 소유자가 userId 이면 참-group groupId 화일의 그룹이 groupId 이면 참-atime count 접근 (access) 한 날 수가 count

이내이면 참-mtime count 수정 (modify) 한 날 수가 count

이내이면 참 -ctime count 수정되고 화일의 속성이 바뀐 날수가 count 이내이면 참

Page 32: 7.  유틸리티 (Utilities)

7. 유틸리티 32

7.6 7.6 화일 탐색화일 탐색

-exec command 수행 중인 command 의 종료값이 0 이면 참 . \; 로 끝남

command 의 argument 가 {} 이면 , 현재 화일의 이름임

-print 현재 화일명을 프린트하고 참 값을 반환

-ls 현재 화일의 속성을 보여주고 참 값을 반환

Page 33: 7.  유틸리티 (Utilities)

7. 유틸리티 33

7.6 7.6 화일 탐색화일 탐색

-cpio device 현재의 화일을 cpio 형식으로 device 에 쓰고 참 값 반환

!expression expression 의 논리 부정

\( expr1 [-a] expr2 \) 두 expression 의 and

\( expr1 [-o] expr2 \) 두 expression 의 or

Page 34: 7.  유틸리티 (Utilities)

7. 유틸리티 34

7.6 7.6 화일 탐색화일 탐색

( 예 ) $ find . -name '*.c' -print

→ 현재의 디렉토리나 그 서브디렉토리에서 모든 C 소스

프로그램을 찾아 그 화일명들을 프린트 $ find . -mtime 14 -ls

→ 지난 14 일 동안 수정된 화일들을 표시 $ find . -name '*.bak' -ls -exec rm {} \;

→ '.bak' 으로 끝나는 화일들을 표시한 후에 제거함 $ find . \( -name '*.o' -o -name '*.txt' \) -print

→ '.o' 로 끝나거나 '*.txt' 로 끝나는 화일들의 이름을 프린트함

Page 35: 7.  유틸리티 (Utilities)

7. 유틸리티 35

7.7 7.7 명령 스케쥴링명령 스케쥴링

crontab cron 에 의하여 일련의 작업이 주기적으로 실행되도록

함 . cron 은 단일 프로세스로서 시스템 시작부터 종료 까지 동작하는데 , /var/spool/cron/crontabs 디렉토리에 복사 등록된 crontab 화일들을 수행함

at 지정된 시간에 작업이 실행되도록 함

Page 36: 7.  유틸리티 (Utilities)

7. 유틸리티 36

7.7 7.7 명령 스케쥴링명령 스케쥴링

crontab crontabName cron 시스템에 의하여 사용되는 crontbaName 의

crontab 화일을 등록 crontab -l -e -r [ userName ]

-l 등록된 crontab 화일의 내용을 보여준다 (list)

-e 등록된 crontab 화일의 내용을 편집한다 (edit)

-r 등록된 crontab 화일을 등록해제한다 (remove)

userName 사용자만 자신의 crontab 화일을 소유하도록 함

Page 37: 7.  유틸리티 (Utilities)

7. 유틸리티 37

7.7 7.7 명령 스케쥴링명령 스케쥴링

crontab 화일의 형식minute (0-59)

hour (0-23)

day (1-31)

month (1-12)

weekday (1-7, 1=Mon, 2=Tue, 3=Wed, 4=Thu, 5=Fri, 6=Sat, 7=Sun)

command unix 명령어

Page 38: 7.  유틸리티 (Utilities)

7. 유틸리티 38

7.7 7.7 명령 스케쥴링명령 스케쥴링 처음 다섯 항목에 * 가 오면 항상 일치됨을 의미 명령의 표준 출력은 자동적으로 사용자에게

mail utility 를 통하여 전송 % 다음의 문자는 임시 화일에 복사되고 ,

명령의 표준 입력으로 사용됨

Page 39: 7.  유틸리티 (Utilities)

7. 유틸리티 39

7.7 7.7 명령 스케쥴링명령 스케쥴링

( 예 ) $ cat crontab.con

0 8 * * 1 echo Happy Monday Morning

* * * * * echo One Minute Passed > /dev/tty01

30 14 1 1 * mail users % Jan Meeting At 3 pm

→ 월요일 아침 8 시에 전자 우편을 발송 매분마다 터미날 tty01 에 에코함 . 1 월 1 일 오후 2:30 에 모든 사용자에게 임박한 회의르 상기시킴

Page 40: 7.  유틸리티 (Utilities)

7. 유틸리티 40

7.7 7.7 명령 스케쥴링명령 스케쥴링

(예) $ crontab crontab.con

$ crontab -l

$ crontab -l mjkim

→ 사용자별로 확인하는 것은 슈퍼유저만이 사용 가능

Page 41: 7.  유틸리티 (Utilities)

7. 유틸리티 41

7.7 7.7 명령 스케쥴링명령 스케쥴링

개별 사용자가 crontab 을 사용하는 것을 허용하거나 금지하는 방법

: /var/spool/cron/cron.allow 와 var/spool/cron/cron.deny ( 사용자 이름 목록 )

: 만일 두 화일이 모두 존재하지 않으면 슈퍼유저만 사용 가능함

: cron.allow 가 존재하지않고 cron.deny 가 비어있으면 모든 사용자가 사용가능

Page 42: 7.  유틸리티 (Utilities)

7. 유틸리티 42

7.7 7.7 명령 스케쥴링명령 스케쥴링 at -c -s -m time [date [, year] ] [ +increment] [script]

-c 각 명령어가 C shell 로 수행됨을 의미-s 각 명령어가 Bourne shell 로 수행됨을의미-m 작업이 완료되면 전자우편을 보내도록 함script script 화일로부터 작업을 읽는다

(default: 표준 입력 )time HH 또는 HHMM 의 형식

(am/pm 이 뒤따름 ) now ( 지금 )

Page 43: 7.  유틸리티 (Utilities)

7. 유틸리티 43

7.7 7.7 명령 스케쥴링명령 스케쥴링

date 요일 또는 달의 처음 세 글자 today ( 오늘 ) tomorrow ( 내일 ) date 생략시 , time 이 현 시각보다

뒤이면 date 는 today 로 , time 이 현

시각보다 앞이면 date 는 tomorrow 로 간주 됨

increment 숫자 [ minutes | hours | days | weeks | months | years ]

Page 44: 7.  유틸리티 (Utilities)

7. 유틸리티 44

7.7 7.7 명령 스케쥴링명령 스케쥴링

at -r { jobId }+

-r 명시된 작업을 at 큐로부터 제거

at -l { jobId }*

-l 뒤따르는 작업들의 목록을 보여 줌

Page 45: 7.  유틸리티 (Utilities)

7. 유틸리티 45

7.7 7.7 명령 스케쥴링명령 스케쥴링

( 예 ) $ at now =2 minutes at.csh

$ at -l

$ at 17:35 at.csh

$ at 0934am Sep 18 at.csh

$ at 9:34 Sep 18 , 1996 at.csh

$ at 11:00pm tomorrow at.csh

$ at 9pm Jan 13 at.csh

$ at 10pm Wed at.csh

Page 46: 7.  유틸리티 (Utilities)

7. 유틸리티 46

7.7 7.7 명령 스케쥴링명령 스케쥴링(예) $ at 8am

at> 명령어 입력 at> ^D

$ cat at.csh

#! /bin/csh

date > /dev/tty1

# Reschedule Script

at now +2 minutes at.csh

Page 47: 7.  유틸리티 (Utilities)

7. 유틸리티 47

7.7 7.7 명령 스케쥴링명령 스케쥴링

개별 사용자가 at 를 사용하는 것을 허용하거나 금지하는 방법

: /var/spool/cron/at.allow 와 /var/spool/cron/at.deny ( 사용자 이름 목록 )

: 만일 두 화일이 모두 존재하지 않으면 슈퍼유저만 사용 가능함

: at.allow 가 존재하지않고 at.deny 가 비어있으면 모든 사용자가 사용 가능

Page 48: 7.  유틸리티 (Utilities)

7. 유틸리티 48

7.8 7.8 프로그램 가능한 텍스트 프로그램 가능한 텍스트 처리처리

awk

Page 49: 7.  유틸리티 (Utilities)

7. 유틸리티 49

7.9 7.9 하드 링크와 소프트 링크하드 링크와 소프트 링크 : : InIn

하드 링크 : 동일한 화일 시스템 내에서의 링크 여러개의 레이블

생성이 가능하나 , 물리적 화일은 동일함 하드 링크가 추가될 때마다 링크 계수 항목이 증가

소프트 링크 (심볼릭 링크 ) 다른 파일 시스템들 간의 링크 링크 계수 항목이 증가하지 않고 대신에 permission

에 l--- 식으로 기록됨 ls -F 로 참조할 때 화일 이름 뒤에 @ 가 표시됨

Page 50: 7.  유틸리티 (Utilities)

7. 유틸리티 50

ln -f -s origial newLink-f 슈퍼유저가 디렉토리에 하드 링크를

생성할 수 있게 함-s 소프트 링크로서 화일 시스템을 확장 가능

ln -f -s { origial }+ driectory

명시된 화일 (original) 들에 대한 링크 directory 상에 실행

7.9 7.9 하드 링크와 소프트 링크하드 링크와 소프트 링크 : : InIn

Page 51: 7.  유틸리티 (Utilities)

7. 유틸리티 51

( 예 ) $ ln hold.3 hold

$ ln hold.* tmpdir

$ ln -s /usr/include/stdio.h stdio.h

$ ls -l stdio.h lrwxrwxrwx 1 mjkim 20 Jan 12 17:58 stdio.h ->

/usr/include/stdio.h

$ ls -F stdio.h@

7.9 7.9 하드 링크와 소프트 링크하드 링크와 소프트 링크 : : InIn

Page 52: 7.  유틸리티 (Utilities)

7. 유틸리티 52

7.10 7.10 사용자 대치 사용자 대치 : su: su

su [ userName ]사용자 대치 (substitute user)

default: root

새로운 shell prompt; #

사용자 대치의 종료 : ^D

Page 53: 7.  유틸리티 (Utilities)

7. 유틸리티 53

7.11 7.11 전자 우편 검사 전자 우편 검사 : biff: biff

유닉스 셀은 수신되는 전자우편을 주기적 으로 점검함 . 따라서 전자우편을 수신한 시간과 유닉스 셀이 전자우편 도착을 알려 주는 시간에는 다소 차이가 있슴

biff [ y | n ]y 전자우편 수신 즉시 통고하도록 설정함n 전자우편 수신 즉시 통고하지 않도록 함

아무 옵션 없이 사용하면 현재의 biff 상태를나타내줌

Page 54: 7.  유틸리티 (Utilities)

7. 유틸리티 54

7.12 7.12 화일 변환화일 변환

compress/decompress : 파일을 압축하고 다시 해동 복귀시킨다

crypt : 키 암호를 받아들여 파일을 암호화하거나 해독한다

sed : 스트림 편집 , 하나 이상의 화일을 스캔하여 특정 조건에 맞는 모든 줄을 편집한다 . 단순 반복 편집에 유용하다

Page 55: 7.  유틸리티 (Utilities)

7. 유틸리티 55

7.12 7.12 화일 변환화일 변환 tr

화일 내의 문자를 한 문자 집합에서 다른 문자 집합으로 변환 (transform)

ul 밑줄 그은 문자가 명시된 터미날에 올바로

표시되도록 변환 (underline)

Page 56: 7.  유틸리티 (Utilities)

7. 유틸리티 56

7.12 7.12 화일 변환화일 변환 compress -c -v { fileName }+

-v 압축되는 상황을 보여 줌-c 압축된 화일로 원래의 파일을 덮어쓰지 않고

표준 출력으로 내보냄 (default: 원래의 화일을 지우고 압축된

파일 (.z) 로 치환 ) decompress -c -v { fileName }+(예) $ compress -v palindrom.c reverse.c

$ decompress -v *.z

Page 57: 7.  유틸리티 (Utilities)

7. 유틸리티 57

7.12 7.12 화일 변환화일 변환

crypt [ key ] < originalFile > cryptedFile

암호화

crypt [ key ] < cryptedFile > originalFile

해독화

Page 58: 7.  유틸리티 (Utilities)

7. 유틸리티 58

7.12 7.12 화일 변환화일 변환

key 가 명시되지않으면 대화식으로 물어 봄 ( 화면에 보이지는 않음 ) crypt key 의 형태로 명령을 주었을 때 ps 로 체크 됨에 주의

( 예 ) $ crypt agatha < sample.txt > sample.crypt

$ crypt agatha < sample.scrypt > sample.txt

Page 59: 7.  유틸리티 (Utilities)

7. 유틸리티 59

7.12 7.12 화일 변환화일 변환

sed [ -e script ] [ -f scriptfile ] { fileName }*

-f scriptFile sed 편집 명령을 파일로 저장수행

-e script sed 편집 명령 지정

(script = 'sed 폅집 명령’ )

addressRange s/expr/str

정규식 expr 이 첫번째 발생을 문자열 str 로 대치addressRange a/expr/str/g 모든 정규식 exp 을 문자열 str 로 대치

Page 60: 7.  유틸리티 (Utilities)

7. 유틸리티 60

7.12 7.12 화일 변환화일 변환

address r name address 줄 뒤에 화일 name 의 내용 덧붙이기address i\ text address 줄 뒤에 텍스트 text 삽입addressRange d addressRange 로 지정된 줄을 삭제 addressRange c\

text

Page 61: 7.  유틸리티 (Utilities)

7. 유틸리티 61

7.12 7.12 화일 변환화일 변환

addressRange c\ text

addressRange 로 명시된 텍스트를 text 로 치환addressRange a\ text addressRange 로 명시된 텍스트 뒤에 text 를 첨가

만일 주소가 명시되어있지 않으면 모든 줄에 대하여 적용

Page 62: 7.  유틸리티 (Utilities)

7. 유틸리티 62

7.12 7.12 화일 변환화일 변환

(예) $ sed 's/^/ /' arms > arms.indent

→ 화일의 들여쓰기 실행

(예) $ sed 's/^ *//' arms.indent

→ 각 줄 앞에 있는 공백 제거

( 예 ) $ sed '/a/d' arms→ 정규식 'a' 를 포함하는 모든 줄을

삭제

Page 63: 7.  유틸리티 (Utilities)

7. 유틸리티 63

7.12 7.12 화일 변환화일 변환 ( 예 ) $ sed '/\<a\>/d' arms

→ 단어 'a' 를 포함하는 모든 줄을 삭제

(예) $ sed -e 's/^/<< /' -e 's/$/ >>/' arms → '<<' 를 줄의 맨 앞에 , '>>' 를

줄의 맨 뒤에 삽입함

Page 64: 7.  유틸리티 (Utilities)

7. 유틸리티 64

7.12 7.12 화일 변환화일 변환 tr -c -d -s string1 string2

string1 문자 ( 집합 ) 을 string2 문자 ( 집합 ) 으로 변환시킴

-c string1 의 보어 (complement) 를 취함 즉 , 지정된 문자 이외의 문자들-d string1 에 있는 문자들을 표준 출력에서

제거-s 반복 출력되는 문자를 한 번만 출력

하도록 함

Page 65: 7.  유틸리티 (Utilities)

7. 유틸리티 65

7.12 7.12 화일 변환화일 변환

(예) $ tr a-z A-Z < inputFile

→ 모든 소문자를 대문자로 변환

$ tr a-c A-C < inputFile → 소문자 a, b, c 를 대문자 A,

B, C 로 변환

Page 66: 7.  유틸리티 (Utilities)

7. 유틸리티 66

7.12 7.12 화일 변환화일 변환

$ tr -c a X < inputFile→ 소문자 a 가 아닌 모든 문자를 X 로 치환$ tr -c a-z '\012' < inputFile → 소문자 a 부터 z 가 아닌 모든 문자를

아스키값 12 로 치환$ tr -d a-c < inputFile

→ 소문자 a 부터 c까지를 제거

Page 67: 7.  유틸리티 (Utilities)

7. 유틸리티 67

7.12 7.12 화일 변환화일 변환

ul -tterminal { fileName }*

-tterminal 터미날 유형 (/etc/termcap 참조 )

만일 명시되어있지 않으면

$TERM 의 값을 참조

(예) $ man who | ul -tdumb > man.txt → 'who' 에 관한 매뉴얼을 단순

(dumb) 프린터 출력용으로 밑줄을 변환함

Page 68: 7.  유틸리티 (Utilities)

7. 유틸리티 68

7.13 7.13 순수 화일 내용 보기순수 화일 내용 보기 : : od (octal od (octal

dump)dump) od -abcdfhios[n]x fileName [offset [.][b]]

-a 바이트를 문자로 해석하고 , 아스키로

프린트 ( 예 : 0 = null)-b 바이트를 부호없는 8 진수로 해석-c 바이트를 문자로 해석하고 , C 표기로 프린트 ( 예 : 0 = \0)

-d 2 바이트 쌍을 부호없는 10 진수로 해석-f 4 바이트 쌍을 부동소숫점수로 해석

Page 69: 7.  유틸리티 (Utilities)

7. 유틸리티 69

7.13 7.13 순수 화일 내용 보기순수 화일 내용 보기 : : od (octal od (octal dump)dump)

-h 2 바이트 쌍을 부호없는 16 진수로 해석

-i 2 바이트 쌍을 부호있는 10 진수로 해석

-l 4 바이트 쌍을 부호있는 10 진수로 해석

Page 70: 7.  유틸리티 (Utilities)

7. 유틸리티 70

7.13 7.13 순수 화일 내용 보기순수 화일 내용 보기 : : od (octal od (octal dump)dump)

-o 2 바이트 쌍을 부호없는 8 진수로 해석-sn 최소 바이트가 n( 기본은 3) 이고 ,

널문자로 끝나는 문자열 찾기 (string)

-x 2 바이트 쌍을 16 진수로 해석offset 리스팅이 시작되는 위치 지정 .

만일 b 로 지정되면 블록 수로 해석되고 , 다른 경우는 8 진수로 해석됨

Page 71: 7.  유틸리티 (Utilities)

7. 유틸리티 71

7.13 7.13 순수 화일 내용 보기순수 화일 내용 보기 : : od (octal od (octal dump)dump)

(예) $ od -c /bin/od 1000

→ 화일 /bin/od 를 1000번지부터 C 표기 방법으로 보여줌

$ od -s7 /bin/od [1-c7p334]

→ 화일 /bin/od 에서 길이가 7이상인 문자열 (null 로 끝남 )을 탐색

Page 72: 7.  유틸리티 (Utilities)

7. 유틸리티 72

7.14 7.14 화일 시스템 마운트화일 시스템 마운트

mount -ooptions [ deviceName directory ]

-ooptions 유효한 코드 (rw: 일기쓰기 , ro: 읽기 전용 )

umount deviceName

(예) $ mount

$ mount /dev/dsk2 /usr

$ umount /dev/dsk2

Page 73: 7.  유틸리티 (Utilities)

7. 유틸리티 73

7.15 7.15 확인확인

셀 확인 : whoami 터미날 확인 : tty

Page 74: 7.  유틸리티 (Utilities)

7. 유틸리티 74

7.16 7.16 터미널 확인 터미널 확인 : tty: tty

tty

Page 75: 7.  유틸리티 (Utilities)

7. 유틸리티 75

7.17 7.17 텍스트 포맷팅텍스트 포맷팅

nroff troff style spell