[리눅스 기본기] redirect, pipe, grep – 셋만 알아도 터미널이 쉬워진다

2025. 5. 23. 17:28·linux
728x90
반응형

리눅스 터미널을 처음 접했을 때 가장 어렵게 느껴졌던 게 >와 | 기호였다. 학부에서 공부하고 졸업한지 까마득한 세월이 지나고...
이번 글에서는 부트캠프를 진행하면서 학습한 redirect(> <), pipe(|), grep의 기본 개념과 실전 예제를 함께 정리해본다.
처음엔 단순한 출력 저장, 문자열 검색 정도로 쓰지만, 조금만 익숙해지면 실전 로그 분석, 파일 추출, 조건별 필터링까지 거의 다 할 수 있다.
가볍게 보면서도 바로 따라 해보면 확실히 체감된다.


1. 리다이렉션 (redirect) – 출력 방향 바꾸기

# 표준 출력 → 파일 저장
ls > list.txt

# 표준 에러 → 파일 저장
ls nonexistentfile 2> error.log

# 출력과 에러 모두 저장
ls validfile nonexistentfile > out.log 2>&1

# 파일에 이어쓰기 (append)
echo "추가 내용" >> list.txt
  • >: 기존 파일을 덮어씀
  • >>: 기존 파일에 내용 추가
  • 2>: 표준 에러(에러 메시지)를 저장
  • 2>&1: 표준 에러를 표준 출력으로 합침

2. 파이프 (pipe) – 출력을 다음 명령어로 넘기기

ps aux | grep nginx
  • |는 앞 명령의 출력을 뒤 명령의 입력으로 넘겨준다
  • 임시 파일 없이 명령어를 연결하는 방식이라 가볍고 빠르다
cat access.log | grep 404 | wc -l
  • 로그에서 404가 몇 번 나왔는지 카운트
  • cat → grep → wc 순으로 연결

꼭 기억할 점: 파이프는 임시 파일 없이 명령어를 연결하는 강력한 방식이다.

3. grep & 친구들 (grep, egrep, fgrep)

grep "login" /var/log/auth.log

명령어 설명
grep 기본 grep, BRE(기본 정규표현식) 지원
egrep grep -E와 동일 (ERE: 확장 정규표현식)
fgrep grep -F와 동일 (정규표현식 무시)

자주 사용하는 옵션들

grep -i "error" log.txt       # 대소문자 무시
grep -v "DEBUG" log.txt       # 포함되지 않은 줄
grep -r "TODO" src/           # 디렉토리 재귀 검색
grep -n "main" app.c          # 줄 번호 포함
grep -A 3 "fail" log.txt      # 매칭된 줄과 아래 3줄
grep -B 2 "disconnect" log.txt # 위 2줄 포함
grep --color "error" syslog   # 매칭 문자열 색상 표시

간단한 정규표현식 예제

grep "^ERROR" log.txt     # ERROR로 시작하는 줄
grep "404$" access.log    # 404로 끝나는 줄
grep "[0-9]\{3\}" file    # 숫자 3자리
grep -E "user[0-9]+" user.log  # user 뒤에 숫자 하나 이상
grep -E "(fail|error|warn)" log # OR 조건
패턴 의미
^word 줄의 시작
word$ 줄의 끝
. 아무 문자 하나
* 0개 이상 반복
+ 1개 이상 반복 (-E 필요)

실전 조합 예시

dmesg | grep -i error > kernel_errors.txt
  • 시스템 커널 로그에서 에러만 추출해서 파일로 저장
find /var/log -name "*.log" | xargs grep "connection refused"
  • 모든 로그 파일에서 "connection refused" 검색
curl -s https://example.com | grep "<title>"
  • 웹사이트 HTML에서 <title> 태그만 추출

마무리 회고

특히 grep은 단독으로도 강력하지만 cat, find, xargs 등과 조합했을 때 훨씬 더 유용해진다.
로그 분석, 시스템 모니터링, 대량 파일 처리 등에서 이 세 가지 도구는 정말 자주 쓰이니, 손에 익혀두면 실무에서도 큰 도움이 된다.

728x90
반응형

'linux' 카테고리의 다른 글

[리눅스 권한 명령어 정리] chmod, chown, umask  (0) 2025.05.27
[리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd  (0) 2025.05.26
[리눅스 기본기] vi 에디터 단축키 정리 - 이동, 복사, 삭제, 검색, 대치  (0) 2025.05.22
[리눅스 명령어] find 명령어 완전 정복  (0) 2025.05.22
[리눅스 명령어] cat, head, tail  (0) 2025.05.22
'linux' 카테고리의 다른 글
  • [리눅스 권한 명령어 정리] chmod, chown, umask
  • [리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd
  • [리눅스 기본기] vi 에디터 단축키 정리 - 이동, 복사, 삭제, 검색, 대치
  • [리눅스 명령어] find 명령어 완전 정복
highgarden
highgarden
커밋 하나하나가 쌓여 커다란 정원이 되는 중입니다. 하루하루 정성껏 심어가는 중 https://github.com/highgarden7
  • highgarden
    커밋심는 정원
    highgarden
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • ai (1)
      • devops (2)
      • Nest.js (14)
      • linux (14)
      • 네트워크 (6)
      • git (0)
      • aws (0)
      • docker (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    nestjs
    IP
    네트워크
    Chat GPT
    Java
    springboot
    githib action
    Linux
    vercel
    E2E
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
highgarden
[리눅스 기본기] redirect, pipe, grep – 셋만 알아도 터미널이 쉬워진다
상단으로

티스토리툴바