Предположим, я открыл терминал и ввел / выполнил некоторые команды оболочки.
Но я не вызывал явно Bash или любую другую оболочку.
Какую оболочку использовали по умолчанию?
Предположим, я открыл терминал и ввел / выполнил некоторые команды оболочки.
Но я не вызывал явно Bash или любую другую оболочку.
Какую оболочку использовали по умолчанию?
Тот, который указан в вашей строке в /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
GNU Bash - это оболочка, используемая по умолчанию в терминалах на Ubuntu. Однако, когда скрипты выполняются при загрузке системы, используется тире, так как это тире, это / bin / sh.
Это определено в переменной окружения $ SHELL. Вы можете проверить, набрав echo $SHELL
в терминале.
введите следующую информацию, которая отобразит оболочку, открытую терминалом:
echo $SHELL
Однако, чтобы узнать, в какой оболочке вы сейчас находитесь (возможно, вы ее изменили) введите
ps -p $$
например. вы увидите, что оболочка bash в примере output
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Другим методом является использование
echo $0
это просто вернет имя текущей оболочки.
По умолчанию это bash:
env | grep ^SHELL=
В большинстве случаев будет производиться
SHELL=/bin/bash
Чтобы получить путь к файлу текущего исполняемого файла оболочки, вы можете использовать
readlink -f /proc/$$/exe
Некоторые возможные выходы:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh