1. grep
1-1. grep이란?
- 기본 출력이나 파일에서 지정한 패턴과 일치하는 라인을 탐색하는 명령어.
- 패턴은 정규표현식을 사용.
1-2. 사용법
$ grep [OPTIONS...] PATTERN [FILE...]
$ [출력] | grep [옵션...] PATTERN [파일...]
1-3. 옵션
-E, --extended-regexp
: 확장 정규 표현식 사용.
-F, --fixed-strings
: 일반 문자열로 사용.
-G, --basic-regexp
: 기본 정규 표현식으로 사용, 기본값.
-P, --perl-regexp
: Perl 정규 표현식으로 사용.
-e, --regexp=PATTERN
: 탐색에 사용할 정규표현식 입력.
-f, --file=FILE
: 파일에서 PATTERN을 읽어서 사용.
-i, --ignore-case
: 대/소문자 무시.
-w, --word-regexp
: 단어 단위로 매칭.
-x, --line-regexp
: 라인 단위로 매칭.
-z, --null-data
: 라인을 newline(\n)이 아닌 NULL(\0)로 구분.
-v, --invert-match
: 매칭되지않는 라인 탐색.
1-4. 간단 사용예제
#프로세스 목록에서 'java'만 출력하기.
$ ps -ef | grep -i "java" | grep -v "grep"
#현재 목록에서 'error'가 포함된 파일의 정보 출력.
$ ls -al | grep -i "error"
#파일에서 'Exception' 탐색하기.
$ grep -i "Exception" dochi.txt
2. watch
2-1. watch란?
- 지정한 명령어를 일정 주기로 반복하여 실행하는 명령어.
- 주로 프로세스를 모니터링 할 때 사용됨.
2-2. 사용법
$ watch [OPTIONS...] 명령어
2-3. 옵션
-n, --interval=seconds
: 지정한 초를 주기로 실행.
-t, --no-title
: 헤더를 출력하지 않음.
-d, --differences
: 이전 결과에서 변경된 부분을 표시.
2-4. 간단 사용예제
# 현재시간 출력하기
$ watch --interval=1 date"+%Y-%m-%d %H:%M:%S"
# 매 1초마다 'java' 프로세스 확인.
$ watch -d --interval=1 'ps -ef | grep -i "java" | grep -v grep'
3. wc
3-1. wc란?
- 파일의 라인, 단어, Byte의 수를 출력하는 명령어.
3-2. 사용법
$ wc [OPTIONS...] [FILE]
$ [출력] | wc [OPTIONS...]
3-3. 옵션
-c, --bytes
: 파일 또는 출력의 바이트 수.
-m, --chars
: 파일 또는 출력의 문자 수.
-l, --lines
: 파일 또는 출력의 라인 수.
-w, --words
: 파일 또는 출력의 단어 수.
-L, --max-line-length
: 파일 또는 출력에서 가장 긴 라인의 길이.
3-4. 간단 사용예제
#데이터 파일의 라인수.
$ wc -l dochi_contents.dat
$ cat dochi_contents.dat | wc -l
#데이터 파일의 용량.
$ wc -c dochi_contents.dat
$ cat dochi_contents.dat | wc -c
4. head
4-1. head란?
- 파일의 처음 라인에서 밑으로 10개의 라인을 출력.
- 주로 데이터 파일을 확인할 때 사용.
4-2. 사용법
$ haed [OPTIONS...] [FILES...]
4-3. 옵션
-c#[K], --bytes=#[K]
: 입력한 바이트의 수(#)만큼 출력, K=1000단위.
-[n]#[K], --lines=#[K]
: 입력한 라인 수(#)만큼 출력, n은 생략가능, K=1000단위.
-q, --quiet, --silent
: 파일명을 표시하지 않음.
-v, --verbose
: 파일명을 표시.
4-4. 간단 사용예제
#데이터 파일을 100라인 출력.
$ head -100 dochi_contatns.dat
$ head -n100 dochi_contatns.dat
$ head --lines=100 dochi_contatns.dat
#데이터 파일을 100라인을 파일명과 함께 출력.
$ head -100v dochi_contatns.dat
$ head -vn100 dochi_contatns.dat
$ head --lines=100 --verbose dochi_contatns.dat
#데이터 파일을 100바이트 출력.
$ head -c100 dochi_contatns.dat
$ head --bytes=100 dochi_contatns.dat
5. tail
5-1. tail이란?
- 파일의 마지막 라인에서 위로 10개의 라인을 출력.
- 주로 로그를 모니터링할 때 사용.
5-2. 사용법
$ tail [OPTIONS...] [FILES...]
5-3. 옵션
-c#[K], --bytes=#[K]
: 입력한 바이트의 수(#)만큼 출력, K=1000단위.
-[n]#[K], --lines=#[K]
: 입력한 라인 수(#)만큼 출력, n은 생략가능, K=1000단위.
-q, --quiet, --silent
: 파일 이름을 나타내는 헤더를 표시하지 않음.
-v, --verbose
: 파일 이름을 나타내는 헤더를 표시.
-f, --follow, --follow=descriptor
: 파일을 트랭킹하여 라인이 추가될 때 마다 출력됨.
-F, --follow=name
: 파일명이 변경되는 것을 트래킹.
# --follow와 함께 쓰이는 옵션
--pid
: 프로세스가 종료되었는지 트래킹.
--max-unchanged-stats=N
: 파일에 변화가 트래킹되지 않더라도 N번째 후에 다시 확인.
--retry
: 파일에 접근할 수 없을 때, 트래킹을 다시 시도할 것인지 여부.
-s, --sleep-interval=N
: N초마다 파일 또는 프로세스(--pid)를 확인.
5-4. 간단 사용예제
#데이터 파일의 마지막 100줄 출력.
$ tail -100 dochi_contents.dat
#로그 파일 트래킹
$ tail -F dochi_action_20200210.log
#로그 프로세스 트래킹
$ tail -f --pid=12345
마치며
- 개발하면서 자주 사용하는 명령어들은 이곳에 지속적으로 기록해두기로 하겠다.
- 티스토리에서 서식이라는 기능을 처음 사용해봤는데, 화면이 화려해져서 기분이 좋다.
'Back-end > Script' 카테고리의 다른 글
[Shell] 조건문 - IF, CASE IN (0) | 2020.02.06 |
---|---|
[Shell] Arguments 사용하기 (0) | 2020.02.06 |
[Shell] 알파벳 대소문자 변경 (0) | 2020.02.06 |
댓글