windows terminal 로 들어가기 ! (여러 창 띄우기 가능)
환경 변수란 ?
Path
OS에는 환경변수가 기본적으로 존재
윈도우 - 시스템환경변수 검색
리눅스 - env 입력 -> 환경변수 내용이 쭉 나옴 !
port 쓸 때 환경변수 사용했음!
server > server.js 들어가서 아래처럼 변경함
export NODE_ENV=8080
node라는 애는 컴퓨터에 있는 내용을 가져올 수 있구나!
node.js != 웹서버
node.js = JS로 컴퓨터를 조작할 뿐..
진짜 웹서버를 만드는 것은 = express
process는 무엇을 가지고 있는지 쳌 (OS에 따라 내용 다를 것)
process: 운영체제별로 내가 운영한 ~ 결과물 return
vi test
console.log(process) 작성
node test 입력 - > 엄청 많은 내용이 쭉 - 나옴
vi server.js
아래처럼 수정
node env 환경변수
환경변수 생성 & 수정 : export (없으면 만들고 있으면 수정)
export PORT=8080
echo $PORT // 체크
수정하기
SHELL script 대부분 쓰기와 수정을 구별하지않음 !
=> node.js는 컴퓨터의 내용을 읽어올 수 있!
흔히 PORT, NODE_ENV (개발vs배포모드 구별), db내용들
io (input & output)
process 객체 안에 stdin / stdout을 통해 입출력 가능
out
vi test
아래 코드 입력
console.log('hello')
process.stdout.write('world')
node test // 위의 내용이 찍힘
in
in 입력을 받을 수 있는 환경 만듬
vi testin //testin 이라는 파일 새로 생성
아래 코드 입력
process.stdin.resume()
node testin
아무거나 쓰고 enter -> 계속 써짐
Ctrl + C // 종료
다른 언어와 다른 점이 있음
Node.js의 큰 장점 : non blocking io (Single Thread 이기때문에)
입력한 것을 그대로 출력하기
- 비동기로 처리하고 있다고 생각하면 됨
vi testin 코드 수정
process.stdin.resume()
process.stdin.on('data', showData)
function showData(value){
console.log(value)
}
node testin
컴퓨터가 알 수 있는 코드로 표현되고 있음 (컴퓨터는 1이라는 , hello, ? ㅋㅋ, ㅋ를 정확히 가지고 있는데 컴퓨터만이 알 수 있는 형태로 가지고 있다.
Buffer를 우리가 알 수 있는 걸로 수정
function showData(value){
console.log(value.toString('utf8')
}
완료
언어 명령으로 process를 종료해보기
vi testin
아래처럼 코드 수정
0은 성공적인 의미
이제 10을 입력하면 종료된다.
다시 testin 들어가기
새로운 폴더 생성
cd ~
mkdir scripts
SHELL scrip 서버의 자동화 / 편리함을 위함
달력 출력
cal // -> 진짜 달력이 나옴!
date //d -> 시간
cal -> 시스템 환경변수에 적혀있고 cal은 어떤 프로그램으로 구현되어 있음
명령어로 만들어서 구동할 수 있겠끔 만든 내장된 언어
세미콜론 ;
shell script는 세미콜론이 매우 중요하다
실행할 코드의 구분값
cd scripts
vi pratice1.sh
아래 코드 입력
구동시키기 - sh 이용
sh pratice1.sh
달력, 날짜, 환경변수, 목록보기가 쭉 다 나옴
변수에 담기
vi pratice2.sh
.sh 에서 주석은 == #
=cal, date는 script 안에 echo문이 이미 있어서 안써도됨
date, cal vs string(date, cal) ?
예약어일 때 예약어로 실행, 예약된 기능이 없으면 TEXT로 실행됨
vi practice3.sh
아래 코드 작성
-> 오류
변수에 사용할 때 띄어쓰기는 인식하지 못함.
오른쪽처럼 해도 -> world! not found ERROR
이유 : 띄어쓰기 하나 때문에 shell script는
Hello world 로 출력하고 싶을 떄 => String "" or '' 로 인식 시켜주기 !
ps -ef | grep node 한번에 변수에 넣는 방법
vi practice4.sh //생성
연산
vi practice5.sh // 생성
아래 코드 생성
-> 오류
수정 : 띄어쓰기 없애기
Shellscript는 * 가 곱하기라는 뜻이 아니야,,,,,,,,,,,,,,,,,,,,,,,,TEXT일뿐,,
=> MAC BOOK에서만 됨!
expr 은 출력해줌 = 3
echo returns 1+2
변수에 담지않고 shell script 자체에 명령어를 주어서 shellscript 실행하면 -> 다른 것( ex. text file ) 을 만들어 내기
vi practice6.sh
리눅스에서 > 요 꺽쇠는 왼쪽의 내용을 -> 오른쪽으로 '내보낸다' 라는 의미
백그라운드로 node server.js 돌려놓기
> 꺽쇠 사용해서 출력되는 내용을 node.txt로 옮기기
cd ~
cd scripts // scripts 폴더 안으로 들어오기
ps -ef | grep node // 두 줄 나오는거 확인 !
ps -ef | grep node > node3.txt
vi node3.txt // -> 두 줄이 나옴
head -n 1 node3.txt (head로부터 한 줄)
head -n 2 node3.txt (head로부터 두 줄)
tail -n 1 node3.txt (tail로부터 한 줄 )
cat node3.txt // 안의 내용 return
cat node3.txt | grep server.js // 도 가능
vi practice6.sh
아래 코드 입력
명령어를 함축해서 사용하는 법
cd ~
ls -al
vi .zshrc
i // 내용 아래처럼 추가
nodeserver 가 안됨 !
요렇게 해보니 된당 !
내일 : 기본 문법 / 기술적인 것 -> 간단한 무언가 만들 수 있게!
'블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기' 카테고리의 다른 글
[116일차] SHELL SCRIPT on Linux 기본 구문 if , for문 / blockChain 개념 (0) | 2021.08.31 |
---|---|
[115일차 복습] 리눅스 기초 Ubuntu 입/출력 및 기타 기본 명령어 공부 (0) | 2021.08.30 |
[114일차] Next Redux - 동적라우팅, infinite스크롤이벤트 (0) | 2021.08.27 |
[112-3일차 복습] 운영체제, 커널, 리눅스, 쉘 (Shell)이란? (0) | 2021.08.26 |
[113일차] Linux 리눅스/ 커널/ Shell Script 쉘 스크립트 커스터마이징 (0) | 2021.08.26 |