Hailey's TIL

[컴퓨터 시스템 관리] 7주차 실습일지(21.04.18.) 본문

Linux

[컴퓨터 시스템 관리] 7주차 실습일지(21.04.18.)

0_hailey_0 2021. 4. 19. 00:30

▶ 실습 과제

유용한 bash script 작성하기

- 랜덤으로 문자열과 난수를 생성하는 bash script를 작성하였다.

- random_test1: A 또는 C 랜덤 출력
- random_test2: 모든 영어 대/소문자와 숫자 중 8자리 랜덤 출력
- random_test3: 0부터 9까지의 랜덤 숫자 생성
- random_test4: 1부터 100까지의 랜덤 숫자 생성

- 유용하다고 생각한 이유 :
일상생활에서 랜덤으로 문자나 숫자를 뽑아야하는 경우가 많은데 이 때 사용할 수 있다고 생각되어 작성해보았다.
예를 들어 test2는 패스워드를 만들거나 어떤 항목에 무작위로 식별가능한 코드를 부여할때 사용될 수 있고,
test4 같은 경우에는 제비뽑기나 순서를 결정할때 사용하는데 적합하다.

(*참고한 자료 nirsa.tistory.com/122)


▶ 새로 배운 내용

1. Shell

1) Shell : 사용자의 명령을 해석하여 커널에 전달
2) Shell Script : 명령어 집합. 과정이 복잡하기 때문에 매일, 또는 주기적으로 해야 하거나 하나라도 빠지면
문제가 생기는 명령어들의 집합

- 환경 변수 : echo $환경변수이름
- 스크립트 파일 실행 방법 : 1) bash (파일이름).sh 2) chmod +x (파일이름).sh

3) bash : 우분투에서 기본으로 사용하는 셸
--> bash의 특징
-alias 기능 (명령 단축 기능)
: alias ls2 = ''"ls -al"
alias c= "clear"
- History 기능: 화살표를 위아래로 조작하여 이전에 썼던 명령어를 불러옴
- 연산 기능 / Job Control 기능 / 자동 이름 완성 / 프롬프트 제어 / 명령 편집


2. Shell Script Programming
1) 변수
- 미리 선언하지 않으며 처음 변수에 값이 할당되면 자동으로 생성
- 변수에 넣는 모든 값은 문자열(String)로 취급
- 변수 값을 사용하기 위해서는 변수명 앞에 $vytl
- 변수에 값을 대입할 때는 $를 사용하지 않음
- 대소문자 구분 / 대입연산자 '=' 좌우에는 공백이 없어야 함
- 파라미터 변수 :$0, $1, $2의 형태로, 실행하는 명령의 각 부분을 변수로 지정. 모든 인자는 $*

2) 조건문
- [조건] 의 결과가 참/거짓에 따라 동작
- [조건] 안의 각 단어 사이에 반드시 공백이 있어야 함
- case문의 pattern에는 *(와일드카드)를 사용할 수가 있음
- 조건문에는 관계 연산자인 AND( && or -a ), OR( || or -o) 사용

3) 반복문
일정 범위 또는 조건이 참인 동안 반복할 명령어를 반복 실행

4) 사용자 정의 함수
- 사용자가 직접 함수를 작성하고 호출할 수 있음
- 함수를 호출할 때 파라미터를 붙여서 사용할 수 있음

5) eval
문자열을 명령어로 인식하고 실행

6) export
- 외부 변수로 선언
- 선언한 변수를 다른 프로그램에서도 사용할 수 있음

7) set과$(command)
- 리눅스 명령을 결과로 사용하려면‘ $(command)’형식을 사용해야함
- 결과를 파라미터로 사용할 때 set사용

8) shift
- 파라미터 변수를 왼쪽으로 한 단계씩 아래로 이동 시킴

9) 셸 프로그래밍 디버깅
- sh-n script.sh #문법 에러 검사, 실행안 안함
- sh-v script.sh #명령어를 실행하기 전에 출력
- sh-xscript.sh #명령어와 결과를 출력


3. 사용자 계정 여러 개 만들기
- useradd를 이용하여 사용자 계정 생성, passwd를 이용하여 패스워드 설정


4. 작업 예약 cron
- systemcl status cron // cron 동작 여부 확인
- vi /etc/vrontab 에 명령어 입력
- (스크립트명).sh 만들고 실행 가능하도록 속성 변경→ 사용자 권한/ 파일 등등

5. 작업 예약 at
- apt install rdate at //패키지 설치
- rdate -s time.bora.net //시간을 표준시간으로 설정
- at 작업 설정하기 //명령 at 실행
- at -l // 예약 확인
- atrm (작업번호) //예약 취소






▶ 참고할 만한 내용

- 자주 쓰는 쉘 스크립트 문법
https://yangbongsoo.tistory.com/2?category=919802

자주 쓰는 쉘스크립트 모음

if문 if-then 가장 기본적인 if-else 구문의 형식은 다음과 같다. if command then commands fi if command; then commands fi bash 쉘은 if문 줄에 정의된 명령을 실행한다. 이 명령의 종료 상태가 0(명령이 성공..

yangbongsoo.tistory.com

- 간단한 쉘 스크립트 문법 정리와 예제
twpower.github.io/131-simple-shell-script-syntax

[Shell Script] 간단한 쉘 스크립트 문법 정리와 예제

Practice makes perfect!

twpower.github.io




▶ 회고

+ : 여러가지 유용한 bash script를 알 수 있어서 좋았다. 또한 쉘 스크립트 문법이 다른 언어들과 비슷하여 실습을 하는데 큰 문제는 없었으며 흥미롭게 느껴졌다. 또한 작업들을 예약해서 할 수 있다는 점이 편리하게 느껴졌고 유용하다고 생각되었다.

- : vi 에디터 사용을할 때 $를 앞에 붙이면 글자 색이 파란색으로 입력되어 인식이 매우 매우 어려웠다.
그래서 오타가 굉장히 많이 발생하였고 이를 고치는데 시간이 오래 걸렸다.
또한 실습을 할때 이전에 다른 언어를 공부할때 배웠던 문법과 유사하지만
세세한 부분이 달라서 적응하는데 시간이 걸렸다.

! : 쉘 스크립트가 다른 언어들과 비슷하다는 점을 알게 되었다.
다른 bash script 예제를 풀어보면서 익숙해지면 bash 스크립트 사용을 더 유연하게 할 수 있을것 같다.