나의 성장기 보안/코딩$

Linux Shell Script(2) - Linux 셸 (shell)의 종류

Linux Shell Script
@2021-06-30 12:32:38

Linux의 Shell의 개요

  • Linux는 GUI환경도 요즘은 지원이 되지만 이전 환경은 터미널 환경을 이용한(CLI)환경으로 직접 컴퓨터를 운용하였다. 이 CLI환경을 이용할 경우 여러 기능을 제공하기 때문에 많이 사용하고 있으며 이 터미널에 입력한 명령을 해석하고 관리해주는 프로그램을 셸(Shell)이라고 한다.
  • 셸(Shell)은 사용자와 커널 사이에 연결시켜주는 역할을 수행하며 입력한 명령을 해석하여 운영체제가 해당명령을 알아들을 수 있게 해준다.

Shell의 종류

실행 명령 Full name 설명
sh Bourne Shell 벨 연구소의 스티브본이 개발하였으며 많은 셸 스크립트의 기반이 되는 셸이다.
csh C Shell C언어 구문과 유사하며 Bourne Shell을 확장하여 히스토리, 작업제어, 엘리어스 등 기능을 추가하여 개발하였다. 개발자들에게 유용한 기능들을 제공해준다.
tcsh TC Shell C Shell에 명령 행 완성과 명령 행 편집 기능을 추가한 Shell이다.
ksh Korn Shell Bourne Shell가 호환되며 C Shell의 많은 기능을 포함하고 있다, Unix 계열에서 많이 사용한다.
bash Bourne Again Shell (bash) 리눅스에서 가장많이 사용되는 셸로 Bourne 셸을 토대로 C셸과 Korn Shell의 기능들을 통합시켜 개발되었다.

Shell 확인 명령어

grep XXX /etc/passwd명령어

다음과 같이 grep명령어로 해당계정에 대한 정보를 확인할 경우 현재 사용중인 Shell을 알 수 있다.

위의 명령어는 /etc/passwd파일에서 XXX문자열을 사용하고있는 라인을 보여주는 명령어이다.

 


Shell 변경 명령어

1. chsh명령어(System 환경변수 변경)

  • chsh는 "CHange SHell"의 약자로 사용자가 기본으로 사용하는 쉘의 종류, 로그인시에 기본적으로 사용되는 셸의 종류를 변경하고자 할 때 사용하는 명령어이다.
  • 사용하는 셸을 /etc/passwd의 마지막 필드에 저장되어 있으며 이 명령어를 사용하게 되면 마지막 필드가 변경되게 된다.

chsh명령어로 셸을 바꾸는법

2. /etc/passwd의 셸을 변경하는 방법(System 환경변수 변경)

  • /etc/passwd의 셸에 직접 접근하여 System 환경변수를 변경하는 방법

직접 /etc/passwd파일에 접근하여 변경
변경된 셸 확인

3. 1회성 셸변경

  • 그냥 Shell에 원하는 셸을 바꾸면 된다.

일회성 Shell값 변경하기


지원하는 Shell List확인하기

/etc/shells파일 확인

  • /etc 디렉토리는 시스템의 설정파일이 존재하는 디렉토리이며 리눅스 시스템에서 가장 중요한 디렉토리이다.
  • /etc/shells파일에는 현재 OS에서 지원하는 Shell의 종류가 적혀있다.