1. grep : 원하는 특정 텍스트를 검색할 때 주로 사용.
주요 사용 사례
- 에러 로그 찾기 : 서비스 장애가 발생했을 때, 가장 먼저 로그 파일에서 ERROR나 Exception과 같은 키워드를 검색.
- - i 대소문자를 무시 (ignore case)
- - C [숫자] : 찾은 줄의 주변 (Context) 라인을 함께 출력
- 특정 API 요청 기록 확인 : 사용자의 요청이 서버에 제대로 들어왔는지 확인할 때, 특정 API 경로 (URI)나 사용자 ID를 검색
2. find : 특정 조건 (이름, 크기, 수정, 시간 등)에 맞는 파일이나 디렉토리를 지정한 위치부터 하위 디렉토리까지 모두 검색 가능.
주요 사용 사례
- 특정 설정 파일 찾기 : 서버의 수많은 디렉토리 중에서 httpd.conf나 application.yml 같은 설정 파일이 어디 있는지 모를 때 유용.
- 오래되거나 용량이 큰 파일 정리 : 서버의 디스크 용량이 부족할 때, 불필요한 파일을 찾아 삭제하는 데 사용.
- - mtime + 30 : 수정된 지 30일이 지난 파일
- - size + 100M : 크기가 100메가바이트 이상인 파일
- - exec [명령어] {} \; : 찾은 파일 각각에 대해 지정된 명령어를 실행
3. tail & head : 파일의 마지막 부분과 첫 부분을 확인하는 명령어, 특히 tail은 실시간으로 쌓이는 로그를 확인할 때 필수적.
주요 사용 사례
- 실시간 로그 모니터링 : 현재 서비스가 어떻게 동작하고 있는지, 에러가 발생하는지 실시간으로 확인. 개발자들이 가장 많이 사용하는 명령어 중 하나.
- - f : 파일을 계속 따라가며 (follow) 변경 사항을 출력
- 대용량 파일 내용 빠르게 확인 : cat으로 열면 터미널이 멈출 수 있는 수기가바이트(GB)짜리 파일의 내용을 안전하게 확인할 수 있음.
- - n [숫자] : 지정된 숫자만큼의 줄을 출력
4. 시스템 상태 확인 명령어 : df, ps, top, netstat : 서버가 정상적으로 동작하는지 확인하는 명령어
주요 사용 사례
- df (Disk Free) : 디스크의 남은 용량을 확인. 배포나 대용량 파일 작업 전에 반드시 확인.
- ps (Process Status) : 현재 실행 중인 프로세스 목록을 확인. 특정 프로그램이 실행 중인지, 혹은 좀비 프로세스가 있는지 확인할 수 있음.
- top (종료는 'q') : 시스템의 CPU, 메모리 사용량을 실시간으로 보여주는 작업 관리자. 서버가 느려졌을 때 가장 먼저 확인하는 명령어
- %CPU : CPU 사용률, %MEM : 메모리 사용률, 이 값들이 비정상적으로 높은 프로세스를 찾음.
netstat : 네트워크 연결 상태와 열려있는 포트를 확인 서비스가 특정 포트 (예 : 8080)를 잘 사용하고 있는지, 혹은 외부에서 접속이 가능한지 확인할 때 사용.