출처 : https://www.linkedin.com/pulse/ls-l-shell-alex-allen/
쉘은 키보드 입력으로 명령을 받아 운영체제에 전달하여 실행하는 프로그램이다. 다시 말해 쉘은 사용자에게 운영체제의 서비스를 사용할 수 있는 인터페이스를 제공한다. 다음과 같은 특징들이 있다.
bash
(Bourne Again SHell)가 쉘 프로그램으로 동작한다.ksh
, tcsh
, zsh
가 있다.사용자가 쉘에 접근할 수 있도록 인터페이스를 제공해주는 프로그램으로, CLI(Command Line Interface)라고도 불린다. 사용자는 명령을 입력하고 텍스트 기반 인터페이스에서 입력한 명령의 출력을 볼 수 있다. 일반적인 운영체제를 사용중이라면 직접적으로 쉘에 접근한게 아니라 터미널을 통해서 쉘에 접근하고 있을 것이다.
다음 명령어들을 사용하여 현재 터미널에서 사용하고 있는 쉘을 확인할 수 있다.
echo $0
echo
명령어는 명령어 뒤에 사용자가 입력한 문자열을 출력한다. 따라서 $0
변수의 값을 출력하게 된다. $0
변수는 특수 변수로, 쉘 프로세스가 시작될 때 전달된 쉘 프로그램의 실행파일 이름이다.
Linux 배포판마다 여러 종류의 쉘이 제공된다. 그 중 가장 기본적으로 사용되는 것은 bash
(Bourne Again Shell) 쉘이다.
빨간색 박스로 표시한 부분을 프롬프트 라고 하는데 bash
쉘에서는 일반 사용자일 경우 기본 프롬프트가 $
이다. root
사용자로 전환하면 #
로 프롬프트가 변경된다.
다음은 주요 쉘들과 그 특징이다.
쉘 이름 | 실행 명령어 | 설명 |
---|---|---|
Bourne Shell | sh | 유닉스 초기부터 사용되어 온 쉘로, 대부분의 유닉스 계열 운영체제에서 지원한다. |
C Shell | csh | 쉘 스크립트 작성 형식이 C언어 구문과 비슷한 특징이 있다. Bourne Shell의 기능을 확장했다. |
TC Shell | tcsh | C Shell을 개선한 확장 버전으로 명령 행 완성/편집 기능이 추가되었다. |
Korn Shell | ksh | Bourne Shell을 호환성을 유지하면서 확장하고, C Shell 의 기능을 추가했다. |
Bourn Again Shell | bash | Bourne Shell을 토대로 개발하였고 리눅스에서 가장 많이 사용되는 쉘이다. C Shell과 Korn Shell의 유용한 기능들을 가지고 있다. |
Z Shell | zsh | Bourne Again Shell, Korn Shell, TC Shell의 일부 기능을 포함하고, 수많은 개선 사항이 갖추어진 쉘이다. |
쉘 실행 명령어를 터미널에 입력해 터미널에서 사용하는 쉘을 변경할 수 있다. 다음과 같이 위 테이블에 있는 쉘 순서대로 쉘 명령어를 입력하여 변경해보았다. 이와 같이 터미널에서 변경하는 방법도 있지만 터미널 default 쉘을 변경하고 싶다면 Mac 기준 터미널의 환경설정에서 쉘을 지정해주어야 한다.
iTerm 사용시 터미널 쉘 변경
환경설정에서 Profiles 탭 - Command 섹션에서 기본적으로
Login Shell
이라고 되어있는 것을Command
로 변경 후, 사용하고자 하는 쉘의 절대 경로를 입력한다.
쉘 스크립팅은 CLI 환경에서 명령을 생성하고 실행하는 프로세스이다. 스크립팅 언어를 사용하여 텍스트파일에 작성하고 실행한다. 작업을 자동화하고 반복적인 작업을 효율적으로 수행하는 것을 목적으로 한다. 다음과 같은 특징을 가진다.
.sh
확장자를 가진다.현재 디렉토리 내의 모든 파일, 디렉토리를 출력하는 쉘 스크립트 예시이다. 첫째 줄에 스크립트를 실행하기 위한 프로그램을 지정한다.
#!/bin/bash
# 현재 디렉토리 내의 파일과 디렉토리를 출력
for file in *
do
echo $file
done
#!/bin/bash의 의미
쉘 스크립트를 작성 시 가장 첫 줄에
#!/bin/bash
를 작성하는데, 이는 bash 쉘을 사용하겠다고 명시하는것이다.
#!
(shebang, '셔뱅'이라고 읽는다) 은 매직넘버(magic number)로, 이 스크립트를 실행시켜줄 프로그램의 경로를 지정한다.
앞서 예시로 작성한 스크립트를 test_script.sh
파일로 저장했다. 쉘 스크립트 실행을 위해서는 다음과 같이 명령어를 입력하여 실행할 수 있다.
sh <실행할 스크립트 파일경로>
쉘 스크립트가 실행되고 출력된 현재 디렉토리 내의 파일과 디렉토리를 확인할 수 있다.
쉘과 쉘 스크립팅
https://www.geeksforgeeks.org/introduction-linux-shell-shell-scripting/
https://unstop.com/blog/linux-shell
https://soft.plusblog.co.kr/27
쉘 커맨드
https://wikidocs.net/211933
쉘 스크립팅
https://blog.gaerae.com/2015/10/what-is-the-preferred-bash-shebang.html