--- title: grep — 리눅스 기본 명령어 date: 2026-10-19 time: 12:00 model: admin category: programs author_type: human summary: 파일이나 입력에서 특정 패턴을 검색하는 강력한 텍스트 검색 명령어. tags: 프로그램, 리눅스 기본 명령어, grep --- 파일이나 입력에서 특정 패턴을 검색하는 강력한 텍스트 검색 명령어. ## 기본 정보 | 명령어 이름 | grep (global regular expression print) | | --- | --- | | 한 줄 소개 | 파일이나 입력에서 특정 패턴을 검색하는 강력한 텍스트 검색 명령어. | | 제공 | GNU grep (모든 Linux 배포판 기본 탑재) | | 공식 문서 | https://man7.org/linux/man-pages/man1/grep.1.html | | 지원 운영체제 | Linux, macOS, BSD, WSL | | 설치 여부 | 기본 탑재 (별도 설치 불필요) | | 분류 | 리눅스 기본 명령어 (태그: 검색, 텍스트, 정규식, 리눅스, 기본) | ## 이 명령어는 무엇인가? grep은 파일이나 입력에서 특정 문자열이나 정규식 패턴에 해당하는 줄을 검색해 출력하는 명령어입니다. 리눅스에서 가장 자주 사용되는 도구 중 하나이며, 로그 분석·설정 확인·코드 탐색에 폭넓게 활용됩니다. 정규 표현식을 지원해 간단한 문자열 검색부터 복잡한 패턴 매칭까지 처리할 수 있고, -i(대소문자 무시), -v(반전), -r(재귀) 등 유용한 옵션이 풍부합니다. ## 어떤 문제를 해결하는가? - 파일에서 특정 키워드를 검색합니다. - 로그에서 에러 메시지를 찾습니다. - 설정 파일에서 특정 옵션을 확인합니다. - 여러 파일에서 같은 패턴을 일괄 검색합니다. ## 주요 기능 ### 기본 문자열 검색 파일에서 특정 문자열이 포함된 줄을 출력합니다. - **활용 상황**: 간단한 키워드 검색이 필요할 때. - **얻는 결과**: 해당 문자열이 포함된 모든 줄이 표시됩니다. - **제한 사항**: 대소문자를 구분할 수 있습니다 (옵션으로 변경 가능). ### 정규식 검색 정규 표현식으로 복잡한 패턴을 검색합니다. - **활용 상황**: 복잡한 조건으로 텍스트를 검색할 때. - **얻는 결과**: 정규식에 맞는 줄이 표시됩니다. - **제한 사항**: 정규식 문법이 복잡할 수 있습니다. ### 대소문자 무시 (-i) 대소문자를 구분하지 않고 검색합니다. - **활용 상황**: 대소문자가 혼재된 텍스트를 검색할 때. - **얻는 결과**: 모든 대소문자 조합이 매칭됩니다. - **제한 사항**: 일부 로케일에서 예상과 다른 동작을 할 수 있습니다. ### 재귀 검색 (-r) 디렉토리 아래 모든 파일을 재귀적으로 검색합니다. - **활용 상황**: 프로젝트 전체에서 키워드를 찾을 때. - **얻는 결과**: 하위 디렉토리의 모든 파일이 검색됩니다. - **제한 사항**: 대용량 디렉토리는 느려질 수 있습니다. ## 설치 및 실행 ### 기본 탑재 확인 모든 Linux 배포판에 기본 포함되어 있습니다. ``` which grep grep --version ``` ### 설치 (경량 환경) 일반적으로 이미 설치되어 있습니다. ``` sudo apt install grep # Debian/Ubuntu sudo dnf install grep # Fedora ``` ## 실제 사용 예제 ### 기본 문자열 검색 파일에서 문자열을 검색합니다. ``` # 파일에서 검색 grep "error" /var/log/syslog # 대소문자 무시 grep -i "ERROR" /var/log/syslog # 줄 번호 표시 grep -n "error" /var/log/syslog # 반전 (error가 없는 줄) grep -v "error" /var/log/syslog ``` ### 여러 파일 및 재귀 검색 여러 파일에서 일괄 검색합니다. ``` # 여러 파일 검색 grep "TODO" *.py # 디렉토리 재귀 검색 grep -r "import" ./src/ # 파일 유형 지정 grep --include="*.py" -r "def main" . # 결과 없는 파일 이름도 표시 grep -rl "config" /etc/ ``` ### 정규식 및 파이프 검색 정규식으로 정밀 검색합니다. ``` # 정규식 검색 grep -E "^#" /etc/nginx/nginx.conf # IP 주소 패턴 grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" access.log # 파이프와 함께 cat access.log | grep " 404 " | wc -l # ps에서 프로세스 검색 ps aux | grep nginx ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/basics/grep.html