프로그램
프로세스
실제 파일을 구분하는 건 당연히 file 내용.
file signature
확장자마다 시작하는 16진수가 다름.
⇒ 확장자를 내 임의대로 .exe로 바꿔도 실행 파일이 될 수 없는 이유
파일
읽기 쓰기 실행
cat vi 내용변경 파일명 입력
+ 저장
0 --- x x x
1 --x x x x
2 -w- x /\ x
3 -wx x /\ x
4 r-- o x x
5 r-x o x o
6 rw- o o x
7 rwx o o o
쓰기 권한이 있을 때는 읽기 권한이 없어서 읽지 못하더라도 쓰기는 가능.
대신 원본의 내용이 날아갈 수 있음.
공유기 안에서는 내 IP를 사용하다가 공유기 밖으로 나가는 순간 공인 IP로 바뀌어서 나감.
기본 gateway → 대체로 공유기 주소 사용
// 내 computer와 현재 연결된 다른 computer 확인
netstat -ano
IP 주소
포트 번호
netstat -anlp <linux>
netstat -ano <window>
포트포워딩
리눅스 IP 설정
vi /etc/sysconfig/network-scripts/ifcfg-ens160
===========================================프로그램 설치 명령어
rpm -ivh 설치파일 경로 (centOS)
./configure
make
make install
yum install 프로그램이름
yum erase 프로그램이름
파일 다운로드 명령어
wget + url
설치 프로그램 확인
rpm -qa
서비스 프로그램 관리 명령어
systemctl start 서비스이름
systemctl stop 서비스이름
systemctl enable 서비스이름
systemctl disable 서비스이름
systemctl status 서비스이름
서버 프로그램 확인
systemctl status 서비스이름
ps -ef (프로그램 실행중인지 확인)
netstat -anlp
kill -9 [pid] (pid를 가진 port kill)
nginx 서버 준비해라
리눅스 IP 설정
nginx 설치
nginx 실행
문제 발생
systemctl start nginx
80번 port가 이미 사용 중이어서 nginx 실행 error 발생
// 80번 port kill
yum -y install psmisc
fuser -k 80/tcp
nginx 정상적으로 active running 확인.
q
누르면 원래 promt 화면으로 돌아옴.
압축 풀기
.zip
.tar.gz
touch apple
touch banana
touch kiwi
tar cvf fruits.tar apple banana kiwi
// => fruits.tar 묶음 tar 파일 생김
// tar 단점 -> 용량이 매우 커짐
gzip fruits.tar
// => fruits.tar.gz 압축 파일 생김
tar zxvf fruits.tar.gz
// 압축 해제
grep 명령어 (filtering)
조합으로 많이 사용.
echo asd
-> asd 출력
echo asd > ./qwer
-> qwer이라는 파일이 생겼고
cat qwer 를 실행하면
-> asd 출력
인터넷 작동 잘 되면 성공한 것.
ip 주소가 계속 바뀌면 client 입장에서는 사용하지 않게 됨.
서버는 무조건 IP 주소를 수동으로 설정해주어야 함.
virtual network editor 실행 (VMware Pro의 가상의 공유기 개념)
나만의 가상의 네트워크 환경을 구성하는 거니까
110.110.110.111 등 어떤 주소로 설정해도 상관없음.
여기서 110.110.110.0으로 설정한 건 공유기의 대역폭을 정한 것.
공유기에 연결된 ip들은 모두 110.110.110. …으로 시작하는 주소를 갖겠다.
⇒ 그러니까 내 ip 주소는 110.110.110.xxx가 되어야 하는 것.
→ 그리고 공유기도 110.110.110. 로 시작하는 주소를 사용해야 하니까
110.110.110.111을 할당 받아 사용하는 것.
내 ip주소도 110.110.110.0으로 하면 당연히 절대 안된다!!
vi /etc/sysconfig/network-scripts/ifcfg-ens160
BOOTPROTO=dhcp → BOOTPROTO=static 수정
IPADDR=110.110.110.111 추가 (내 ip 주소 임의 설정)
NETMASK=255.255.255.0 추가
GATEWAY=110.110.110.2 추가
DNS1=8.8.8.8 추가
systemctl restart NetworkManager
ip addr
ping 8.8.8.8
순서대로 실행해서 ping comand 실행 결과 packet이 전달되면 설정 완료.
ping 8.8.8.8 (google DNS 서버)
ping - 3 layer 통신이 되는지 확인하는 명령어
가까운 곳에서 먼 곳을 하나씩 테스트
cf.) 실무에서 직접 ip 설정을 할 일은 없을 것.
// nginx가 실행 중인가
ps -ef | grep nginx
// 80번 포트 동작 확인
netstat -anlp | grep :80
grep root /etc/passwd
cat /etc/passwd | grep root
-> 두 명령어 실행 결과 같지만 아래 명령어를 개발자들이 더 많이 사용.
tail -f /var/log/messages
// 방화벽 해제
systemctl stop firewalld
80번 port는 default이므로 생략되어 표시됨.
방화벽에 80번 port 등록
firewall-cmd --permanent --zone=public --add-port=80/tcp
systemctl restart firewalld
firewall-cmd --list-all
// nginx html 파일 위치
vi /usr/share/nginx/html/index.html
// /usr/share/nginx/html/ltw.html 파일 생성
touch ltw.html
http://110.110.110.111:80/ltw.html
http://110.110.110.111:80/ltw.html
→ 주소로는 다른 사람이 접속할 수 없음. (당연히 내 사설 IP 주소이니까 접속 불가)
⇒ 포트포워딩을 해줘야 다른 사람이 접속 가능.
공유기의 공인 ip 주소: host포트 로 찾아오면
→ 가상머신사설IP주소: 가상머신프로그램포트 로 보내준다.
내 PC 켜놓고 포트포워딩 설정해서 nginx 설치하고 html 추가해서
와서 웹 페이지 접속했을 때 성공해야 함.