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 같은 도구를 조합하면 훨씬 더 복잡한 작업도 가능.