
프로그램 감시하기
<프로세스 엿보기>
리눅스는 ps 명령을 통해 실행되고 있는 모든 프로세스에 대한 정보를 보여준다.
다만 기본 ps 명령은 그 중 아주 일부만 보여주는데, 더 많은 정보를 보고 싶다면 옵션을 붙여줘야 한다.
리눅스에서 사용되는 GNU의 ps 명령은 세 가지 유형의 커맨드라인 매개변수를 지원한다.
1. 대시가 앞에 붙는 유닉스 스타일
2. 대시가 앞에 붙지 않는 BSD 스타일
3. 이중 대시가 붙는 GNU

위는 ps -ef를 입력했을때 출력된 결과물이다.
(UID - 프로세스 실행에 책임이 있는 사용자, PID - 프로세스의 id, PPID - 부모 프로세스의 pid,
C - 프로세스 수명 동안 프로세서 사용률, STIME - 프로세스 시작 시스템 시각,
TTY - 프로세스 시작한 터미널 장치, TIME - 프로세스 실행 누적 CPU 시간, CMD - 프로그램 이름)

위는 ps l의 출력결과이다. VSZ는 가상메모리에 있는 프로세스의 크기(KB), RSS는 스왑되지
않은 프로세스가 사용하는 물리적 메모리, STAT은 현재 프로세스의 상태를 나타낸다.
<실시간 프로세스 모니터링>
ps는 특정 시점에 대한 정보만을 표기하므로 실시간으로 프로세스가 어떻게 실행되는지
알기 위해서는 top 명령을 사용한다.

PR - 프로세스 우선순위, VIRT - 프로세스가 사용하는 가상메모리의 총량, RES - 프로세스가 사용하는
물리적 메모리의 양, SHR - 다른 프로세스와 공유하는 메모리의 양을 뜻한다. top 명령을 이용해
메모리를 많이 차지하는 문제있는 프로세스를 찾을 수 있다.
<프로세스를 중단시키기>
kill 3940 kill -s HUP 3940
# http로 시작하는 모든 프로세스 끝
killall http*
디스크 공간 모니터링
<미디어 마운트>
CD-ROM이나 USB 처럼 이동식 미디어를 마운트하고 언마운트하기 위해 필요한 명령들이 존재한다.
# 현재 시스템에 마운트 된 미디어 장치의 목록을 표시
mount
# 이동식 미디어 장치를 제거
unmount [directory | device]
<df, du 명령 사용하기>
df 명령을 사용해서 장치의 위치 및 저장가능한 데이터의 양과 사용중인 데이터의 양을 볼 수 있다.
du 명령은 특정 디렉토리의 디스크 사용량을 보여준다.
데이터 파일 작업하기
<데이터 정렬>
# line-by-line ASCII 정렬
sort file1
# 숫자 정렬
sort -n file2
# 타임스탬프 정렬
sort -n file3
# 월별로 정렬
sort -M file3
# ':' 구분자로 3번째 인수에 대해 정렬
sort -t ':' -k 3 -n /etc/passwd
# 용량 많이 차지하는 순서대로 정렬
du -sh * | sort -nr
<데이터 검색>
grep 명령을 사용하여 특정 패턴이 포함된 특정한 줄을 검색할 수 있다.
grep [option] pattern [file]
# 역검색
grep -v t file1
# 줄 번호까지
grep -n t file1
# 패턴과 일치하는 내용을 포함한 줄이 몇 개나 되는지?
grep -c t file1
# 일치하는 내용을 찾으려는 패턴이 둘 이상
grep -e t -e f file1
# 위와 동일하지만 정규표현식 사용
grep [tf] file1
<데이터 압축>
리눅스에는 여러 파일 압축 유틸리티가 존재하지만 가장 많이 쓰이는 유틸리티는 gzip이다.
파일 압축을 위한 gzip, 압축된 텍스트 파일의 내용을 출력하는 gzcat, 압축 파일을 푸는 gunzip이 있다.
<데이터 아카이브>
유닉스/리눅스 시스템에서 가장 인기 있는 아카이브 도구는 tar 명령이다.
tar 기능 [옵션] 대상1 대상2 ...
# test1, test2 디렉토리를 test.tar로 압축
tar -cvf test.tar test1/ test2/
# 출력
tar -tf test.tar
# 내용 추출
tar -xvf test.tar
'LINUX > 리눅스 쉘 스크립트 바이블 정리' 카테고리의 다른 글
| [리눅스 바이블] 7. 리눅스 파일 사용 권한 이해하기 (0) | 2022.02.09 |
|---|---|
| [리눅스 바이블] 6. 리눅스 환경 변수 사용하기 (0) | 2022.02.06 |
| [리눅스 바이블] 5. 쉘 이해하기 (0) | 2022.02.04 |
| [리눅스 바이블] 3. 기본 bash 쉘 명령 (0) | 2022.02.03 |
| [리눅스 바이블] 1. 리눅스 쉘 시작하기 (0) | 2022.02.03 |