환경변수란?
우리가 컴퓨터로 특정 OS (운영체계) 안에서 실행하는 게임, 인터넷 서핑, 제어판, 그림판, 메모장 등은 모두 os 프로그램에 의해 실행되는 자식 프로세스이다. 이 때, 해당 프로세스를 실행시키기위해 참조하는 변수가 = 환경변수이다.
- os에서 자식프로세스들을 생성할 때 참조하는 '변수들'
- 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임
ex. Path 라는 변수 - os가 어떤 프로세스를 실행시킬 때, 경로를 찾는데 이용
- 즉, 환경의 조건을 정하는 것
- 리눅스 환경에서 export 를 붙여서 변수를 지정 = 환경변수를 절대적으로 정하기
* export 는 변수 생성 + 수정 함께 쓰임
ex) 변수 앞에는 $를 붙인다. ↘↘
전역변수 만드는 법
bash 에서는 .bashrc 에서, zsh는 .zshrc 파일에서 스크립트를 입력하면 된다.
OS 가 가진 process 들 확인해보기
vi test // test 파일 생성
console.log(process) // <-요 코드 작성
node test // test 파일 실행 -> console.log로 process들이 쭉 나옴!
io (input & output)
위의 process에서 찾은 stdin & stdout 을 사용해서 입/출력 해보기
out
vi practice
아래 코드 작성
node practice // hellooo <br/> there% 이 나옴
in
vi practicein // 새 파일 생성
process.stdin.resume() 코드 작성
나와서
node practicein 계속 enter 로 무언가를 입력 가능
ctrl + c 종료
practicein 코드 수정
질문 : 아래 코드 의미
process.stdin.resume() -> 입력창 생김
process.stdin.on('data', showData)
'data'라는 이벤트를 실행할게 showData 라는 함수로 ㄱㄱ ! 그 안에 들어가는 value라는 인자 (이름 마음대로 !- 변수임) 에 입력하는 내용이 들어감 value = 입력값
node practicein 실행
Buffer를 우리가 알 수 있는 걸로 수정
언어 명령으로 process 종료시켜보기
질문 : toStirng인데 왜 10이 true !?
=> 요기서 utf8 로 바꾼다는 것이 꼭 " " string으로 바꾸는 것이 아닐수도..!
data가 10이 되면 자동으로 입력창이 꺼진다
process.stdin.setEncoding('utf8') 을 입력하고
value.trim() 을 해주면 숫자 10 입력 시 '10', 10 == data 둘다 True가 뜬다.
내장 예약어
cd ~
cal // 달력 나옴
date // 시간 나옴
mkdir scripts2 // 폴더 생성
cd scripts2
vi p1.sh // p1.sh 라는 파일 생성
아래 코드 입력
sh p1.sh // 실행
내장 예약어를 변수에 담기
cal , date는 그냥 입력창에
cal
date
이렇게 써도 나오기 때문에 echo를 붙이면 안된다!
예약어라면 예약어로 실행되고 예약된 기능 없으면 TEXT로 인지
띄어쓰기의 중요성
vi p3.sh
위 코드 작성
sh p3.sh
왼쪽 오류 (띄어쓰기)! 중간 그림도 오류 (띄어쓰기 전까지 hello 만 인식하고 there는 not found 오류)
오른쪽 코드는 ok! 띄어쓰기가 있을 경우에는 "" 따옴표로 ! or ''
한번에 변수에 입력하는 방법
vi p4.sh // 파일 생성
아래 코드 작성
이렇게도 변수에 넣을 수 있다
node가 들어간 모든 list 담기
연산
vi p5.sh // 파일 생성
아래 코드 작성
왼쪽 코드: * 만으로 곱하기 안됨
중간 코드: 맥북에서만 가능 !
오른쪽 코드: 곱하기 성공!
expr 를 쓰고 1 + 2 를 해야 덧셈 가능. (띄어쓰기가 반드시 필요!)
변수에 담지 않고 shell script 자체에 명령어를 주어서 ex. text file 등으로 만들어 내기
vi p6.sh
아래 코드 입력
sh p6.sh // 실행
> : 왼쪽의 returns를 ps.txt라는 파일에 넣어 저장
head : list의 맨 위에서부터
1 : 1개 / 2 : 2개
tail : list의 맨 끝에서부터
명령어 함축해서 사용하는 방법 = 위에서 다룬 전역변수 설정
cd ~
ls -al
cd .ashrc
아래 내용처럼 변수에 명령어 추가
alias // 명령어로 p6.sh list에 있는지 확인 -> 없음!
요렇게 직접 설정해서 alias 보니 list에 나옴 ! 그리고 nodeserver 입력하면 p6.sh 실행됨!
references: https://m.blog.naver.com/zxwnstn/221521038431
'블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기' 카테고리의 다른 글
[117일차] 블록체인 제네시스 블록 만들기 with JavaScript (0) | 2021.09.01 |
---|---|
[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 |