리눅스 시스템에서 메모리에 적재되어 실행되고 있는 모든 프로그램이 프로세스
모든 프로세스는 고유한 번호(PID)를 가지고 있다.
PID 1번은 init 프로세스, 2번은 kthreadd 프로세스가 실행
init 프로세스는 나머니 모든 시스템 프로세스의 부모 프로세스
thread 프로세스는 모든 스레드의 부모 프로세스
코드 영역
데이터 영역
BSS 영역
힙 영역
스택 영역
커널 영역
ps [option]
PID / TTY / TIME / CMD 출력
-ef 옵션으르 사용하여 모든 프로세스 리스트 확인
UID / PID / PPID / C / STIME / TTY / TIME / CMD 출력
시스템에서 실행중인 모든 프로세스 출력
USER / PID / %CPU / %MEM / VSZ / RSS / TTY / STAT / START / TIME / COMMAND 출력
kill [option] [PID: 프로세스 아이디]
option
자주 사용하는 시그널
백그라운드로 실행되는 작업을 보여주는 명령어
job은 프로세스와 달리 터미널 명령을 통한 작업만을 의미
job을 통해 프로세스를 실행할 수 있지만 터미널이 종료되면 job과 함께 프로세스도 종료
각각의 터미널마다 job은 따로 존재
Foreground ↔ Background
job을 활용하여 프로세스를 더 효율적으로 관리 할 수 있다.
kill %작업번호
프로세스와 마찬가지로 kill 명령어를 통해 종료 가능
ps 명령어를 통해 PID를 알아내어 종료하는 방법도 가능
지정된 시간에 1회 실행되는 작업 예약 명령어
시간이 되면 수행되고 작업 리스트에서 사라진다.
at [옵션] [시간] [날짜] [+증가시간]
at now + 3 hours -f elice.sh
지금으로부터 3시간 후에 elice.sh 스크립트를 실행
지정된 시간에 1회 실행되는 at과는 달리
지정된 시간에 따라 주기적으로 실행
crontab [옵션]
10 1 1 * * /home/elice/test.sh
# 매월 1일 1시 10분에 /home/elice/test.sh 실행
0, 30 1 * * 0 /home/elice/backup.sh
# 일요일 1시, 1시 30분에 /home/elice/backup.sh 실행
콤마(,)를 통해 2가지 이상의 시간 표현 가능
Secure Shell의 줄임말로 네트워크를 통해 다른 컴퓨터에 접근하거나 그 컴퓨터에서 명령 실행 등을 할 수 있도록 해주는 프로토콜
즉, SSH를 통해 다른 컴퓨터에서 리눅스에 접속하여 명령어 및 프로그램을 실행할 수 있다.
Telnet 또한 네트워크를 통해 다른 컴퓨터에 접근하거나
그 컴퓨터에서 명령 실행 등을 할 수 있도록 해주는 프로토콜
하지만 보안적으로 매우 치명적인 결함 존재
Telnet을 통해 보내지는 패킷 데이터는 암호화 되어 있지 않다.
즉, 이를 통해 사용자의 비밀번호 등의 노출 되어서는 안되는 데이터가 노출 된다.
하지만 SSH의 데이터는 암호화 되어 있다.
우분투에서는 openssh 라는 패키지를 통해 SSH를 구동할 수 있다.
우분투를 설치하고 나면, openssh-client만이 기본적으로 설치 되어 있다.
다른 컴퓨터에서 우분투에 접속하려면 openssh-server 패키지를 설치해야 한다.
dpsk -l | grep openssh
위와 같은 명령어로 openssh 설치 여부 확인 가능
sudo apt-get install openssh-server
apt-get 명령어로 openssh-server 설치
sudo service ssh start
서비스 실행(start), 재실행(restart), 종료(stop)
service --status-a;; | grep +
서비스 확인
sudo netstat -antp
ssh [서버아이디]@[아이피 혹은 서버이름 혹은 도메인]
CMD 또는 터미널 창에서 다음의 명령어로 접속 가능
OpenSSH Client가 설치되어 있어야 한다