Лучше использовать команду 'chsh', как предложено akira - меньше шансов что-то испортить по ошибке.
Ларс Хаугсет
5
не говоря уже о том, что «chsh» доступен, когда вы не можете написать в / etc / passwd
quackote quixote
1
Но если у вас есть доступ к изменению /etc/passwdи вы осторожны, ответ Джона заключается в правильном использовании инструментов, предоставляемых системой.
AJP
3
Вы должны выйти и снова войти, чтобы увидеть это изменение.
Нил Трафт
2
Если вы используете сервер без пользовательских паролей - предоставляя доступ только через открытые / закрытые ssh-ключи ... это также имеет большой смысл. chsh требует пароль.
Кит Джон Хатчисон
4
Вы можете проверить свою терминальную программу. Возможно, он настроен для запуска / bin / sh, а не / bin / bash
Bash выполняет .bash_profile только для сеансов входа в систему. .bashrc выполняется для всех сеансов bash, а не только для сеансов входа в систему. Попробуйте получить .bash_profile из .bashrc (избегайте циклической зависимости!) Или настройте вашу терминальную программу для запуска / bin / bash -l в качестве программы оболочки.
(1) Что вы подразумеваете под «включить bash»? (2) Пользователь хочет изменить свою собственную оболочку входа в систему в удаленной системе. Почему вы предполагаете, что он имеет sudoдоступ к этой системе? Почему вы предоставляете инструкции по изменению оболочки входа другого пользователя?
G-Man
Использование chsh (как предложено выше) не работает для меня. Эта команда сделала!
за Линдберга
2
Один из вариантов - переименовать скрипт запуска в .profile. Этот файл является источником большинства оболочек Unix .
Чтобы сделать любую оболочку по умолчанию, сначала убедитесь, что она установлена и распознана на вашем компьютере, просмотрев содержимое /etc/shells:
В вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. Предполагая, что вы уже установили / bin / bash в свой пароль, это может быть способ запуска вашего терминала.
Если вы пытаетесь запустить терминал с графическим интерфейсом, возможно, gnome-terminalвы ожидаете, что оболочка прочитает ваши файлы запуска bash. Однако этого не происходит в Ubuntu и, возможно, в других системах по умолчанию.
Я исправил это в Ubuntu, отредактировав настройки терминала gnome и установив команду запуска на bash -l. -lэто сокращение от --login. Это указывает bash на запуск в качестве оболочки входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.
Я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили в системах linux, cywgin и macos.
~/.profile
или~/.bash_login
, так как только один из трех источников. (Я забыл точный заказ.)Ответы:
Использование:
Введите свой пароль и укажите путь к оболочке, которую вы хотите использовать.
Для Баша это было бы
/bin/bash
. Для Zsh это было бы/usr/bin/zsh
.источник
sudo chsh -s /bin/bash username
Помимо ответа Акиры, вы также можете отредактировать файл / etc / passwd, чтобы указать оболочку по умолчанию.
Вы найдете строку как этот пример:
Оболочка указана в конце.
источник
/etc/passwd
и вы осторожны, ответ Джона заключается в правильном использовании инструментов, предоставляемых системой.Вы можете проверить свою терминальную программу. Возможно, он настроен для запуска / bin / sh, а не / bin / bash
Bash выполняет .bash_profile только для сеансов входа в систему. .bashrc выполняется для всех сеансов bash, а не только для сеансов входа в систему. Попробуйте получить .bash_profile из .bashrc (избегайте циклической зависимости!) Или настройте вашу терминальную программу для запуска / bin / bash -l в качестве программы оболочки.
источник
Включить bash:
Изменить оболочку для пользователя:
где:
источник
sudo
доступ к этой системе? Почему вы предоставляете инструкции по изменению оболочки входа другого пользователя?Один из вариантов - переименовать скрипт запуска в .profile. Этот файл является источником большинства оболочек Unix .
источник
Чтобы сделать любую оболочку по умолчанию, сначала убедитесь, что она установлена и распознана на вашем компьютере, просмотрев содержимое
/etc/shells
:Затем используйте
chsh
для изменения вашей оболочки:Рекомендации
источник
В вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. Предполагая, что вы уже установили / bin / bash в свой пароль, это может быть способ запуска вашего терминала.
Если вы пытаетесь запустить терминал с графическим интерфейсом, возможно,
gnome-terminal
вы ожидаете, что оболочка прочитает ваши файлы запуска bash. Однако этого не происходит в Ubuntu и, возможно, в других системах по умолчанию.Я исправил это в Ubuntu, отредактировав настройки терминала gnome и установив команду запуска на
bash -l
.-l
это сокращение от--login
. Это указывает bash на запуск в качестве оболочки входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.Я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили в системах linux, cywgin и macos.
источник