1 / 31

4. 유틸리티

4. 유틸리티. 파일 여과 (File filtering). grep -hnlvwi patten {filename}. - h: 화일 이름을 명시하지 않는다 . - n: 줄 번호 표시 - l: 화일 목록 표시 - v: pattern 과 일치하지 않는 줄을 보여 준다 . - w: 전체 단어로써 비교한다 . - i: patten 의 대소문자 무시. 4. 유틸리티 ( 계속 ). # vi grepfile well you know it's your bedtime,

tamar
Download Presentation

4. 유틸리티

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4. 유틸리티 • 파일 여과(File filtering) grep -hnlvwi patten {filename} - h: 화일 이름을 명시하지 않는다. - n: 줄 번호 표시 - l: 화일 목록 표시 - v: pattern과 일치하지 않는 줄을 보여 준다. - w: 전체 단어로써 비교한다. - i: patten의 대소문자 무시

  2. 4. 유틸리티(계속) # vi grepfile well you know it's your bedtime, so turn off the light, say all your prayers and then, oh you sleepy young heads dream of wonderful things, beautiful mermaids will swim through the sea, and you will be swimming there too. :wq! # grep the grepfile // so turn off the light, say all your prayers and then, beautiful mermaids will swim through the sea, and you will be swimming there too. # grep -wn the grepfile 2:so turn off the light, 5:beautiful mermaids will swim through the sea, # _

  3. 4. 유틸리티(계속) • 화일 정렬(File sort) • ASCII값으로 비교하여 정렬한다.( 공백 < 대문자 < 소문자) sort -t -r {sortfield -bfMn} {filename} -t: 항목 분리자를 명시하기 위해서 사용 -r: 내림차순으로 정렬 -b: 줄의 앞에 있는 공백을 무시 -f: 대소문자 무시 -M: 월(Month) 순으로 정렬 -n: 숫자 순으로 정렬

  4. 4. 유틸리티(계속) # vi sortfile jan start chapter 3 10th Jan start chapter 1 30th Jan start chapter 1 23th Jan end chapter 7 27 Mar start chapter 7 27 may end chapter 7 17th :wq! # sort sortfile Jan end chapter 7 27 Jan start chapter 1 23th may end chapter 7 17th Jan start chapter 1 30th Mar start chapter 7 27 jan start chapter 3 10th # sort -r sortfile jan start chapter 3 10th Mar srart chapter 7 27 Jan start chapter 1 30th may end chapter 7 17th Jan srart chapter 1 23th Jan end chapter 7 27

  5. cmp -ls filename1 filename2 -l: 일치하지 않는 모든 바이트에 대한 옵셋과 값을 보여 준다. -s: 모든 출력을 금지 4. 유틸리티(계속) • 화일 비교 • cmp 두개의 파일사이에 서로 다른 첫번째 바이트를 찾아낸다.

  6. 4. 유틸리티(계속) # vi lady1 lady of the night, I hold you close to me, and all those loving words you say are right. # vi lady2 lady of the night, I hold you close to me, and everything you say to me is right. # cmp lady1 lady2 lady1와 lady2는 다름: 문자 19, 행 1 # _

  7. 4. 유틸리티(계속) • diff 두 파일을 비교하고, 그 차이를 출력한다. • 출력형태 정보 첨가(addition) diff -i filename1 filename2 -i : 줄들의 대소문자 무시 Firststart a SecondStart, SecondStop > 둘째 파일에서 첫째파일로 첨가될 줄

  8. 4. 유틸리티(계속) 삭제(Deletions) 변경(Change) FirstStart, FirstStop d lineCount < 첫째 파일에서 제거될 줄 FirstStart, FirstStop c SecondStart, SecondStop <첫째 파일에서 치환될 줄 ---- >치환을 위해 사용될 둘째 파일의 줄

  9. 4. 유틸리티(계속) # vi lady1 lady of the night, I hold you close to me, and all those loving words you say are right. # vi lady2 lady of the night, I hold you close to me, and everything you say to me is right. # diff lady1 lady2 3c3 <and all those loving words you say are right. --- >and everything you say to me is right. # _

  10. 4. 유틸리티(계속) • 파일 압축: tar tar -cfrtuvx% [tarfilename] filelist -c: tar 형식의 파일을 생성한다. -f: 디폴트 이름을 변경할 수 있게 한다. -v: 긴 출력 정보제공 -t: 목차 제공 -r: 무조건 리스트된 파일을 보관 파일에 덧붙인다. -u: 이미 보관된 파일보다 더 최근의 파일을 덧붙인다. -x: 명명된 파일을 추출해 준다.

  11. 4. 유틸리티(계속) # ls // 현 디렉토리 목록 표시 test1 test2 test3 test4 # tar -cvf tarfile // 현 디렉토리 압축 a ./ 0K a ./test1 0K a ./test2 0K a ./test3 0K a ./test4 0K # ls // 현 디렉토리 목록 표시 tarfile test1 test2 test3 test4 # tar -tvf tarfile // tarfile의 리스트 출력 drwxr-xr-x 9561/200 0 1999년 5월 25일 14:15 ./ -rw-r--r-- 9561/200 0 1999년 5월 25일 14:08 ./test1 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test2 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test3 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test4 # _

  12. 4. 유틸리티(계속) # tar -rvf tarfile insert_file //insert_file의 추가 a insert_file 0K # tar -tvf tarfile //tarfile목록 표시 drwxr-xr-x 9561/200 0 1999년 5월 25일 14:15 ./ -rw-r--r-- 9561/200 0 1999년 5월 25일 14:08 ./test1 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test2 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test3 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:09 ./test4 -rw-r--r-- 9561/200 0 1999년 5월 25일 14:22 insert_file # tar -xvf tarfile . // 현재 디렉토리로 추출 x ., 0 bytes, 0 tape blocks x ./test1, 0 bytes, 0 테이프 블럭 x ./test2, 0 bytes, 0 테이프 블럭 x ./test3, 0 bytes, 0 테이프 블럭 x ./test4, 0 bytes, 0 테이프 블록 x insert_file, 0 bytes, 0 테이프 블럭 # _

  13. 값 / 동작 -name pattern 파일의 이름이 pattern과 일치하면 참 -user userID 파일의 소유자가 userID이면 참 -g groupID 파일의 그룹이 groupID이면 참 -atime count 파일이 count 날 수 이내에 접근되었으면 참 -mtime count 파일의 내용이 count 날 수 이내에 수정되었고, 속성이 바뀌었으면 참 -print 현재 파일명을 출력하고 참값을 반환 4. 유틸리티(계속) • 화일 탐색:find find pathlist expression pathlist: 경로명 expression:

  14. 4. 유틸리티(계속) # ls //현재 디렉토리 내용 표시 a.c b.c test.c test1 test2 # find . -name '*.c' -print //*.c에 해당되는 파일을 현재의 디렉토리 ./a.c //부터 재귀적으로 탐색하여 출력 ./b.c ./test.c # _

  15. crontab crontabname crontab -ler [username] -l: crontab 파일에 등록된 내용 표시 -e: 등록된 crontab 파일을 편집 -r: 등록된 파일을 해제 4. 유틸리티(계속) • 명령 스케줄링 • 주기적인 실행: cron/ crontab 일련의 작업이 주기적으로 수행되도록 스케줄 한다.

  16. 4. 유틸리티(계속) # vi cronfile 30 3 * * 1 echo happy today // 분, 시, 일, 월, 주 순서 :wq! # crontab cronfile // cornfile의 등록 # crontab -l // 등록된 crontab 파일의 내용 표시 30 3 * * 1 echo happy today # crontab -r // 등록 해제 # crontab -l # _

  17. 4. 유틸리티(계속) • 프로그램 가능한 텍스트처리: awk 하나 이상의 파일을 스캔 하여 특정한 조건에 맞는 모든 줄을 대상으로 정의된 동작을 실행한다. • 구조 • awk ‘pattern {action} pattern {action} …… ‘ filenames • awk -f pattern-action-file filenames pattern-action-file: awk 실행 action을 가진 프로그램 파일

  18. 4. 유틸리티(계속) Pattern • BEGIN 또는 END • 논리 연산자, 관계 연산자 또는 정규식을 포함하는 식 action • if - else 문장 • while 문장 • for 문장 • break • continue • 변수 = 연산식

  19. 변 수 내 용 FILENAME 현재 처리되고 있는 입력 파일의 이름 FS 입력 필드 분리 문자 NR 현재 레코드(행)의 번호 NF 현재 레코드(행)의 필드의 갯수 OFS 출력되는 필드의 분리 문자 4. 유틸리티(계속) • 미리 정의된 변수 • printf 형식[, 연산식의 리스트] [> 연산식] • next (현재 입력 줄에 남은 패턴을 건너뛴다) • exit (현재 줄의 나머지는 건너뛴다) • {문장의 리스트}

  20. 4. 유틸리티(계속) # viexam Math 81 English 90 computer 75 chemistry 95 ethics 60 physics 86 :wq! # awk '$2 > 90 {print $1}' exam // 점수가 90이상인 과목 출력 chemistry # _

  21. 4. 유틸리티(계속) //평균값 계산 # vi average {sum += $2} END {printf "The average is %.2f\n", sum/NR} # awk -f average exam The average is 69.57 # _

  22. ln -sf original [newlink] ln -sf {original} directory -s: 심볼릭 링크를 생성 -f: 수퍼유저가 디렉토리에 하드링크를 생성할 수 있게 한다. 4. 유틸리티(계속) • 하드 링크와 소프트 링크: ln # ls -l heart -rw-r--r-- 1 james netwk 106 5월 16일 14:25 heart # ln -s heart heart_sln // 심볼릭 링크 # ls -l -rw-r--r-- 2 james netwk 106 5월 16일 14:25 heart lrwxrwxrwx 1 james netwk 5 5월 27일 11:05 heart_sln -> heart

  23. 4. 유틸리티(계속) # ls heart heart1 heart2 # ls -l -rw-r--r-- 1 james netwk 106 5월 16일 14:25 heart -rw-r--r-- 1 james netwk 135 5월 27일 11:19 heart1 -rw-r--r-- 1 james netwk 133 5월 27일 11:19 heart2 # mkdir tmp # ln heart* tmp //하드 링크 # cd tmp # ls -l -rw-r--r-- 2 james netwk 106 5월 16일 14:25 heart -rw-r--r-- 2 james netwk 135 5월 27일 11:19 heart1 -rw-r--r-- 2 james netwk 133 5월 27일 11:19 heart2 # _

  24. 4. 유틸리티(계속) • 사용자 대치: su 다른 사용자가 소유하는 서브 쉘을 생성할 수 있게 한다. su [ username] username의 디폴트는 root이다. 본래의 쉘로 다시 되돌아 오기 위해서는 Control-D를 입력한다. # whoami james # su password: #root # __

  25. compress -cv {filename} uncompress -cv {filename} .Z 접미사가 붙는다. -c: 표준 출력으로 내보낸다. -v: 압축정보 제공 4. 유틸리티(계속) • 화일변환 • 화일 압축: compress/ uncompress

  26. 4. 유틸리티(계속) # compress -v misc.c main.c // 압축 수행 misc.c: 압축: 39.53% -- misc.c.Z로 대체됨 main.c: 압축: 55.46% -- main.c.Z로 대체됨 # ls -l -rw-rw-rw- 1 extra netwk 1946 4월 13일 14:28 main.c.Z -rw-rw-rw- 1 extra netwk 1912 4월 13일 14:28 misc.c.Z # uncompress -v *.Z // 원래 파일로 다시 복원, compress -d도 가능 main.c.Z: -- main.c로 대체됨 misc.c.Z: -- misc.c로 대체됨 # ls -l -rw-rw-rw- 1 extra netwk 4370 4월 13일 14:28 main.c -rw-rw-rw- 1 extra netwk 3162 4월 13일 14:28 misc.c # _

  27. 4. 유틸리티(계속) • 파일 암호화: crypt • key를 이용해서 정규 텍스트를 암호화된 텍스트출력 • key를 이용해서 암호화된 텍스트를 정규 텍스트로 출력 crypt [key] # vi cryptfile this is a very important :wq! # crypt secret <cryptfile> sample.crypt # cat sample.crypt \215 lu4f^S\270^B{)^N'Q^W\232;:\312^FSb\276^T # rm cryptfile # crypt secret <sample.crypt> cryptfile # cat cryptfile this is a very important # _

  28. mount -o options [devicename] [directory] umount devicename options: rw은 읽기/쓰기로 마운트, ro는 읽기 전용으로 마운트 4. 유틸리티(계속) • 파일 시스템 마운트: mount / umount • 장치의 파일 시스템을 루트 계층 구조로 결합 시킬 수 있게 한다. • 수퍼 유저만이 마운트 할 수 있다. • 인수 없이 mount를 사용하면 현재 마운트된 장치의 목록을 제공.

  29. 4. 유틸리티(계속) # mount // 현재 마운트된 장치 표시 /dev/dsk1 on (rw) # ls /usr // /usr는 현재 비어 있음 # mount /dev/dsk2 /usr // /dev/dsk2 장치를 마운트 # mount // 현재 마운트된 장치 표시 /dev/dsk1 on / (rw) /dev/dsk2 on /usr (rw) # ls /usr // 마운트된 장치의 내용 표시 bin/ etc/ include/ lost+found/ src/ ucb/ demo/ games/ lib/ pub/ sys/ ucblib/ # _

  30. 4. 유틸리티(계속) # umount /dev/dsk2 // 장치를 마운트 해제 # mount // 현재 마운트된 장치 표시 /dev/dsk1 on (rw) # ls /usr // /usr가 다시 비어 있음 # _

  31. 4. 유틸리티(계속) • 쉘의 소유자 확인: whoami • 터미널 확인: tty whoami # whoami james # _ tty // 터미널의 경로 이름 표시 # tty /dev/pts/6 # _

More Related