Linux

grep, awk, ps, crontab ..

99duuk 2024. 12. 3. 16:12

1. grep: 텍스트 검색 명령어

 

파일이나 출력 결과에서 특정 텍스트 찾는 명령어임.

자주 쓰는 옵션:

  • -i: 대소문자 구분 없이 검색.
  • \|: OR 연산자. 여러 조건 검색 가능.
  • -r: 디렉토리 전체 검색.
  • -n: 검색 결과에 줄 번호 출력.
  • --color=always: 검색어 하이라이트 표시.
  • -v: 조건에 맞지 않는 줄만 출력.

 

특정 단어 검색:

grep "error" file.txt

 

여러 단어 검색:

 

grep "error" file.txt

 

디렉토리 전체에서 검색:

 

grep "error" file.txt

2. alias: 명령어 단축

  • 자주 쓰는 명령어 별칭 만들어 간편하게 실행 가능.

별칭 생성

alias 별칭='명령어'

 

대소문자 무시하고 하이라이트하는 grep 단축:

alias grep-highlight='grep --color=always -i'

 

*영구적으로 쓰려면 ~/.bashrc 또는 ~/.zshrc에 추가 후 source ~/.bashrc로 적용

 


3. ps와 파이프( | )

 

  • ps: 현재 실행 중인 프로세스 목록 보여줌.
  • |: 한 명령어 결과를 다음 명령어로 넘김.

모든 프로세스 보기:

ps -ef

 

 

특정 프로세스 찾기 

ps -ef | grep tomcat

 

특정 프로세스 종료:

kill -9 $(ps -ef | grep tomcat | grep -v grep | awk '{print $2}')

 


4. awk: 텍스트 조작 도구

 

  • 텍스트 처리, 특정 데이터 뽑아내기, 계산 가능.
  • 데이터 구조화돼 있으면 유용함(공백, 쉼표 등으로 구분된 데이터).

특정 필드 출력:

echo "user1 100 user2 200" | awk '{print $1, $3}'

 

  • 출력: user1 user2

조건부 데이터 출력

awk '$3 > 100 {print $1, $3}' data.txt

 

필드 계산:

echo "5 10" | awk '{print $1 + $2}'
  • 출력: 15

 


5. crontab: 배치 작업 스케줄러

 

  • 텍스트 처리, 특정 데이터 뽑아내기, 계산 가능.
  • 데이터 구조화돼 있으면 유용함(공백, 쉼표 등으로 구분된 데이터).

 

특정 시간마다 작업 자동 실행 예약.

주요 명령어:

  • crontab -e: 작업 편집.
  • crontab -l: 작업 목록 보기.
  • crontab -r: 작업 모두 삭제.

파일 형식

* * * * * /path/to/command

 

 

 

  • 첫 번째: 분(0-59).
  • 두 번째: 시(0-23).
  • 세 번째: 일(1-31).
  • 네 번째: 월(1-12).
  • 다섯 번째: 요일(0-7, 0과 7은 일요일).

 

매일 자정에 백업 실행:

0 0 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

 

매주 월요일 오전 3시 데이터 정리:

0 3 * * 1 /usr/local/bin/cleanup.sh

 

매 5분마다 서버 상태 확인:

*/5 * * * * /usr/local/bin/check_server.sh

 


grep, awk, ps, crontab은 데이터를 필터링하고 자동화하는 도구 

|, awk, sed 같은 도구를 조합하면 훨씬 더 복잡한 작업도 가능.