본문 바로가기
CS/운영체제

[쉘 스크립트] 기초

by merona99 2021. 10. 14.
반응형

쉘 스크립트 기초

 

 

 

쉘(shell)이란?

 

  • 사용자가 프로그램을 시작하고, 파일시스템에 있는 파일을 관리하고, 리눅스 시스템에서 실행되는 프로세스를 관리하는 방법을 제공
  • 텍스트 명령을 입력하면 쉘은 이를 해석하고 커널에서 실행
  • 쉘은 파일을 복사하고, 옮기고, 이름을 바꾸고, 현재 시스템에서 실행 중인 프로그램을 표시하고, 시스템에서 실행 중인 프로그램을 중지시키는 일들을 수행함

 

 

쉘 스크립트란?

 

  • 쉘 명령들을 묶어서 파일에 넣음으로써 프로그램처럼 실행 → 쉘 스크립트
  • 커맨드라인에서 실행할 수 있는 명령이라면 무엇이든 쉘 스크 립트에 넣고 명령의 그룹으로 실행 가능함
  • 여러 가지 리눅스 쉘이 존재함. 리눅스 배포판에서 사용하는 기본 쉘은 bash 쉘(Bourne-again Shell) → UNIX 쉘을 대체하는 수단으로 GNU 프로젝트를 통해 개발

 

  • 쉘(shell)은 명령 인터프리터(command interpreter) 이다
  • 사용자가 운영 체제에 명령을 내리거나, 명령을 일괄적으로 실 행할 수 있는 기능을 제공하는 응용 프로그램 이다
  • 쉘은 사용자가 시스템과 대화 할 수 있는 방법이라고 생각할 수 있음

 

  • 쉘 명령의 조합
  • 변수 & 배열 선언이 가능함
  • 산술 연산 & 논리 연산이 가능함
  • 조건문 & 반복문이 가능함
  • 함수 선언이 가능함

 

 

쉘의 종류

  • sh : Thompson Shell (1971)
  • bsh : Bourne Shell (1977)
  • csh : C Shell (1979)
  • tsch : Tabbed C Shell (1979)
  • ksh : Korn Shell (1982)
  • bash : Bourne-again Shell (1987)
  • zsh : Z Shell (1990)
  • dash : Dash Shell (2002)

 

 

쉘 스크립트 작성

  • vim 에디터 (일반적)
  • nano 에디터 (권장)
  • 윈도우즈 메모장

 

 

쉘 스크립트 실행 방법

  • ./<쉘 스크립트 파일명>
  • bash <쉘 스크립트 파일명>
  • source <쉘 스크립트 파일명>
  • . <쉘 스크립트 파일명

 

  • 절대경로를 모두 적어주자!
  •    <절대경로>/<쉘 스크립트>
  •    /mnt/f/oss/tmp_bash.sh
  • sudo cp <쉘 스크립트> /usr/bin/<쉘 스크립트>
  •    <쉘 스크립트 파일명>
  •    sudo cp tmp_bash.sh /usr/bin/tmp_bash.sh tmp_bash.sh

 

  • 경로를 PATH 환경 변수에 추가 
  •    추가되어 있는 PATH 환경 변수 확인
  •       echo $PATH
  •    PATH 환경 변수 추가
  •       PATH=$PATH:<쉘 스크립트가 있는 절대경로>
  •       PATH=$PATH:/mnt/f/oss
  •    쉘 스크립트 실행
  •    위 방법은 임시적으로 등록하는 방법
  •    영구적으로 등록하는 것은 각자 찾아보자

 

  • #!/bin/bash를 제일 처음에 붙여주자!
  •    #!/bin/bash
  • 본 쉘 스크립트 파일이 bash 쉘로 실행한다는 점을 뜻함
  •    다른 쉘 스크립트로 실행시키려면, 다른 쉘 명을 입력함
  •    예) #!/bin/tcsh
  • 입력을 안해도 실행이 되는 이유는 리눅스 배포판은 기본적으로 bash 쉘로 설정되어 있기 때문임

 

 

 

파일 권한 변경 

  • chmod (change mode)
  • chmod <파일 권한> <파일명>
  • $ chmod a+x bash.sh
  • $ chmod g-w bash.sh
  • $ chmod 755 bash.sh

 

 

 


 

 

// 오픈소스SW개론 4주차

 

반응형

댓글