it-swarm-ru.tech

Как сделать Bash моей стандартной оболочкой в ​​Ubuntu?

У меня есть .bash_profile в моем домашнем каталоге, но он не запускается при входе в систему. Если я сделаю следующее, то все будет так, как я ожидаю:

ssh myhost
bash
source ~/.bash_profile

Но обычно это происходит при входе в систему. Мысли?

90
James A. Rosen

Использование:

chsh

Введите свой пароль и укажите путь к командной консоли, которую вы хотите использовать.

Для Bash это будет /bin/bash. Для Zsh это будет /usr/bin/zsh.

155
akira

Помимо ответа Акиры, вы также можете отредактировать файл /etc/passwd , чтобы указать оболочку по умолчанию.

Вы найдете строку как этот пример:

john:x:1000:1000:john,,,:/home/john:/bin/sh

Оболочка указана в конце.

35
John T

Включить bash:

$ /bin/bash

Изменить оболочку для пользователя:

$ Sudo usermod -s /bin/bash username

где:

  -s, --Shell SHELL             new login Shell for the user account
2
Umanshield

Один из вариантов - переименовать скрипт запуска в .profile. Этот файл является источником большинства оболочек Unix .

2
mathk

Вы можете проверить свою терминальную программу. Возможно, он настроен для запуска/bin/sh, а не/bin/bash

Bash выполняет .bash_profile только для сеансов входа в систему. .bashrc выполняется для всех сеансов bash, а не только для сеансов входа в систему. Попробуйте получить .bash_profile из .bashrc (избегайте циклических зависимостей!) Или настройте вашу терминальную программу для запуска/bin/bash -l в качестве программы Shell.

2
Tadeusz A. Kadłubowski

В вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. Предполагая, что вы уже установили/bin/bash в свой пароль, это может быть способ запуска вашего терминала.

Если вы пытаетесь запустить терминал с графическим интерфейсом, скажем gnome-terminal, вы можете ожидать, что Shell прочитает ваши файлы запуска bash. Однако этого не происходит в Ubuntu и, возможно, в других системах по умолчанию.

Я исправил это в Ubuntu, отредактировав настройки терминала gnome и установив для команды запуска значение bash -l. -l - это сокращение от --login. Это заставляет bash запускаться как оболочка входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.

Я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили в системах linux, cywgin и macos.

0
edk750