как сделать bash моей стандартной оболочкой в ubuntu?

<p>у меня есть <code>.bash\_profile</code> в моем домашнем каталоге, но он не запускается при входе в систему. если я сделаю следующее, то все будет так, как я ожидаю:</p><pre><code>ssh myhost bash source ~/.bash\_profile </code></pre><p>но обычно это происходит при входе в систему. мысли?</p>

<p>использование:</p><pre><code>chsh </code></pre><p>введите свой пароль и укажите путь к командной консоли, которую вы хотите использовать.</p><p>для bash это будет <code>/bin/bash</code>. для zsh это будет <code>/usr/bin/zsh</code>.</p>

<p>помимо ответа акиры, вы также можете отредактировать файл <a href="https://en.wikipedia.org/wiki/passwd">/etc/passwd</a> , чтобы указать оболочку по умолчанию.</p><p>вы найдете строку как этот пример:</p><pre><code>john:x:1000:1000:john,,,:/home/john:/bin/sh </code></pre><p>оболочка указана в конце.</p>

<p>включить bash:</p><pre><code>$ /bin/bash изменить оболочку для пользователя:$ sudo usermod -s /bin/bash username </code></pre><p>где:</p><pre><code> -s, --shell shell new login shell for the user account </code></pre>

<p>один из вариантов - переименовать скрипт запуска в .profile. этот файл является источником большинства <a href="https://en.wikipedia.org/wiki/unix\_shell">оболочек unix</a> .</p>

<p>вы можете проверить свою терминальную программу. возможно, он настроен для запуска/bin/sh, а не/bin/bash</p><p>bash выполняет .bash\_profile только для сеансов входа в систему. .bashrc выполняется для всех сеансов bash, а не только для сеансов входа в систему. попробуйте получить .bash\_profile из .bashrc (избегайте циклических зависимостей!) или настройте вашу терминальную программу для запуска/bin/bash -l в качестве программы shell.</p>

<p>в вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. предполагая, что вы уже установили/bin/bash в свой пароль, это может быть способ запуска вашего терминала.</p><p>если вы пытаетесь запустить терминал с графическим интерфейсом, скажем <code>gnome-terminal</code>, вы можете ожидать, что shell прочитает ваши файлы запуска bash. однако этого не происходит в ubuntu и, возможно, в других системах по умолчанию.</p><p>я исправил это в ubuntu, отредактировав настройки терминала gnome и установив для команды запуска значение <code>bash -l</code>. <code>-l</code> - это сокращение от <code>--login</code>. это заставляет bash запускаться как оболочка входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.</p><p>я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили в системах linux, cywgin и macos.</p>