grep -hnlvwi patten {filename}

Slides:



Advertisements
Similar presentations
제 5 장 유틸리티 창병모 파일 관련 유틸리티 2 필터링 : grep 명령어 $ grep 패턴 파일 *  대상 파일들을 읽어서, 해당 패턴을 검색하고, 패턴을 포함하는 줄을 출력 $ grep with you.txt Until you come.
Advertisements

Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Apr. 25, 2013 Laboratory of Systems Medicine BASIC LINUX COMMANDS.
컴퓨터와 인터넷.
3장 파일 및 디렉토리 조작 정보보호 연구실 김동민.
2. 파일 시스템 파일 디렉터리와 경로명 파일 시스템의 구조 새로운 파일 생성 소유권과 허가 파일 유형과 일반화.
Linux University of Seoul Computer Science Park Jong wook
컴퓨터 네트워크 실습.
UNIX 이 재 광 한남대학교 컴퓨터공학과.
Homework 4… 11월 4일(금) 11:59pm 까지 Bash 셸 프로그램 개선 교재 p185 연습문제
UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제
리눅스 기본 명령어 및 Vi 명령어 정리 2015/1, 컴퓨터의 개념 및 실습.
블록 속성 정의와 추출 속성 정의 블록을 만들 객체들에 문자를 사용하여 속성을 설명하는 꼬리표에 해당하는 태그를 정의하는
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
기본적인 SELECT문 작성.
컴퓨터 네트워크 실습.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
리눅스 명령어 명령어를 알아야 명령을 내리지?.
Root Filesystem Porting
Root Filesystem Porting
Linux Master 김희승 임승한 OneScore 임승한.
HW #4 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
사용자계정관리.
파일 접근권한 제어 stat 구조체의 st_mode 항목에 파일의 종류와 접근권한 정보저장 st_mode 값의 구조.
PySpark Review 박영택.
2. 일반 사용자를 위한 유닉스 시동과 종료 로그인(login) 사용자ID와 패스워드를 입력
Cross Compiler를이용한 커널 컴파일 및 포팅
어서와 C언어는 처음이지 제14장.
CHAP 13. 방명록 만들기 실습.
Linux/UNIX Programming
솔라리스10 3장. 솔라리스 패키지 관리.
27장. 모듈화 프로그래밍.
HW #4 UNIX 파일과 디렉토리 1. 자신의 HOME 디렉토리 아래에 다음과 같은 구조의 디렉토리 및 파일을 생성하고, 이 구조를 다음 명령을 사용하여 파일로 저장한 후, 이를 프린트하여 제출한다. $ ls –lR linux_unix > hw4-1 $HOME linux_unix.
Linux/UNIX Programming
이재광 정보보호 일반 중에서 제2장 운영체제 보안 이재광
UNIX Unbounded A Beginning Approach
툴 설치 가이드 Formality SynopsysMentor.
연산자 (Operator).
화면 갈무리 및 파일 권한 설정.
setuid, setgid, sticky bit 권한
작은 분야의 일을 훌륭하게 해내는 자그마한 도구들을 개발자들에게 제공하고 개발자들은 이 도구들을 창의적으로 결합하여 사용하자.
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
운영체제 RaspberryPi Sejin Oh.
RHEL3 + oracle8i + DB생성.
PL/SQL 코드 생성 및 수행 1 여러가지 환경 DOS에서 sqlplus Windows에서의 sqlplusw
Fucntion 요약.
Linux/UNIX Programming
Linux/UNIX Programming
시스템 인터페이스 Lab#5 쉡 실습.
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
Internet Protocol and Programming
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
Git을 이용한 버전 관리 - Branch 실습
 6장. SQL 쿼리.
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
Docker Study 6~7.
Chapter 07. 사용자 관리 Solaris3. 사용자 암호 관리 및 소유권 관리
Linux/UNIX Programming
시스템 해킹과 보안 permission과 SetUID.
Linux/UNIX Programming
Presentation transcript:

grep -hnlvwi patten {filename} 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, 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 // # grep -wn the grepfile 2:so turn off the light, 5:beautiful mermaids will swim through the sea, # _

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

4. 유틸리티(계속) # sort -r sortfile # vi sortfile jan start chapter 3 10th Jan end chapter 7 27 Mar start chapter 7 27 may end chapter 7 17th :wq! # sort sortfile # 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

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

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

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

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

4. 유틸리티(계속) # vi lady1 lady of the night, I hold you close to me, and all those loving words you say are right. # vi lady2 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. # _

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

4. 유틸리티(계속) # ls // 현 디렉토리 목록 표시 test1 test2 test3 test4 # tar -cvf tarfile // 현 디렉토리 압축 a ./ 0K a ./test1 0K a ./test2 0K a ./test3 0K a ./test4 0K 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 # _

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 테이프 블럭 # _

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

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

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

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 # _

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

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

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

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

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

ln -sf original [newlink] ln -sf {original} directory 4. 유틸리티(계속) 하드 링크와 소프트 링크: ln ln -sf original [newlink] ln -sf {original} directory -s: 심볼릭 링크를 생성 -f: 수퍼유저가 디렉토리에 하드링크를 생성할 수 있게 한다. # 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

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 # _

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

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

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 # _

\215 lu4f^S\270^B{)^N'Q^W\232;:\312^FSb\276^T 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 # _

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

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/ # _

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

4. 유틸리티(계속) 쉘의 소유자 확인: whoami 터미널 확인: tty whoami # whoami james # _ /dev/pts/6 # _