포그라운드 / 백그라운드 프로세스
-
포그라운드 프로세스 : 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 작업
-> 명령의 결과가 출력되는 동안 다른 작업 못함
ex) sleep 100 하면 다른 작업 못하고 기다림
-
백그라운드 프로세스 : 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속 할 수 있음
-> 명령의 결과와 상관없이 여러 작업을 수행 함
ex ) sleep 100 & 해도 다른 작업 가능
작업제어
- 작업전환 : 포그라운드 -> 백그라운드, 백그라운드 -> 포그라운드
- 작업 일시 중지 : 작업을 잠시 중단
- 작업 종료 : 작업을 종료
jobs
- 백그라운드 작업을 모두 보여준다. 특정 번호를 지정하면 해당 작업의 정보만 보여줌( jobs %작업번호 )

- ctrl + c : 포그라운드 작업은 이를 입력하면 대부분 종료
- kill -9 %작업번호나 kill -9 PID를 이용해서 백그라운드 작업 강제종료
nohup
- 로그아웃해도 백그라운드에서 작업을 계속 실행( nohub 명령& )
- ex) nohub find / -name passwd > pw.dat 2>&1 &
작업예약
- 정해진 시간에 한 번만 수행(at)
- 정해진 시간에 반복 수행(crontab)
at
- 예약한 명령을 정해진 시간에 실행한다 ( at [옵션][시간] )
- at -l , atq : 예약한 작업 목록를 보는 명령
- at -d 작업번호, atrm : 설정한 작업이 실행되기 전에 삭제하는 명령
- at로 생성한 작업은 /var/spool/at 디렉터리에 저장됨
💡 at 명령 사용 제한
- /etc/at.allow 파일이 있으면 이 파일에 있는 사용자만 at 명령 사용가능, 없다면 /etc/at.deny 파일에 지정된 사용자를 제외한 모든 사용자가 at 명령사용가능
- 두 파일 모두 없다면 root 만 at 명령 사용 가능
- 한 사용자가 두 파일에 모두 속해 있다면 그 사용자는 at 명령 사용 불가능
crontab
- 사용자의 crontab 파일을 관리하는 명령이다. ( crontab [-u 사용자 ID][옵션] [파일명] )

- root사용자라면 다른 사용자에게 -u옵션으로 cron작업을 예약할 수 있다.
- crontab -e로 편집한 파일을 저장하면 자동적으로 /var/spool/cron 디렉터리에 사용자 이름으로 생성됨
- crontab -l : crontab 파일 내용 확인
- crontab -r : crontab 파일 내용 삭제
- 시스템 차원에서 crontab 예약 법 : vi /etc/crontab 접속후 파일 수정(사용자 반드시 명시)
ex) 매년 1월 첫번째 일요일에 재부팅 설정
-> 0 0 1-7 1 0 reboot : 시간은 24시간을 기준으로 작성
10분마다 = */10
💡 crontab 명령 사용 제한
- /etc/cron.allow 파일이 있으면 이 파일에 있는 사용자만 crontab 명령 사용가능, 없다면 /etc/cron.deny 파일에 지정된 사용자를 제외한 모든 사용자가 at 명령사용가능
- 두 파일 모두 없다면 시스템 관리자만 crontab 명령 사용 가능
아카이브와 압축
아카이브 : 여러개 파일을 하나의 파일로 묶는 것을 의미
압축 : 용량을 줄이는 것
-> window는 아카이브와 압축을 한번에 실행하지만 linux는 따로 실행하기 때문에 완전히 다른 개념이다.
tar - .tar 파일
- 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성하는 명령이다. ( tar 기능[옵션][아카이브 파일] [파일명] )

- 다른 시스템과 파일을 주고받거나, 백업을 하기 위해 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성하거나, 기존 아카이브에서 파일을 추출하기 위해 사용
- 아카이브 생성 : tar cvf a.tar(tar 파일) 1 2 3 4 5 (파일들)
- 아카이브 파일 보기 : tar tvf a.tar
- 아카이브 파일 풀기 : tar xvf a.tar
- 아카이브에 파일 추가하기 : tar uvf a.tar 6 (파일)
gzip - .gz 파일
- 파일을 압축하는 명령이다. ( gzip [옵션][파일명] )


- 파일을 압축한다 = 파일의 용량을 줄인다
- 압축된 파일 내용보기 : **gzip -l [파일명]
- 압축풀기 : gunzip [파일명]
- 압축 풀고 파일 읽기 : zcat [파일명]
🔥 linux에서 .zip도 지원 -> 아카이브, 압축 동시을 동시에 작업해줌 (zip, unzip)