본문 바로가기

블록체인 기반 핀테크 및 응용 SW개발자 양성과정 일기

[115일차 복습] 리눅스 기초 Ubuntu 입/출력 및 기타 기본 명령어 공부

반응형

 

환경변수란? 

 

우리가 컴퓨터로 특정 OS (운영체계) 안에서 실행하는 게임, 인터넷 서핑, 제어판, 그림판, 메모장 등은 모두 os 프로그램에 의해 실행되는 자식 프로세스이다. 이 때, 해당 프로세스를 실행시키기위해 참조하는 변수가 = 환경변수이다. 

 

- os에서 자식프로세스들을 생성할 때 참조하는 '변수들' 

- 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 

ex. Path 라는 변수 - os가 어떤 프로세스를 실행시킬 때, 경로를 찾는데 이용

- 즉, 환경의 조건을 정하는 것 

 

- 리눅스 환경에서 export 를 붙여서 변수를 지정 = 환경변수를 절대적으로 정하기 

* export 는 변수 생성 + 수정 함께 쓰임 

ex) 변수 앞에는 $를 붙인다.  ↘↘

요 단순한 변수 지정은 해당 터미널에서만 동작, 다른 터미널 콘솔에선 지정 X 

전역변수 만드는 법 

bash 에서는 .bashrc 에서, zsh는 .zshrc 파일에서 스크립트를 입력하면 된다. 

.zshrc 파일 상황

 

 

 

OS 가 가진 process 들 확인해보기 

 

vi test      // test 파일 생성
console.log(process)  //   <-요 코드 작성 
node test   // test 파일 실행 -> console.log로 process들이 쭉 나옴!

stdin & stdout 를 찾을 수 있다! 

 

 

 

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

 

1-1 환경변수란? 환경변수와 path

다음은 백과사전 상의 환경변수의 정의다. 환경변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치...

blog.naver.com

 

반응형