CS/운영체제

[Linux]환경변수&bash 스크립트

용감한 개복치 2022. 5. 13. 02:24

 

1. 환경변수

 

환경변수란, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임.

출처는 위키백과

이름 그대로 변수는 변수인데, os가 프로세스들을 생성할 때 참조하는 변수다.

더 쉽게 프로그램을 실행시킬 때 필요한 변수.

 

export

이미 설정된 환경변수 확인

export [변수명]="[값]"

등호 표시 앞뒤로 공백 x

특히 path 설정시 중요

단, 이렇게 export로 줘버리면 시스템 재부팅, 로그아웃시 환경변수 값이 사라짐. 매번 다시 할당 필요

1-1) 환경변수의 영구 적용

~/.bashrc 파일을 열어서 마지막줄에 원하는 동작을 추가

vscode 를 사용한다는 가정하에, 편집기 열어서 수정하는 명령어

code ~/.bashrc

 

해당 변수명의 값을 알려줌

echo $[값을 알고싶은 변수명]

 

1-2) 환경변수 파일 사용

os단의 환경 변수를 지정하는 것이 아닌 프로그램 단위로 지정하고싶다면, .env라는 파일에서 환경변수를 컨트롤 가능.

 

dotenv를 설치

npm init

npm i dotenv

 

.env 파일로 환경변수에 접근가능.

index.js 같이 예시 js 파일 하나 만들어 놓고 안에 process.env 출력하면 확인 가능.

nano index.js

cat index.js

>> console.log(process.env)

node index.js

>> 환경변수 쭈르륵

 

환경변수를 사용할 index.js 라는 파일에는

require("dotenv").config()

선언 필요.

 

그 이후, process.env.[변수명] 으로 사용가능

 

왜?

드러나면 안되는 민감한 정보 저장 관리용

.gitignore로 깃헙에 올리지 않고 관리 가능

 

개별 환경 별로 gitignore에 올라갈 내용 만들어주는 사이트

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

그런데 이미 깃에 올라가 버린 파일이라면?

올라가 버린 내용은 gitignore에 포함한다고 추적 피하기 x

수동으로 설정해줘야함

 

git rm -r --cached . (현재 레포지토리의 캐시를 모두 삭제한다.)

git add .

git status

git commit -m "커밋메세지"

 

2. bash 스크립트

 

2-1) 쉘shell

운영체제의 기능이나 서비스를 구현할 수 있는 명령어를 사용자에게 받아서 실행할 수 있는 인터페이스를 제공. 

사용자의 명령어를 실행해주는 프로그램 즉, 사용자와 운영체제의 다리 역할.

현재 사용되는 쉘의 종류는 유닉스버전의 기본 쉘인 본 쉘 (Bourne shell) 이후 C쉘, bash 쉘 등 다양

리눅스에서는 bash쉘을 표준으로 사용

 

#!/bin/sh
# This is a comment!
echo Hello World


첫번째줄은 이게 쉘스크립트라는 것을 컴퓨터에게 알려주는 역할
#으로 주석

 

2-2) 쉘스크립트 명령어 모음

#echo 문자열 출력

#!/bin/bash

name="lee"
value="devops"
echo name: ${name}, value: ${value}

 

이렇게 변수 내용을 출력할 수도 있고
단순 하게 print처럼 쓸 수도 있음.

#echo 문자열 출력

#!/bin/bash

echo hello-world

 

print의 기능도 지원하지만 echo와 다르게 줄바꿈 x

그래서 하고싶으면 백슬래시 활용 필요.

#!/bin/bash
 
var1="Hello World"
var2="Bye"
printf "${var1}\n${var2}"


단, 문자열로 처리하기 때문에 산술 연산시

#!/bin/bash

num1 = 1
num2 = 2
echo $num1 +$num2

하면 문자열 그대로 1 + 2 가 나올 수도 있음

익히 알고 있는 산술 연산을 하고싶다면,

#!/bin/bash

let sum = $num1 +$num2
echo $sum

 

조건문을 사용하고 싶다면 독특한 문법을 적용해야함.

# 조건문 사용법
#!/bin/bash

if [ expression ] ; then
  명령어
elif [ expression ] ; then
  명령어
else 
  명령어
fi

 

if 와 fi 사이에 조건문 넣어야함.

[ ] 이거 사이에 공백 필수

 

산술연산자

 

문자열 비교 연산자

 

 

 

*** 참고문헌 ***

 

https://devpouch.tistory.com/124?category=1018331 

 

[bash] 쉘 스크립트 조건문 사용법

이전 글에서 쉘 스크립트로 사용자 입력을 받는 방법과 출력하는 방법에 대해서 다뤄보았다. 그렇다면 사용자의 입력에 따라 출력을 다르게 하고 싶을 때는 어떻게 해야할까? bash 쉘 스크립트에

devpouch.tistory.com

 

'CS > 운영체제' 카테고리의 다른 글

[Linux] 시스템 모니터링  (0) 2022.05.13
[Linux]nohup  (0) 2022.05.13
[Linux]입출력, 표준 스트림  (0) 2022.02.11
[Linux]패키지&프로세스  (0) 2022.02.10
[os]운영체제  (0) 2022.02.10