Допустим, я открыл терминал и ввел / выполнил некоторые команды оболочки.
Но я не вызывал явно Bash или любую другую оболочку.
Какая оболочка использовалась по умолчанию?
command-line
Доктор Стрейнджлав
источник
источник
sudo netstat -an | grep LISTEN | grep -v ^unix
. Я не вижу смысла заключать это в подоболочку bash.sudo bash -c "..."
будет гарантировать, что весь канал выполняется корнем.commandA | sudo commandB | commandC
, вы можете сделатьsudo id
первый (запускаетid
команду какroot
, но также получает токен « использовать sudo без запроса пароля », который длится (по умолчанию) 15 минут.chsh
то вы должны выйти и снова войти, чтобы увидеть это изменение.GNU Bash - это оболочка, используемая по умолчанию в терминалах Ubuntu. Однако, когда сценарии выполняются при загрузке системы, используется тире, так как это тире / bin / sh.
Это определено в переменной окружения $ SHELL. Вы можете проверить, набрав
echo $SHELL
в терминале.источник
набрав следующее, вы увидите, в какой оболочке открыт терминал:
Однако, чтобы узнать, в какой оболочке вы сейчас находитесь (возможно, вы ее изменили), наберите
например, вы увидите, что оболочка bash в примере вывода
Другой метод заключается в использовании
это просто вернет имя текущей оболочки.
источник
echo $0
По умолчанию это bash:
В большинстве случаев будет производить
источник
useradd
, по умолчаниюsh
.$ useradd -D|grep SHELL
SHELL=/bin/sh
,Чтобы получить путь к файлу текущего исполняемого файла оболочки, можно использовать
Некоторые возможные выходы:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
источник