
압축파일 -> Archive + Compress
아카이브 -> 여러개의 파일이나 디렉토리를 모아서 파일 하나로 만드는 것
tar -> 아카이브를 위한 명령어. 복수의 파일이나 아카이브 파일 하나로 모으거나 복원하기 위해 사용.
아카이브 명령어 -> tar cf <아카이브 파일 이름> <아카이브로 묶을 파일 경로>
아카이브 파일 내용 확인 명령어 -> tar tf <아카이브 파일>

아카이브 파일 내에 디렉토리 파일도 포함되어 있음을 알 수 있다.
아카이브 해제 명령어 -> tar xf <아카이브 파일>

tar 명령어 옵션:
v 옵션 -> 대상 파일의 목록 출력. ex) tar cvf <아카이브 파일 이름> <아카이브할 디렉토리 이름>

파일 속성 유지 -> cp와 달리 파일의 원한 소유자, 타임스탬프와 같은 파일의 속성을 유지한 상태로 아카이브. cp로 복사하는 것보다 백업에 적합.
gzip 명령어 -> 파일의 압축 및 해제를 위한 명령어.
gzip <압축할 파일>
tar 와 gzip 조합 -> gzip은 아카이브 기능이 없고 파일 하나만 압축함. -> tar로 여러개 파일을 묶어서 아카이브한 뒤에 gzip사용.
bzip2 명령어 -> gzip과 마찬가지로 파일 압축/해제. gzip보다 압축률 높음.
20장. SW 패키지
패키지 형식:
rpm 명령어 -> RedHat Package Manager, 패키지 관리 도구. 현업에서는 자주 쓰이지 않음.
rpm대신 rpm관리 도구를 많이 사용. -> ex) yum
dnf -> yum -> rpm 순으로 관리함.
dnf = yum의 최신 버전으로 볼 수 있음.
yum 명령어 -> yum [옵션] [명령어] [패키지 이름 ...]
install 명령어 -> 패키지 설치 yum install <패키지 이름>
ex) docker 설치
yum clean all # 레지스토리 캐시 삭제
yum install docker-ce # docker 설치
yum list docker-ce # 설치된 항목 확인
yum info docker-ce # 설치된 항목 상세확인
yum remove docker-ce # docker 삭제

virtual box -> 네트워크 -> ubuntu -> 환경설정
cidr
centOS -> ip addr

mncli -> 네트워크 자원 관리 도구


adapter1 -> enp0s3
adapter2 -> enp0s8
adapter3 -> enp0s9
nmtui


내부통신하는 '유선연결1'의 이름을 enp0s8로 변경

인터페이스 추가하기(172.16.0.1 / 255.255.255.0)
Interface3 생성
인터페이스와 Interface3 연결
vm -> 호스트 네트워크 관리자 -> 네트워크 어댑터 추가 -> 해당 어댑터의 IP 변경 -> centOS 네트워크 설정 -> 어댑터 사용하기 클릭 ->
SDN(Software Defined Network)
network layer -> control plane + data plane 로 구분 되어 있음.
현재 네트워크 구성 -> NAT, Host-ONly, Interface
systemctl restart network ->
systemctl restart NetworkManager ->
전체 흐름: host 서버(linux 환경)에 서비스를 올림(yum install or docker run) -> 네트워크 설정 ->
컨테이너 -> 서비스 관리 시스템(배포에 대한 자동화)
httpd 서비스 실행 프로세스 종류; 1.과 2.는 사실상 동일
1.)
yum install httpd
systemctl start httpd
systemctl enable httpd
2.)
systemctl start docker
docker run -d -p 1234:80 httpd
버전 관리 -> Version Control System -> VCS
git -> 버전 관리 시스템(수동으로 백업하지않아도 파일의 변경이력 관리 가능). 초기 진입 장벽이 높음. -> 분산형 버전 관리 시스템
원리 -> 버그 발생 등 코드를 고치거나 하는 일이 생길때, 분기를 생성해서 특정 분기로 이동하면서 버전을 관리하는 시스템
IaC -> 관리하고자 하는 내용을 미리 작성
repository: 깃이 관리하는 파일의 이력을 보존하는 공간
git 설치 -> yum install git


-> git 설치 후 버전 확인
사용자 이름, 이메일 입력
git config --global user.name "이름"
git config --global user.email "이메일 주소"

commit -> 객체. 파일의 변경 사항 추적 가능.
commit 프로세스:
파일 생성 -> stage(index) -> commit 객체 ->
파일 변경 -> stage -> commit 생성 (반복), stage + commit 생성 동시에 가능
working directory -> got diretory
text 기반 -> binary 기반. commit 하면 binary로 저장 되기 때문에 working directory에서 확인 불가
git init PATH: PATH 디렉토리에 git directory 생성
git clone URL: URL repository를 가져와서 구성


git은 파일이 생성되었다고 바로 처리하지 않음 -> stage, commit 순서대로 실행 필요
git status: 현재 repository의 상태 출력
git add <파일 이름>: 파일을 stage로 추가

git commit: stage 상태의 파일을 commit으로 생성

-> commit 명령어 입력 후 화면

-> commit 완료 후 화면
git log: 커밋 로그 확인(commit history 확인)

echo > 사용.

-> 파일 내용이 바뀌면, status에서 변경 됐음을 알 수 있음.
git commit -a -m 'second commit: commit 완료 화면(vi 화면)을 생략 가능

-> 새로운 파일을 생성하고 add .을 통해 모든 파일 commit.

master: main branch
branch:
git branch: branch 확인
git checkout branch: branch 변경

git checkout -b: 새로운 branch 생성 후 변경
분기된 branch에서 파일이 추가되거나 내용이 변경돼도 다른 branch에 영향을 주지 않음

->
.
git remote: 원격 repository 항목
git remote add origin URL: origin이란 이름의 remote repo 연결.(git clone은 자동 생성)

.
git push/pull: 원격 repo에 코드를 업로드/다운로드