dukDukz

[Linux] 쉘 스크립트 환경변수 설정 본문

웹 개발/Linux

[Linux] 쉘 스크립트 환경변수 설정

헤일리_HJ 2021. 8. 30. 16:46

0830 수업

https://neul-carpediem.tistory.com/78

 

[Linux] 쉘 환경 변수

쉘 환경 변수 1. 쉘 변수      (지역 환경 변수) 2. 환경 변수    (전역 환경 변수) 1. 쉘 변수 (지역 환경 변수) - 현재 사용하는 쉘에서만 적용되는 변수 ① 변수 선언 및 초기화 #변수명=값  

neul-carpediem.tistory.com

완존 정리가 잘 되어 있다!

 

펭귄에서

 

# 환경변수 PORT


$ cd ~
$ cd server
$ vi server.js

 

const express = require('express')
const app = express()
const PORT = process.env.NODE_ENV || 3000

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

app.listen(PORT,()=>{
        console.log(`server open ${PORT}`)
})

이렇게 포트를 빼준다.

$ node server

하면 현재는 3000번으로 나온다 NODE_ENV 에 뭐 준적이 없어서

그래서 지금 넣어볼건데

 

[환경변수 선언]

$ export NODE_ENV=8080  

: 이렇게 앞에 export 를 붙여주면 환경변수 선언이 되는것이다. = 앞 뒤로는 띄어쓰기가 없어야 한다.

 

[환경변수 확인하는 방법 두가지]

$ echo $NODE_ENV                    // 변수는 앞에 $ 를 붙여줘야 한다.
$ env | grep NODE_ENV 

 

$ node server.js
다시 해보면 PORT 가 바뀌었다.

 

 

# 환경변수 PORT 수정

$ vi server.js

production / developer 인지 설정해줘야함

const PORT = process.env.NODE_ENV == 'production' ? 8080 : 3000

console.log(process.env.NODE_ENV)

저장하고 나와서 node server.js 해보니까 8080 이 나온다.

 

시스템 환경 변수 생성하는거 해보자
$ export PORT=8080 // 환경변수 설정
$ echo $PORT // 환경변수 확인

 

 

# 환경변수 NODE_ENV 수정


$ export NODE_ENV=production // 여기서 'production' 으로 해줘도된다.
$ echo $NODE_ENV

$ node server.js
해보면
console.log(process.env.NODE_ENV) 가 production 이 나온다.

 

 

# 왜 .env 가 만들어졌나?

사용자가 많아질수록 서버가 늘어난다.
거기서 각각 서버를 달아주면 오타가 생길 경우에 곤란해진다.

그래서 .env 라는 파일을 만들어놓고 쓸 때 가져와서 쓴다!

=> 수정이 자주 되는 부분은 왠만하면 시스템 환경변수로 빼서 하는게 좋다.

 


 

# node 로 실행시키기

 

$ vi test.js
console.log(process)
추가하고 저장

 

process : NODE JS 환경에서 구동되는 코드 안에서 컴퓨터가 가지고 있는 정보를 담은 객체

$ node test.js

하면 process 에 해당하는 내용이 쭈르륵 나온다.

 

node js 는 웹서버가 아니라 운영체제를 조작할 수 있는 녀석이다.

 

 


# 수정하기

 

리눅스, 쉘스크립트 쪽 개념들은 대부분 쓰기와 수정을 구분하지 않음
그래서 없으면 만들고 있으면 수정이라고 생각하면 된다.