kosta 클라우드 네이티브 애플리케이션 개발 과정 day 42
프로세스 : 현재 시스템에서 실행중인 프로그램
- 프로세스는 부모 자식 관계
- 프로세스의 번호 : 고유한 번호를 갖고 있는데 PID라고 함
- 종류 : 데몬, 고아, 좀비
현재 실행중인 프로세스의 목록을 보는 명령 : ps
- 유닉스 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작한다 (-ef)
- BSD 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작하지 않는다 (aux)
- GNU 옵션 : 붙임표 두 개로 시작한다 (--pid)
현재 단말기의 프로세스 목록 출력하기 : ps
터미널에서 실행한 프로세스의 정보 출력하기 : a 옵션
u 옵션
ps -ax
s : 슬립을 의미
r : 현재 구동중인 시스템을 의미
계정이 실행중인 프로세스 확인
특정 pid로 찾기
전체를 찾고 grep에게 전달하여 찾기
톰캣을 찾는다고 하면
ps -ef | grep tomcat
시그널
목록
SIGKILL 이 제일 중요하다
주요 시그널
다른 터미널에서 실행중인 프로세스 죽이기
kill -9 프로세스id
pkill 명령이름
top 명령으로 현재 실행중인 프로세스를 작업관리자 창처럼 볼 수 있다
포그라운드 작업 : 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 포그라운드 방식으로 처리되는 프로세스
sleep 100 => sleep 명령이 끝날 때까지 기다려야 한다
백그라운드 작업 : 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속할 수 있음
sleep 100 => 프롬프트가 바로 나와 다른 명령을 실행할 수 있다
실행 시간이 오래 걸릴 거 같으면 백그라운드로 작업 방향 전환하기
find / -name passwd > pw.dat 2>&1 &
jobs 백그라운드 실행 현황을 보여줌
작업 전환하기
sleep 100
ctrl +z
bg %1
ctrl + z = 일시정지
ctrl + c = 종료
kill pid 또는 %작업번호
로그아웃 후에도 백그라운드 작업 계속 실행하기 : nohup
실행된 파일 확인까지
리눅스 파일 시스템
파일 시스템 : 파일과 디렉터리의 집합을 구조적으로 관리하는 체계
리눅스에서 지원하는 다른 파일 시스템
msdos
iso9660
nfs
ufs
vfat
hpfs
ntfs
sysv
hfs
ext4 파일 시스템의 구조
- 효율적으로 디스크를 사용하기 위해 저장장치를 논리적인 블록의 집합으로 구분
- 일반적으로 4kb이고 실제 크기는 시스템의 설정에 따라 변경 가능
- 블록 그룹 유형 : 블록 그룹 0, 블록 그룹 a, 블록 그룹 b
리눅스의 부팅과 종료
처음 바이오스 단계에서부터 시작한다
윈도우의 안전모드 같은 모드가 리눅스의 init
런레벨을 다르게 설정할 수 있다
특정 종류의 유닉 출력하기 : -t 옵션
유닛 서비스 시작하기 : stdart 명령
cron이라는 서비스를 스타트 시킴
sudo systemctl start cron
다시 중지시키기
sudo stop cron
상태 확인하기
systemctl status cron
런레벨은 현재 시스템의 상태를 나타내는 한 자리 숫자
리눅스 시스템의 종료
종료하는 방법
- shutdown 명령을 사용한다
- halt 명령을 사용한다
- powerOff 명령을 사용한다
- 런레벨을 0이나 6으로 전환한다 (재시작)
- reboot 명령을 사용한다 (재시작)
- 전원을 끈다
shutdown 명령 사용하기
즉시 종료하기
sudo shutdown -h now
재시작 하기
sudo shutdown -r
데몬 프로세스
데몬 :
- 리눅스의 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세스
- 리눅스 시스티ㅔㅁ에서 동작하는 각종 서비스를 제공하는 프로세스들이 바로 데몬
pstree 로
데몬 트리를 볼 수 있다
리눅스의 주요 데몬
소프트웨어 관리하기
리눅스에서 주로 사용하는 패키지
- deb : 데비안, 우분투 계열에서 사용하는 패키지
- RPM : 레드햇 계열 리눅스에서 주로 사용
우분투 패키지의 특징
- 바이너리 파일로 구성되어 컴파일이 필요 없다
- 패키지의 파일이 관련 디렉토리에 바로 설치된다
- 패키지를 삭제할 때 관련된 파일을 일괄적으로 삭제할 수 있다
- 기존에 설치한 패키지를 삭제하지 않고 바로 업그레이드할 수 있다
- 패키지의 설치 상태를 검증할 수 있다
- 패키지에 대한 정보를 제공한다
- 해당 패키지와 의존성을 가지고 있는 패키지가 무엇인지 알려준다. 따라서 의존성이 있는 패키지를 미리 설치할 수도 있고, apt-get 명령을 사용하면 의존성이 있는 패키지가 자동으로 설치된다.
네 개의 카테고리로 나누어 소프트웨어 제공
- main : 공식적, 자유
- restricted : 완전한 자유는 아님
- universe : 대부분 사용 가능, 기술적 지원은 x
- multivers : 자유 소프트웨어가 아닌 것이 포함, 개인이 직접 라이선스 확인
apt 명령으로 패키지 관리하기
apt-cache : apt 캐시에서 정보를 검색하여 출력
패키지 통계 정보 보기
사용 가능한 패키지 이름 보기 : pkgnames
패키지 정보 업데이트하기
업그레이드도 하기
sudo-apt-get upgrade
설치해보기
파일 아카이브
tar (tape archive) 명령은 원래 여러 파일이나 디렉터리를 묶어서 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령
아카이브 생성하기 : cvf
tar cvf ch2.tar ch2
gzip으로 압축하기
gunzip으로 압축 파일 풀기
사용자 관리
- 리눅스는 다중 사용자 시스템이므로 사용자를 구별하고 사용자에게 적절한 자원을 할당해주는 방법이 필요
- 사용자 계정은 사용자가 시스템에 접근할 수 있는 유일한 방법
- 시스템 관리자의 입장에서도 사용자의 접근 권한을 통제할 수 있는 중요한 수단
/etc/passwd 파일
=> 사용자 계정 정보가 저장된 기본 파일
- gid : 그룹 id, 시스템에 등록된 그룹에 대한 정보는 /etc/group 파일에 저장
- 설명 : 사용자의 실명이나 부서명, 연락처 등 사용자에 대한 일반적인 정보 기록
- 홈 디렉터리 : 사용자 계정에 할당된 홈 디렉터리의 절대 경로 기록
- 로그인 셸 : 사용자의 로그인 셸을 지정, 우분투에서는 배시 셸을 기본 셸로 사용
etc/shadow 파일의 구조
/etc/login.defs 파일
압호화되어 있는 gshadow 파일 열기
useradd
사용자 계정 생성하기
옵션 지정하여 사용자 계정 생성하기
shadow 명령어로 비밀번호 보기 없으니까 아직 뜨지 않음
adduser로 사용자계정 만들기
만들어진 것을 확인하려면
tail -10 /etc/passwd
사용자 로그인 정보 확인하기 : who
- 현재 시스템을 사용하는 사용자의 정보를 출력
chown : 파일과 디렉터리의 소유자와 소유 그룹을 변경한다
원격 접속과 네트워크 접속
sudo apt install network-manager : 네트워크 관리자 설치하기
ifconfig로 네트워크 상태 파악하기
'교육 > Java&Spring' 카테고리의 다른 글
kosta 클라우드 네이티브 애플리케이션 개발 과정 day 41 (1) | 2023.02.21 |
---|---|
kosta 클라우드 네이티브 애플리케이션 개발 과정 day 40 (0) | 2023.02.20 |
kosta 클라우드 네이티브 애플리케이션 개발 과정 day 34 (0) | 2023.02.11 |
kosta 클라우드 네이티브 애플리케이션 개발 과정 day 33 (0) | 2023.02.08 |
kosta 클라우드 네이티브 애플리케이션 개발 과정 day 32 (0) | 2023.02.07 |