Что такое оболочка по умолчанию для терминала?

40

Предположим, я открыл терминал и ввел / выполнил некоторые команды оболочки.

Но я не вызывал явно Bash или любую другую оболочку.

Какую оболочку использовали по умолчанию?

    
задан DrStrangeLove 14.12.2011 в 23:13
источник

5 ответов

40

Тот, который указан в вашей строке в /etc/passwd (это строка, разделенная на : , и оболочка является окончательной).

Например, mine:

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

Здесь это /bin/bash (по умолчанию Ubuntu)

Вы также можете использовать 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
    
ответ дан Caesium 14.12.2011 в 23:21
16

GNU Bash - это оболочка, используемая по умолчанию в терминалах на Ubuntu. Однако, когда скрипты выполняются при загрузке системы, используется тире, так как это тире, это / bin / sh.

Это определено в переменной окружения $ SHELL. Вы можете проверить, набрав echo $SHELL в терминале.

    
ответ дан Anonymous 14.12.2011 в 23:21
13

введите следующую информацию, которая отобразит оболочку, открытую терминалом:

echo $SHELL

Однако, чтобы узнать, в какой оболочке вы сейчас находитесь (возможно, вы ее изменили) введите

ps -p $$

например. вы увидите, что оболочка bash в примере output

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

Другим методом является использование

echo $0

это просто вернет имя текущей оболочки.

    
ответ дан fossfreedom 14.12.2011 в 23:24
3

По умолчанию это bash:

env | grep ^SHELL=

В большинстве случаев будет производиться

SHELL=/bin/bash
    
ответ дан wojox 14.12.2011 в 23:24
2

Чтобы получить путь к файлу текущего исполняемого файла оболочки, вы можете использовать

readlink -f /proc/$$/exe

Некоторые возможные выходы:

  • /bin/bash
  • /usr/bin/bash
  • /usr/bin/zsh
  • /home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
ответ дан Victor Yarema 30.11.2016 в 08:39