카테고리 없음

리눅스 grep 명령을 사용해서 중요 정보 찾는 방법

SecuDedi 2025. 4. 3. 18:28

 

grep 명령어란?

grep(Global Regular Expression Print) 은 리눅스에서 특정 패턴(문자열, 정규식 등)을 파일이나 출력된 데이터에서 검색하는 명령어입니다.

 

주요 특징:

  • 특정 문자열을 포함한 줄을 검색
  • 정규 표현식을 사용하여 강력한 패턴 매칭
  • 여러 파일에서 동시에 검색 가능
  • 대소문자 구분 여부 설정 가능

 

1. 특정 파일에서 중요한 정보 찾기

예를 들어, config.txt 파일에서 password라는 단어를 포함한 줄을 찾고 싶다면:

 
grep "password" config.txt
 

대소문자를 구분하지 않으려면 -i 옵션을 추가합니다.

grep -i "password" config.txt

 


2. 특정 디렉터리에서 검색

예를 들어, /etc 디렉터리에서 password 라는 단어가 포함된 파일을 찾을 경우:

 
grep "password " /etc/*
 

 

하위 디렉터리까지 검색하려면 -r(재귀적 검색) 옵션을 사용합니다.

grep -r " password " /etc
 
 

3. 특정 패턴(예: 이메일, IP 주소) 찾기

이메일 주소 찾기

 
grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" target_file.txt

IPv4 주소 찾기

 
grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" target_file.txt

4. 특정 키워드를 포함하는 파일 찾기

예를 들어, ssh 관련 설정이 포함된 파일을 /etc에서 찾으려면:

 
grep -rl "ssh" /etc
  • -l : 키워드를 포함하는 파일 이름만 출력

5. 시스템 로그에서 특정 패턴 찾기

예를 들어, auth.log에서 failed(로그인 실패)라는 단어를 포함한 줄 찾기:

 
grep "failed" /var/log/auth.log

 

로그 파일이 압축되어 .gz 파일이라면 zgrep을 사용:

 
zgrep "failed" /var/log/auth.log.*
 
 

6. 특정 패턴 제외하고 검색

예를 들어, log.txt에서 error는 포함하지만 debug는 제외한 줄 찾기:

 
grep "error" log.txt | grep -v "debug"
  • -v : 특정 단어가 포함된 줄 제외

7. 검색 결과에 줄 번호 추가

 
  • -n : 검색된 패턴이 포함
  • 된 줄 번호 표시
grep -n "error" log.txt

8. 여러 개의 키워드를 동시에 검색

예를 들어, error 또는 fail이 포함된 줄 찾기:

 
grep -E "error|fail" log.txt
  • -E : 정규 표현식 사용 가능 (egrep과 동일)

위 방법을 활용하면 중요 정보(비밀번호, 이메일, 로그, 설정 파일)를 빠르게 찾을 수 있습니다!