일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- 디자인패턴
- 인공지능
- 대학원 월급
- 대학원 급여
- 로스트아크
- MLP
- python
- 인공지능 깃 버전관리
- 머신러닝
- 딥러닝
- 정규화
- Dehaze
- 통계학
- 딥러닝 실험 깃 버전관리
- 파이썬
- 영화 api
- 의료 ai 대학원 월급
- 경사하강법
- 백준
- 자바 프로젝트
- 파이썬 경사하강법
- 디자인 패턴
- pandas
- API
- 활성화 함수
- 자바
- C# 프로젝트
- DCP
- 자바 영화 api
Archives
- Today
- Total
대학원 일기
리눅스 셸 스크립트 본문
1. 셸의 기능과 종류
💡 셸은 사용자와 커널 사이에서 중계자 역할을 수행하는 프로그램
하드웨어(CPU, RAM…) → 리눅스 커널 → 셸(명령어 해석기) → 응용 프로그램(excel, ppt…)
- 셸의 종류
- 본 셸(Born shell)
- 명령어: sh
- 세부 내용
- 단순하고 처리 속도가 빠른 이유로 많이 사용함
- 시스템 관리작업을 수행할 때 기반으로 사용함
- C 셸(C shell)
- 명령어: csh
- 세부 내용
- 본 셸의 기능을 확장함(사용자 편의 기능)
- 셸 스크립트 작성의 문법 형식이 C언어와 비슷함
- 다양한 편의 기능으로 인해 크기가 커지고 처리 속도가 느린 이유로 배시 셸에 밀림
- 콘 셸(Korn shell)
- 명령어: ksh
- 세부 내용
- 본 셸과의 호환성 및 편의 기능을 제공하고 처리 속도가 빠름
- 우분투 리눅스에서는 별도로 콘 셸을 설치하여 사용해야 함
- 배시 셸(bash shell)
- 명령어: bash
- 세부 내용
- 본 셸을 기반으로 개발된 셸(본 셸과의 호환성 유지)
- 사용자 편의 기능 제공
- **GPL(General Public License)**을 따르는 공개 소프트웨어
- 리눅스의 기본 셸로 제공
- GPL이란?(읽어만 봐)
- 공개 운영체제인 GNU 프로젝트로부터 소프트웨어에 적용되는 라이선스로 많은 사용자들이 소프트웨어를 자유롭게 공유하며 내용을 수정할 수 있도록 보증하는 것을 의미
- 대시 셸(dash shell)
- 명령어: dash
- 세부 내용
- 본 셸 기반으로 개발
- 포직스(POSIX) 표준을 준수하여 작은 크기로 개발된 셸
- 부팅 시 셸 스크립트를 빠르게 실행시키고 파일 크기가 작고, 신뢰성이 높음
- 우분투 6.10 버전부터 본 셸 대신 대시 셸을 시스템 기본 셸로 사용함
- 본 셸(Born shell)
- 셸 스크립트 환경 변수
- 주요 환경 변수
셸 변수 설정
- 셸 변수를 선언할 때, “=”을 사용하는데 변수 이름과 문자열 사이에 공백이 존재하면 안됨.
환경변수 설정 명령: export
- export 환경변수=값
환경변수를 셸 변수로 변경: export -n
- export -n 환경변수
셸 변수 해제 : unset
- 이미 정의된 셸 변수를 해제함
- unset 변수명
2. 셸 스크립트의 특징
셸 스크립트의 장단점
- 장점
- 다른 프로그래밍 언어보다 훨씬 빠르다.
- 컴파일을 수행하는 단계가 없다.장점
- 단점
- 실행되는 각 명령에 대한 잠재적으로 새로운 하부 프로세스가 수많이 필요하게 됨에 따라 속도가 느려질 수 있다.
- 복잡한 스크립트는 셸 스크립트 언어의 자체적인 제한영역에서 실행할 수 있지만, 제한으로 인해 다양한 셸이 문제를 개선할 목적으로 고품질의 코드와 확장을 기록하기에는 힘들다.
- 셸 출력 명령(echo & printf)
- 공동 셸 출력 명령: echo
- 모든 셸 스크립트 프로그래밍에서 공통적으로 사용할 수 있는 출력 명령
- 출력형식 지정 명령: printf
- C언어에서 사용하는 출력함수의 형식을 지정하여 출력 가능
3. 셸 스크립트 프로그래밍
- 셸 스크립트 작성과 실행
- gedit 명령어로 스크립트 작성
- 변수 선언
- 변수에 처음 값이 할당되면 변수는 자동으로 생성되므로 변수는 따로 선언하지 않음
- 셸에서 사용하는 변수는 모두 문자열(String)으로 취급하므로 숫자 또한 문자열로 처리됨
- 대/소문자 구별
- 변수에 값 대입시 ‘=’의 좌우에 공백이 존재하면 안됨
- 대입하는 값 사이 공백이 있을 때는 반드시 큰 따음표(” ”)로 묶어야 함.
- 위와 같은 값을 변수에 대입할 때는 ‘$변수명’으로 해야함.
숫자 계산
- 셸 스크립트는 모든 변수를 문자열로 처리하기 때문에, 연산을 수행하기 위해서는 키워드 expr을 사용해야 한다.
- 연산식을 사용할 때는 역따옴표(`)와 expr을 공백 없이 붙여 사용해야 한다.
파리미터 변수
- ex) 명령어: dnf -y install xinetd
- 실행한 명령어의 파라미터(매개변수)를 의미
- 조건문과 관계 연산
- 기본 if 문
- 조건을 묶는 대괄호 ‘[ ]’ 안에 각 단어와 연산자 사이에 공백이 존재해야 함
- 주어진 조건이 참(Ture)인 경우에만 수행함.
- 기본 if 문
- if~else문
- 기본 if문일 경우, 참 조건에서만 then 이하 명령을 수행함. 거짓 조건의 명령을 수행하기 위해서는 if~else문 사용해야 함.
- 비교 연산자
- 문자열 비교 연산자
- 산술 비교 연산자
파일 관련 조건
- 파일의 읽기, 쓰기, 실행이 가능한지 알아보는 파일 관련
case~esac문
- case~esac문은 조건이 많아질 경우 복잡해지는 if~else문의 단점을 해결함.
- 특정 조건에 해당되면 명령을 수행하는 방식
- if~else문에 비해 훨씬 간결하고 이해하기 쉬움
'School > Linux' 카테고리의 다른 글
리눅스 명령어 모음 (1) | 2023.10.31 |
---|---|
리눅스 디스크 관리 (0) | 2023.10.16 |
리눅스: 소프트웨어 관리 (0) | 2023.10.16 |
리눅스 프로세스 관리 (0) | 2023.10.16 |
리눅스 기본 명령어 (0) | 2023.10.16 |
Comments