생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
•
1. 프로세스
•
컴퓨터의 하드웨어
◦
Storage: HDD, SSD 등의 저장장치
▪
가격↓ 용량↑ 속도↓
◦
Memory: RAM
▪
가격↑ 용량↓ 속도↑
◦
Processor: CPU
•
컴퓨터의 아키텍처
◦
Storage에 설치되어 있는 프로그램을 읽어서 memory에 적재해두고 이걸 CPU가 읽어서 동작하고 데이터를 처리함
•
Program vs. Process
◦
Program: 파일로 storage에 저장되어 있는 명령어
◦
Process: 실행되어 메모리에 적재되어서 CPU에 의해 처리되는 상태에 있는 프로그램
2. 프로세스 모니터링
•
ps: process list
◦
$ ps aux: 백그라운드에서 돌아가는 모든 프로그램 리스트
◦
$ ps aux | grep apache: apache가 들어간 프로세스만 출력
◦
PID: 프로세스 ID
▪
sudo kill [PID] 해당 프로세스를 kill
•
top & htop
◦
htop: top과 비슷하지만 더 많은 기능 제공
▪
설치
•
Linux: $ sudo apt-get install htop
•
Mac: $ brew install htop
◦
컬럼명을 클릭하면 해당 컬럼 기준으로 정렬 가능
◦
Load average: CPU 부하 정도 파악 가능
◦
htop 실행화면
3. 백그라운드 실행
•
ctrl + z: 프로그램을 끄지 않고 background로 실행됨
•
fg: 해당 프로그램이 foreground로 돌아감
•
jobs: background에 실행중인 프로그램을 보여줌
•
kill %[프로그램 번호]: 정상 종료
◦
kill -9 %[프로그램 번호]: 강제 kill
•
명령어 끝에 &를 붙이면 즉각 background로 실행
4. 항상 실행 (daemon, service)
•
데몬의 개념
◦
마치 가전 중 항상 켜져있는 냉장고나 인터넷 공유기처럼 항상 실행되는 프로그램
◦
server 프로그램의 경우가 해당함
•
service와 자동실행
◦
/etc/init.d: 데몬 프로그램이 위치하는 디렉토리
◦
이 경로에 위치한 데몬 프로그램을 실행하기/끄기
▪
$ sudo service [프로그램명] start
▪
$ sudo service [프로그램명] stop
▪
$ ps aux | grep [프로그램명]: 현재 실행 중인 프로세스 중 [프로그램명]
◦
자동실행: 아래 경로에 S**으로 시작되는 링크 생성 → 자동실행
(S는 서비스시작, K는 서비스중단, 번호는 우선순위)
▪
/etc/rc3.d/ (CLI 운영체제)
▪
/etc/rc5.d/ (GUI 운영체제)
5. 정기적으로 실행 (cron)
•
cron: 정기적으로 명령을 실행시켜주는 도구
•
$ crontab -l: cron 작업 리스트
•
$ crontab -e: 실행하고자하는 cron 작업 정의
◦
입력 format: * * * * * command >> log 경로
6. 쉘을 시작할 때 실행 (startup script)
•
쉘이 시작할 때 명령을 실행하도록 해서 쉘을 커스터마이징할 수 있음
•
유용한 예시: alias l='ls -al' (alias를 사용해서 자주 사용하는 명령을 간편하게 실행)
•
방:
◦
bash의 경우라면 home 디렉토리(cd ~)의 .bashrc script에 코드 추가
참고자료