쉘 기초

조민철·2024년 6월 10일

Shell script

목록 보기
1/4

쉘 스크립트란?

쉘은 리눅스에서 명령어 해석을 담담한다. 특정한 명령어들을 하나의 파일로 묶어 순차적으로 실행할 수 있는데 이 파일을 쉘 스크립트 파일이라고 한다. 주로 반복적인 일을 자동화하는데 사용한다.

쉘의 종류

  • sh (Bourne Shell)
    • 최초의 유닉스 쉘로 스크립트를 지원하고 본쉘이라고 불린다.
    • 논리 및 산술 연산을 처리하는 내장 기능이 없어 이전에 사용한 명령어를 기억할 수 없다.
  • ksh (Korn Shell)
    • 본 쉘을 개선한 쉘로서 history(명령어 기록), alias(별칭)의 기능이 추가되었다.
  • csh (C Shell)
    • ksh 처럼 본쉘의 개선 버전이다.
  • tcsh
    • csh 개선버전으로 명령어 편집기능 및 자동완성을 지원한다.
  • bash (Bourne Again Shell)
    • 본쉘의 확장버전으로 Unix 쉘 Linux, Mac의 기본 쉘로 사용된다.
    • 다양한 명령어들(mv, cp, rm touch 등등..) 많은 명령어들이 추가되었다.
  • zsh
    • bash, ksh, tcsh의 기능을 결합하여 맞춤법 검사, 로그인 감시, 자동 생성, 플러그인등 여러가지 기능을 지원한다.

쉘 확인

현재 사용중인 쉘은 SHELL이라는 환경변수에 정의 되어있다
$ echo $SHELL 명령어를 사용하게 되면 사용중인 쉘을 확인이 가능하다.

또한 사용할 수 있는 쉘들은 /bin/shell파일에 정의 되어 있다.

출력 및 변수

쉘에서도 타 프로그래밍 언어처럼 변수에 값을 집어넣고 이를 이용해서 출력을할 수 있다.

$ echo Hello world # Hello world 출력


또는 변수에 값을 넣고 출력이 가능하다. $ echo $변수명 변수의 값을 출력 할려면 $를 사용한다.

$ name=Cho
$ echo name # name 출력
$ echo $name # Cho 출력
$ unset name # name 변수 해제
$ echo $name # 공백 출력


다음은 여러가지 변수 사용법이다. 문자열과 변수를 같이 사용할수 있는데 주로 {} 대괄호를 사용하여 변수를 출력해주는 습관이 좋다. 변수를 쉽게 구분할 수 있다.

$ name=Cho
$ echo "My name is ${name}" 
$ echo "MinCheol${name}"

``, "", '' 다음 3개의 인용부호는 다르게 작동하는데 의미들을 살펴본다

$ name=Cho
$ echo 'My name is ${name}'
$ echo "My name is ${name}"
$ echo "List: `ls`"

"" -> $, `, \를 제외하고 무시
`` -> 셀 명령어를 실행
'' -> 모든 셸 문자를 무시

일반변수 & 환경변수

일반변수는 다른 언어에서도 사용하듯이 값을 넣을 수 있는 변수이다.

$ name=Cho # name이라는 변수에 Cho 값을 저장
$ name = Cho # 공백을 넣으면 안됨

환경변수는 시스템이 목적을 가지고 사용하는 변수이다. 환경변수는 애플리케이션 또는 시스템에 영향을 받게 된다
그리고 환경변수는 선언은$ export 변수명를 사용하고 변수명은 대문자를 사용해야 한다

$ export NAME=Cho
$ echo ${NAME}


모든 변수명을 보고 싶다면 $ set 명령어를 사용하면된다. 또는 환경변수만 확인하고 있다면 $ env 명령어를 사용하면 된다.

profile
기록의 힘은 대단하다

0개의 댓글