Как переключиться с неизвестной оболочки на bash?

Я был удивлен, что не нашел этот вопрос на сайте. Итак, сегодня $ появился после того, как я вошел в систему как новый пользователь. Это было неожиданно, потому что мой основной пользовательский запрос начинается с username@computername:~$.

Итак, как мне переключиться с этой другой оболочки на bash?

Комментарии к вопросу (8)
Решение

Предполагая, что неизвестная оболочка поддерживает выполнение абсолютной команды, вы можете попробовать: /bin/bash

Чтобы изменить оболочку по умолчанию, я бы использовал chsh(1). Пример использования: chsh -s /bin/bash $USER.

Комментарии (3)

Вы вводите bash. Если вы хотите, чтобы это было постоянно, измените оболочку по умолчанию на /bin/bash, отредактировав /etc/passwd.

Вот несколько фрагментов из моей /etc/passwd:

avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin

Самое последнее поле содержит оболочку, изменение поля после последнего : на допустимую или недопустимую оболочку будет работать. /bin/false и /sbin/nologin означают, что у пользователя нет настоящей оболочки для входа в систему, хотя если pam настроен неправильно, это не означает, что он не может войти в систему (я сообщал об ошибке в Arch Linux, потому что вы можете войти в систему графически, не имея оболочки для входа). /bin/bash и /bin/zsh - оба допустимые оболочки, смотрите /etc/shells для списка допустимых оболочек в ваших системах. Вот мой /etc/shells, если вам интересно.

/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash

Да, вы можете использовать chsh или usermod для выполнения тех же действий, пожалуйста, помните, что это просто структурированные текстовые файлы, и TIMTOWTDI.

Комментарии (3)

Если chsh или ручное редактирование конфигурации не работает, но при входе в систему выполняется скрипт ~/.profile, добавьте эту строку:

exec /bin/bash --login
Комментарии (3)