kakasoo

[bash] bash와 shell script, 자동화 본문

프로그래밍

[bash] bash와 shell script, 자동화

카카수(kakasoo) 2020. 8. 1. 15:27
반응형

어떠한 것인지 설명하는 데에는 내 이해가 깊지 않아서 다른 글을 보는 걸 추천하고, 나는 좀 더 실용적인 정보를 제공하고 싶다, 그러니까, 직접 사용하는 법을 말해줄 테니 단계 별로 다뤄보고, 필요한 내용을 직접 조사해보도록 하자.

내가 하나 하나 설명할 수는 없지만, 이 내용들을 따라하고 공부함으로써 얻게 되는 CS 지식은 매우 유용할 것이다.

추가로, 여담을 굉장히 많이 적을 건데, 개발자가 알아두면 좋을 내용들을, 내용 상 시계열로 정리하겠다.

 

1. bash를 사용하기 위해서 wsl를 다운받도록 하자, 이는 윈도우에서 리눅스 환경 명령어를 쓸 수 있게 해준다.

1 - 1. 이것은 마이크로소프트의 store에서 설치할 수 있다, 우분투로 되어 있는 것이 있을 것이다.

1 - 2. 리눅스는 종류가 매우 많다, 커스텀 운영체제라고 생각하면, 왜 많은지 이해할 수 있을 것이다.

1 - 3. 심지어, 컴맹인 여자친구를 위해 만든 리눅스 version도 있다.

1 - 4. 각 리눅스 version은 있을 수 있지만, 다양한 리눅스 종류를 어느 것이 좋다 나쁘다 비교하긴 어려울 것이다.

1 - 5. 그래도 개인 용 컴퓨터와 서버 용 컴퓨터에 따라서 좋고 나쁜 정도는 충분히 비교할 수 있을 것 (2종류로 나눈다.)

 

2. cmd 창에 bash를 입력하여 리눅스 명령어가 가능하게 하자 (윈도우 명령어를 못쓰게 되는 건 아니다.)

2 - 1. 리눅스를 사용하는 이유는, 사실 '무료'인 탓이 크다.

2 - 2. 윈도우는 무료가 아니냐고 묻는다면, 그렇다, 무료가 아니다, 기업은 1년에 1번씩 돈을 내야 한다.

2 - 3. 사실 개인이 쓰고 있는 윈도우도 1회 구입 비용을 내고 있는데, 당연히 무료는 아니지 않겠는가.

 

3. vi sample.txt 라고 입력해보자, txt file을 작성하는 공간이 나올 것이다.

3 - 1. 확장자 명을 다르게 하면 다른 file도 생성할 수는 있다, 엄밀히 말해서 다 txt file의 형식을 가지고 있으니까.

 

여기서부터는 코드를 이해해주기 바란다.

#!bin/bash를 txt file의 맨 위에 작성해주기 바란다, #은 주석을 의미하므로 code에 영향을 주지는 않는다.

이것을 입력하면, 컴퓨터 운영체제가 해석하는 때에 bash file로 해석하게 된다, 즉 bash code라는 것,

안 적어도 되긴 한데, bash도 여러 가지 종류가 있으니까, 자기가 작성하고자 한 의미에 맞게 해주는 것이 좋다.

#!bin/python도 가능하다, 해본 적은 없는데, 요즘은 python을 더 많이 다룬다고 한다.

 

4. 자신이 원하는 코드 또는 내용을 작성한다. (사실 메모장을 만드려는 것은 아니다.)

5. 작성을 완료했다면 ESC 버튼을 누른 후 : 버튼을 누르자, 입력 창이 맨밑을 가리킬 텐데 wq를 누르면 나가진다.

6. 이렇게 sample.txt file을 완성했다.

 

7. 만약 bash를 사용하여 쉘 스크립트를 만든다면 확장자를 sh로 하여 작성해주면 된다.

 

8. vi test.sh 라고 입력해서 test.sh을 작성해보자.

9. 쉘 스크립트에 대해서 이해가 필요한데, 쉘 스크립트도 일단 프로그래밍하여 파일을 만들 수 있다,

다른 프로그래밍 언어와 다른 특징이 있다면, 폴더를 들어가고 나오고, 파일을 검색하는 등,

현재 데스크탑의 정보를 직접 다룰 수 있다는 점이고,

cmd 창에서 사용하는 명령어들을 직접 다룰 수 있다는 점이다.

 

10. 예컨대 git init이나 cd 같은 cmd 명령어를 sh file에 적어두고, 그것을 실행시킨다면 '자동화'가 된다.

11. 실행은 ./file_name.확장자명의 형식으로 한다.

 

12. 만약 install할 것이 매우 많으면 평소에 꾸준히 sh file을 최신화해두면, 개발환경 자동 구축을 할 수 있다.

13. 사용법을 더 고민해보자, 아래는 내가 생각하거나, 들은 사용법이다.

 

- 라즈베리파이 개발환경 세팅

- 컴퓨터 개발환경 세팅

- github, git 개발환경 세팅

- 그 외 파일 관리 (scp 명령어를 통해서 네트워크 간 정보 전달도 실행시킬 수 있다.)

 

나도 까먹을 때 쯤에 이렇게 다시 수행함으로써 기억을 되살릴 것이다.

반응형