dukDukz

0825 Linux 본문

웹 개발/Linux

0825 Linux

헤일리_HJ 2021. 8. 25. 12:14


what is OS ??
- 우리가 접할 수 있는 운영체제는 WINDOW or IOS

OS
- Window
- Linux
- Unix
- Mac

Linux 의 장점
- 무료!

유닉스 : 리눅스랑 거의 흡사함
맥 : 유닉스 기반...
그래서 명령어같은게 비슷함..

리눅스를 왜쓰냐..?
CLI 보드로 실행할 수 있기 때문

CLI (커맨드 라인 인터페이스 - cmd 같은거) 
<-> GUI (그래픽 유저 인터페이스 - 마우스로 클릭하면서 유저가 직접 사용)

GUI 를 쓰면 CLI 에 비해 컴퓨터 성능이 떨어진다.
- 그래서 터미널에서 쓰는 방법이 좋다는 것이다..!

비트코인 빌드를 할 때 리눅스에서 빌드할거임

# 빌드를 위해서,
- 명령어 배울거임..
- 환경세팅
- 언어 : 쉘 스크립트 도 배울것이다. 
쉘 스크립트 -> 일정 시간에 똑같은 작업을 하겠다라고 코딩하고 얘가 해당시간이 되면 실행하는것
예 ) 카카오 점검시간 매일 12:00-12:11 이런식으로 이때 서버 점검시간 - 서버 잠깐 끄는..


리눅스 펭귄
wsl 검색하면 들어갈 수 있음
그리고 들어가서 cd ~ 로 가보자

명령어 중 ls -help 하면 설명이 쭉 나옴

- 파이프 라인 | : or 임
ps -ef | grep node : 현재 돌아가고 있는 시스템 확인
앞에 쓴 내용의 결과물을 바꿔주는것


$ ls -al | grep text.txt // ls -al 중 text.txt 만 보고싶다
$ ls --help grep print    // print 에 관한 내용을 찾고싶다면 이렇게 (검색이라고 생각하면됨)
$ cat test.txt | grep error // error 부분 검색

여기 안에서 더 세부적으로 보고 싶다면 
$ ls --help grep print


# vi 안하고 바로 볼수 있게
$ cat test.txt

# 디렉토리 생성
$ mkdir sample

# 파일 이동 (앞에 . 붙는거는 현재 디렉토리 기준으로)
$ mv ./test.txt ./sample/test.txt
text.txt 를 sample 폴더 안으로 옮기기

# 파일명 수정은 
mv 명령어로 해야됨
$ mv ./test.txt ./test2.txt
파일명을 이동시킨다는 개념으로

파일 복사 
파일 삭제

# io redirection 
cat test.txt 하면 내용이 나오는데
출력된 내용을 그대로 다른 파일로 이동시키겠다
$ cat ./test2.txt > ./test.txt
> 로 이동시킴
: 로그 남길 때 많이 사용한다.

# 설치 (mysql, node js, ... 특정 파일 설치)
apt 는 리눅스의 패키지 매니저다
$ apt-get install [설치할것]

$ sudo su 해서 들어가서 비번 치고 들어가서
$ apt-get install htop
$ htop 이라고 치면 실행이 된다. - ps -ef 내용을 그래픽으로 보여주는것 F10 누르면 나감


# 리눅스에서는 인터넷에 접속 못하나요? sudo su 안에서.
보여줄 수 없을 뿐 가능하기는 하다.
$ curl [url]

$ crul http://google.com
$ crul http://naver.com

$ curl -O http://ingoos.co.kr/index.html
O : 알파벳 O : 내용을 가져오겠다는 옵션


포트를 열어주기.. 80번 열어주는.. 아마존에서 했었던거
그거를 여기서 할 수도 있다.


컴퓨터를 하나의 웹서버로 만들어보기..
node js 설치
일단 sudo su 에서 exit 로 나와서 cd ~ 로 간다.
$ sudo apt-get update 하면 비번 치고 하면 된다.
$ sudo apt-get install -y build-essential // 옵션 -y 는 모두 yes 하겠다.
$ sudo apt-get install curl
$ curl -sL http://deb.nodesource.com/setup_14.x | sudo -E bash --
$ sudo apt-get install -y node.js

확인 방법
$ node -v 
$ npm -v

디렉토리 생성
$ mkdir server
$ cd server
$ npm init
$ npm install express

윈도우에서 node js 설치했는데 왜 여기서 또하냐?
OS 가 달라졌기 때문 윈도우 -> 리눅스 
컴퓨터 두대를 쓰고 있다고 생각하면 된다 : 가상 머신 
ㄴ정정 : NO, 윈도우에서 3000번 포트 사용하고 있으면 리눅스에서 사용불가 - 윈도우 위에 리눅스를 깔았기 때문에

server 디렉토리 안에서 server.js 를 만들어준다
~/server$ vi server.js

const express = require('express')
const app = express()

app.get('/',(req,res)=>{
        res.send('hello world!!')
})

app.listen(3000,()=>{
        console.log('server open 3000')
})

~/server$ node server
하고 
크롬에서 http://localhost:3000/
들어가보면 열린다.

방화벽 풀기
서버 잠깐 끄고

~/server$ netstat -na
Command 'netstat' not found, but can be installed with:
sudo apt install net-tools
이런 오류가 뜸

~/server$ sudo apt-get install net-tools
이걸 깔아주면 된다.

그런 다음 다시 $ netstat -na

- 가 붙었다는 것은 옵션이 붙었다는것!

다시 $ node server 할건데 백그라운드로 할거니까 $ node server.js &
하고 다시 $ netstat -na

$ sudo iptables -| INPUT 1 -p tcp --dport 3000 -j ACCEPT