현재 Shell 확인 - hyeonjae Shell hwag-in

가장 정확한 확인 방법은 아래와 같음

[명령어]

echo $0

해당 shell의 위치를 확인하는 방법

[명령어]

which sh

이러한 환경에서 shell script를 사용 시 

sh /test.sh 와 같이 사용해야 정상 동작함

아니면 shell script 파일에서 script를 다음과 같이 지정해야 

./test.sh로 실행 가능

[결과]

#!/test/sh  로 입력하면 ./test.sh로 실행가능

만약 shell script 적성 시 일반적인 경로인

#!/bin/bash

로 잡혀있다면 안됨

환경 변수를 통해 확인하는 방법

하지만 실제 사용하는 shell과는 다를 수 있음.

위의 방법으로 확인하는게 더 정확함.

[명령어]

echo $SHELL

해당 환경은 chroot와 busybox를 통해

sh shell을 사용하는 환경인데

echo 로 환경변수 조회 시 실제 host의 환경변수를 읽어와서

/bin/bash를 출력함

실제 host는 해당 /bin/bash shell을 사용하지만

chroot로 들어온 cmd는 sh를 사용함으로 틀린 정보가 출력됨.

만자로 리눅스에서 sudo update-grub 명령어가 정상적으로 실행되지 않는 문제를 겪었는데, 그것이 sh bash zsh 등의 shell 관련 문제인지 확인하고 싶었습니다. Manjaro Linux 최신 버전을 다운로드 했더니 zsh가 기본으로 활성화되어 있는데 3년 전에 설치했던 만자로 리눅스는 zsh가 아니었거든요.

현재 사용중인 shell 확인 방법

▼ 리눅스에서 현재 사용 중인 shell을 확인하는 방법은 아래의 스크린샷을 참고하세요.

echo \$SHELL

grep 계정명 /etc/passwd

터미널 창에 둘 중 하나의 명령어를 입력해보면 됩니다. SHELL은 반드시 대문자로 입력하세요.

위 스크린샷 기준으로 저는 bash를 사용 중이고, 해당 셸은 /bin/ 경로에 있다고 합니다.

현재 설치되어 있는 shell의 종류 확인 방법

현재 내 PC에 설치된 shell이 어떤 것이 있는지 확인하면 zsh 같은 쉘을 설치해야 되는지 변경만 하면 되는지 쉽게 파악할 수 있겠지요?

▼ cat /etc/shells 라고 명령어를 입력하면 됩니다. /etc/shells 파일의 내용에 현재 설치된 shell의 종류가 기록되어 있더군요.

▼ chsh -l 이라고 쳐봐도 되겠군요.

사용 쉘 바꾸기 명령어 : chsh

눈치 빠른 분은 /etc/passwd 파일을 수정해서 계정명 옆에 기록된 shell 종류를 바꾸면 된다고 생각하실 겁니다. 가능한 방법이에요.

▲ 저의 경우, /bin/bash 를 /bin/zsh 로 바꾸면 되겠군요.

하지만 /etc/passwd 파일의 내용을 잘못 건들면 일이 커질 수 있기 때문에, chsh 명령어를 이용하여 shell 종류를 바꾸는 것이 좋다고 생각합니다.

▼ "sudo chsh -s /bin/zsh 계정명" 이런 식으로 입력하면 됩니다.

재부팅하면 적용될 겁니다.

▼ 사실, 만자로 리눅스는 /usr/share/konsole/Breaeh.profile 파일 안에 터미널창(konsole)이 어떤 shell을 사용할지를 정의하고 있기 때문에 굳이 chsh 명령어로 쉘을 바꿀 필요가 없긴 합니다.

구리의 창고

Linux

Ubuntu 현재 쉘(Shell) 확인하기

구리z 2017. 7. 6. 17:30

소개

Ubuntu에서 사용가능한 쉘을 확인하는 방법과 현재 쉘을 확인하는 방법을 말하려고 한다.

쉘 목록 보기

$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/tmux /usr/bin/screen

현재 쉘 보기

Toplist

최신 우편물

태그