유닉스 유틸(find , grep)에 대해서 알아보도록 하겠습니다.
1. find
- 지정된 기준에 충족하는 파일에 대해 검색하는 기능입니다. (하위 디렉토리까지 찾습니다.)
- 일치하는 파일의 이름 표시 또는 해당 파일에 대한 명령을 실행할 수도 있습니다.
- print 옵션은 기본이나 지정이 안된 시스템에서는 지정이 필요합니다. (find . -name test* -print)
jhjt@jhjt-PC ~ $ find . -name test* ./test.pc
|
>> test로 시작하는 파일 및 디렉토리를 찾아 보았습니다.
1-1 find 명령을 통해 실행 하기
- find로 찾은 디렉토리에 대해서 추가적인 명령을 수행할수 있는 방법 입니다.
jhjt@jhjt-PC ~ $ find . -name test* -exec ls -l {} \; -rw-r--r-- 1 jhjt None 34 11월 16 23:46 ./test.pc
|
>> test로 시작하는 파일 및 디렉토리를 검색 후 ls -l 을 수행하였습니다.
{} 이 부분에 찾은 파일 및 디렉토리가 들어가게 됩니다.
1-2 find 명령의 옵션
- type : 파일 및 디렉토리 조건 입니다. d는 디렉토리 , f는 파일을 의미합니다.
jhjt@jhjt-PC ~ $ find . -name test* -type d
jhjt@jhjt-PC ~ $ find . -name test* -type f ./test.pc
|
- size : 블럭의 사이즈 조건 입니다.
+n 이면 n보다 큰 불럭을 의미 합니다.
-n 이면 n보다 작은 블럭을 의미 합니다.
n 이면 n블럭과 동일함을 의미 합니다.
jhjt@jhjt-PC ~ $ find . -size +1 ./.bashrc ./.bash_history ./.bash_profile ./.inputrc ./.profile
jhjt@jhjt-PC ~ $ find . -size -1 . ./.ddd ./.ddd/sessions ./.ddd/themes ./aa ./aa/newfile
jhjt@jhjt-PC ~ $ find . -size 1 ./test.pc
|
-mtime : 파일의 수정일자 조건입니다.
+x 현시간부터 x일 전까지의 파일을 찾는 의미 입니다.
-x x일 이전에 수정한 파일을 찾는 의미 입니다.
jhjt@jhjt-PC ~ $ find . -mtime +1 . ./.bashrc ./.bash_history ./.bash_profile ./.ddd ./.ddd/sessions ./.ddd/themes ./.inputrc ./.profile ./aa ./aa/newfile ./test.pc
jhjt@jhjt-PC ~ $ find . -mtime -1
|
-perm : 엑세스 권한에 대한 조건입니다.
(넘버 및 모드 다 됩니다.) / u는 유저 , g는 그룹 , o는 other를 뜻합니다.
jhjt@jhjt-PC ~ $ find . -perm 644 ./test.pc jhjt@jhjt-PC ~ $ find -perm -u=rwx . ./.bashrc ./.bash_profile ./.ddd ./.ddd/sessions ./.ddd/themes ./.inputrc ./.profile ./aa |
2. grep
- 지정된 패턴과 일치하는 라인을 찾는 유틸 입니다.
- Syntax : grep [options] pattern [file1 file2 ...]
jhjt@jhjt-PC ~ $ grep sldf test.pc sldflsdkfjlsldkfjlsdkflsdfljsdfjk
|
2-1. grep 옵션
-v |
일치하지 않는 라인을 출력합니다. |
-c |
일치하는 행의 수만 출력합니다. |
-l |
일치하는 행이 있는 파일이름만 출력합니다. |
-n |
일치하는 라인의 번호를 출력합니다. |
-i | 비교할때 대소문자를 무시합니다. (대소문자 구분 않함) |
-w | 전체단어가 일치해야 출력 합니다. |
2-2. grep 정규표현식
기호 |
의미 |
. |
'/n'을 제외한 어떤 단일 글자와도 부합됨 |
* |
앞의 표현식이 0번이상 반복되는 것을 부함됨 |
[] |
문자열 클래스 [] 안의 어느 단일 글자와도 부합됨 |
^ |
어떤 라인의 시작점에 부합됨 |
$ |
어떤 라인의 마지막점에 부함됨 |
\ |
Escape Charater 뒤에 나오는 글자를 글자 그대로 해석함 |
+ |
앞의 표현식이 1번 이상 반복되는 것에 부함됨 |
? |
직전 정규 표현식이 0번이나 1번 반복되는 것에 부합됨 |
| |
정규표현식이나 이후 정규표현식 둘중에 어느것이라도 부합됨 |
" " | 따옴표안의 글자 그대로 해석됨 |
() | 몇몇 정규표현식을 묶어서 새로운 정규표현식을 구성함 |
- 실습 해본 결과 입니다.
jhjt@jhjt-PC ~ $ ps -ef | grep sh jhjt 6572 2336 pty0 22:35:13 /usr/bin/bash jhjt 2336 2320 pty0 21:40:21 /usr/bin/bash SYSTEM 2428 2368 ? 21:25:11 /usr/sbin/sshd
jhjt@jhjt-PC ~ $ cat test1.sh start shell shell end test shell
jhjt@jhjt-PC ~ $ grep '^s' test1.sh start shell shell end
jhjt@jhjt-PC ~ $ grep 'd$' test1.sh shell end
jhjt@jhjt-PC ~ $ grep '^[st]' test1.sh start shell shell end test shell
|
유닉스에는 많은 유틸이 있습니다.
그중 많이 사용하는 유틸 2가지에 대해서 알아보았습니다.
다음에는 좀더 많은 유틸에 대해서 알아보도록 하겠습니다.
'관심1 > UNIX' 카테고리의 다른 글
Unix Utilities(tar, jar) 알아보기 (0) | 2016.12.17 |
---|---|
Unix sort, head , tail 알아보기 (0) | 2016.12.15 |
putty 다운로드 및 사용법 (0) | 2016.11.17 |
유닉스(UNIX) VI EDITOR 알아보기 (0) | 2016.11.17 |
유닉스 파일 권한(File Permissions) 알아보기 (0) | 2016.11.13 |