콘텐츠로 이동

Shell 종류 확인 및 기본 Shell 변경 방법

[Shell] 현재 사용 중인 쉘(Shell)을 확인해 보자

섹션 제목: “[Shell] 현재 사용 중인 쉘(Shell)을 확인해 보자”
author: Onejay
createdAt: 2022-09-04
updatedAt: 2022-09-04

  • 유닉스Unix 기반 운영체제의 명령어 해석 프로그램
  • User가 컴퓨터에 원하는 내용을 명령어로 전달했을 때 명령어를 해석하여 컴퓨터에 전달하고 컴퓨터의 처리 결과를 해석하여 사용자에게 출력하는 역할을 한다.
    • User -> Shell -> 컴퓨터 -> Shell -> User
  • 웹브라우저가 HTML, CSS, JS 를 해석해 사용자가 볼 수 있도록 하는 것과 비슷하다.
    • ShellWeb Browser
      mkdir samplewww.google.com
      sample 디렉토리를 생성하도록 컴퓨터에 요청구글 홈페이지를 요청

1) 운영체제의 환경변수를 이용한 방법들

섹션 제목: “1) 운영체제의 환경변수를 이용한 방법들”
  • echo $SHELL

    Terminal window
    $ echo $SHELL
    SHELL=/bin/zsh
  • echo $0

    Terminal window
    $ echo $0
    -zsh
  • env | grep SHELL

    Terminal window
    $ env | grep SHELL
    /bin/zsh
  • ps -p $$

    Terminal window
    $ ps -p $$
    PID TTY TIME CMD
    11085 ttys000 0:00.05 -zsh
  • ps -cp $$

    Terminal window
    $ ps -cp $$
    PID TTY TIME CMD
    11085 ttys000 0:00.05 -zsh

현재 사용 중인 Shell 이외에 다른 Shell 을 사용할 수 있는지 확인하는 방법

  • cat /etc/shells

    • etc 디레토리의 shells 라는 파일에는 해당 운영체제에서 사용할 수 있는 Shell 들의 설치 경로가 저장되어 있다.
    • bash, csh 등등 사용할 수 있는 다양한 쉘들의 설치 경로가 출력된다.
    Terminal window
    $ cat /etc/shells
    # List of acceptable shells for chpass(1).
    # Ftpd will not allow users to connect who are not using
    # one of these shells.
    /bin/bash
    /bin/csh
    /bin/dash
    /bin/ksh
    /bin/sh
    /bin/tcsh
    /bin/zsh
    • 최초의 쉘. 대부분의 리눅에서 기본적으로 설치되어 있어 사용할 수 있다.
      • 설치 경로: [/bin/sh]
    • 가장 일반적으로 사용되는 쉘. 리눅스의 기본 쉘이며 ShellScript의 대부분은 Bash를 기반으로 되어있다고 해도 무방하다.
      • 설치 경로 : [/bin/bash]
    • 수 많은 쉘들의 기능을 가지고 있는 확장현 Bourne Shell 이다.
      • 설치 경로 : [/bin/zsh]
    • 유닉스의 기본 쉘. 이름처럼 C 언어를 기반으로 만든 쉘이기에 C 언어의 문법과 유사하다. 강력한 프로그래밍 기능을 가지고 있다.
      • 설치 경로 : [/bin/csh]
    • 설치 경로 : [/bin/ksh]
    • 설치 경로 : [/bin/tcsh]
  • chsh -s ${SHELL_PATH}

    • 위에서 확인했던 쉘 설치 경로를 ${SHELL_PATH} 위치에 넣어 실행한다.

    • Bash Shell 로 변경

      Terminal window
      $ chsh -s /bin/bash
      Password: 비밀번호 입력
  • 기본 쉘이 변경되었는지 확인하기

    • 터미널을 새롭게 시작하여 확인한다.
    Terminal window
    $ echo $SHELL
    /bin/bash

특정 유저의 Default Shell 만 변경하고 싶다면?

섹션 제목: “특정 유저의 Default Shell 만 변경하고 싶다면?”
  • chsh -s ${SHELL_PATH} ${USER_NAME}

    • onejay 유저의 zsh 로 바꾸기
    Terminal window
    $ chsh -s /bin/zsh onejay