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