리눅스/리눅스 2급

[리눅스 2급] 셸에 대해 알아보자(1)

tangent0426 2024. 9. 20. 18:00
728x90
반응형

 


저번 시간에는 파일 시스템 관련 명령어에 대해 알아보았습니다.

이번 시간에는 셸의 개념 및 종류와 환경 설정에 대해 알아보려 합니다.


 

 

[리눅스 2급] 파일 시스템 관련 명령어에 대해 알아보자(1)

저번 시간에 리눅스의 개요와 설치에 대해서 알아보았으니 이제부터 리눅스의 운영 및 관리에 대해 설명해 볼까 합니다.리눅스의 개요와 설치에 대해서 알고 싶은신 분은 아래 링크에 들어가

tangent0426.tistory.com

 

 

 

[리눅스 2급] 파일 시스템의 관리 (2)

저번 시간에는 권한 및 그룹의 명령어에 대한 설명을 해보았습니다. 이번시간은 운영체제가 파일을 어떻게 관리하는지에 대한 설명을 해볼까 합니다.리눅스의 권한 및 그룹에 대한 명령어를 보

tangent0426.tistory.com

 

셸의 개념 및 종류

개념

 

셸은 명령어 해석기로 사용자가 입력한 명령어를 해석하여 커널에 전달합니다.

로그인 할 떄 실행되어 사용자별로 사용 환경 설정을 가능하게 합니다.
강력한 스크립트 언어입니다.
입출력 방향 재지정과 파이프 기능을 제공합니다.
포어그라운드 백그라운드 프로세스를 실행합니다.

커널

운영체제의 핵심으로 하드웨어와 프로세스를 잇는 핵심 인터페이스인 프로그램입니다.

운영체제의 가장 중요한 구성요소로 시스템의 모든 것을 통제하며, 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 서비스를 제공합니다. 컴퓨터 부팅 시 부트로더에 의해 로드되어 항상 메모리에 상주합니다.

 

종류

 

종류로는 본셸과 C셸로 나누어지며 사용자 프롬프트가 '$'이면 본셸 계열,  '%'이면 C셸 계열을 사용하고 있습니다.

또한 대부분의 셸은 본셸 계열의 기능을 포함하여 확대 발전한 형태입니다.

C셸은 본셸의 모든 기능과 명령어 히스토리(history), 별명(alias), 작업 제어 기능을 추가로 가지고 있습니다.

 

아래의 표는 셸의 종류를 나타내었습니다.

    • Bourne Shell (sh)
      • 벨 연구소의 스티브본 (Stephen Bourne)이 개발한 셸으로 1979년에 개발하였습니다.
      • 유닉스에서 기본 셸로 사용합니다.
    • Korn Shell (ksh)
      •  AT&T사의 데이비드 콘이 1986년에 개발하였으며 벨 연구소에서 본 셸을 확장하여 만들었습니다.
      • 명령어 완성기능,히스토리 기능을 가졌습니다.
    • bash shell (bash)
      • 브라이언 폭스가 1989년에 개발하였습니다.
      • 확장형 본섈을 기반으로  GNU(자유 소프트웨어) 프로젝트에서 개발하였으며, Linux 표준 셸로 채택되었습니다.
      • 명령어 완성기능, 히스토리, 명령어 치환, 편집 등을 지원합니다.
      • POSIX와 호환이 가능합니다.
    • Z Shell (zsh)
      • 폴 팔스타드가 1990년에 개발하였습니다.
      • 셸 스크립트를 위한 강력한 명령 줄 인터프리터로 사용할 수 있는 유닉스 셸입니다.
      • 향상된 명령행 편집 기능을 가지고 있습니다.
      • 강력한 history 기능을 가지고 있습니다.
      • 파일명 중간에서부터도 자동 완성 기능이 가능합니다.

아래의 표는 C 셀들의 주요 특징을 나타냅니다.

 

    • C Shell (csh)
      • 버클리 대학의 빌조이가 1981년에 개발하였습니다.
      • C언어 구문과 유사하며 Bourne Shell을 확장하여 히스토리, 작업제어, 엘리어스 등의 기능을 추가해 개발자들에게 유용한 기능들을 제공합니다.
    • TC Shell (tcsh)
      • Ken Greer가 1982년에 개발하였습니다.
      • C 셸 기반이면서 C 셸과 호환되는 유닉스 셸입니다.
      • 명령 줄 완성, 명령 줄 편집 등의 기능이 포함된 C 셸으로 다른 셸들과 달리 tcsh 스크립트 안에 함수를 정의할 수 없으며 사용자는 csh에서처럼 별칭(alias)을 대신 사용해야 합니다.

셸의 확인 및 변경

로그인 셸 확인 

 

셸은 사용자가 로그인 한 후 자동으로 생성되는 로그인 셸로 확인할 수 있습니다.

$ cat /etc/shells


/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

 

셸 변경

 

로그인 셸 변경은 반영구적인 셸 변경 방법으로 관리자가 셸 변셩 후 다음 변경을 하기 전까지 지정된 셸을 사용합니다.

 

일반 사용자 환경에서 셸 변경 시 사용할 수 있습니다.

chsh [옵션] 계정명 셸

 

옵션 설명
-s 지정하는 셸을 앞으로 사용할 로그인 셸로 변경
-l /etc/shells 파일 안에 지정된 셸을 나열

 

관리자 환경에서 지정된 계정의 정보를 변경할 떄 사용하는 명령어 입니다.

usermod [옵션] 계정명

 

옵션 -s 변경 셸은 기존의 셸에서 새로운 쏄로 변경 시 사용됩니다.

 

다음에는 환경설정에 대해 알아보도록 하겠습니다.

 

읽어주셔서 감사합니다.^^

반응형