터미널의 기본 쉘은 무엇입니까?


51

터미널을 열고 쉘 명령을 입력 / 실행했다고 가정 해 봅시다.

그러나 Bash 또는 다른 쉘을 명시 적으로 호출하지 않았습니다.

기본적으로 어떤 쉘이 사용 되었습니까?

답변:


51

당신의 라인에 지정된 것 /etc/passwd( :분리 된 라인이고 쉘은 마지막 라인입니다).

예를 들어 광산 :

chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash

여기 /bin/bash(우분투 기본값)

당신은 또한 사용할 수 있습니다 chsh:

$ chsh
Password: 
Changing the login shell for chris
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]:

이것은 나에게 쉘이 있다는 것을 알려주고 /bin/bash그것을 바꾸게합니다.

마지막으로 echo $SHELL동일한 작업을 수행합니다.

$ echo $SHELL
/bin/bash

bash라면 왜 sudo bash -c "netstat -an | grep LISTEN | grep -v ^ unix"처럼 명시 적으로 호출되는 이유는 무엇입니까?
DrStrangeLove

나는 그것이 개인적으로 나쁜 명령이라고 생각합니다. 그렇게 한다면 다음과 같이 작성하는 것이 좋습니다 sudo netstat -an | grep LISTEN | grep -v ^unix. 나는 그것을 bash 서브 쉘에 넣을 이유가 없다.
Cesium

2
@DrStrangeLove : 파이프에서 둘 이상의 명령에 루트 권한이 필요한 sudo bash -c "..."경우 전체 파이프가 루트에 의해 실행되도록합니다.
Keith Thompson

루트가 필요한 명령 (및 이유)을 모르는 경우에는 실행하지 않아야합니다. 그렇지 않으면 왜 명령 / 프로그램 / 스크립트를 필요 이상으로 신뢰해야합니까? 당신이 할 수 없다면 commandA | sudo commandB | commandC, 당신은 sudo id처음으로 할 수 있습니다 (로 id명령을 실행 root하지만 (기본값) 15 분 동안 지속되는 " 암호 프롬프트없이 사용 sudo "토큰을
얻습니다

2
사용하는 경우이 변경 사항을 보려면 로그 아웃chsh 한 후 다시 로그인해야합니다 .
닐 트래 프트

17

GNU Bash는 우분투 터미널에서 기본적으로 사용되는 쉘입니다. 그러나 시스템 부팅시 스크립트가 실행되면 / bin / sh 인 대시이므로 dash가 사용됩니다.

이것은 $ SHELL 환경 변수에 정의되어 있습니다. echo $SHELL터미널 에 입력하여 확인할 수 있습니다 .


14

다음을 입력하면 터미널에서 어떤 쉘을 열 었는지 표시됩니다.

echo $SHELL

그러나 현재 사용중인 쉘을 찾으려면 (변경했을 수 있음) 유형

ps -p $$

예를 들어 예제 출력에서 쉘이 bash 임을 알 수 있습니다.

  PID TTY          TIME CMD
 3500 pts/0    00:00:01 bash

다른 방법은

echo $0

이것은 단순히 현재 쉘의 이름을 반환합니다.


단순 +1echo $0
djthoms

좋은 답변입니다! 감사합니다. 어떤 이유로 echo $ SHELL이 작동하지 않고 (항상 그 중 하나를 사용했습니다) 두 대안이 효과가있었습니다. 감사!
wolfdawn

3

기본적으로 bash입니다.

env | grep ^SHELL=

대부분의 경우

SHELL=/bin/bash

반드시 그런 것은 아닙니다. 로 새 사용자를 만들면 useradd기본값은 sh입니다. $ useradd -D|grep SHELL SHELL=/bin/sh.
Sparhawk

+1. 선택한 답변에 타이핑이 덜 필요하지만 항상 무언가를 수행하는 방법이 여러 가지있는 것이 좋습니다.

2

현재 쉘 실행 파일의 파일 경로를 얻으려면

readlink -f /proc/$$/exe

몇 가지 가능한 출력은 다음과 같습니다.

  • /bin/bash
  • /usr/bin/bash
  • /usr/bin/zsh
  • /home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.