У меня есть домашний каталог .bash_profile
, но он не запускается при входе в систему. Если я сделаю следующее, то все будет так, как я ожидаю:
ssh myhost
bash
source ~/.bash_profile
Но обычно это происходит при входе в систему. Мысли?
Использование:
chsh
Введите свой пароль и укажите путь к оболочке, которую вы хотите использовать.
Для Bash это будет /bin/bash
.
Для Zsh это будет /usr/bin/zsh
.
Помимо ответа Акиры, вы также можете отредактировать файл /etc/passwd, чтобы указать оболочку по умолчанию.
Вы найдете строку как этот пример:
john:x:1000:1000:john,,,:/home/john:/bin/sh
Оболочка указана в конце.
Один из вариантов - переименовать ваш загрузочный скрипт в .profile. Этот файл является источником большинства оболочек Unix.
Вы можете проверить свою терминальную программу. Возможно, он настроен для запуска /bin /sh, а не /bin /bash
Bash выполняет .bash_profile только для сеансов входа в систему. .bashrc выполняется для всех сеансов bash, а не только для сеансов входа в систему. Попробуйте поискать .bash_profile из .bashrc (избегайте циклической зависимости!) или настройте вашу терминальную программу для запуска /bin /bash -l в качестве программы оболочки.
Включить bash:
$ /bin/bash
Изменить оболочку для пользователя:
$ sudo usermod -s /bin/bash username
где:
-s, --shell SHELL new login shell for the user account
В вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. Предполагая, что вы уже установили /bin /bash в свой пароль, это может быть способ запуска вашего терминала.
Если вы пытаетесь запустить терминал с графическим интерфейсом, скажем, gnome-terminal
вы можете ожидать, что оболочка прочитает ваши файлы запуска bash. Однако это не происходит в Ubuntu и, возможно, в других системах по умолчанию.
Я исправил это в Ubuntu, отредактировав настройки терминала gnome и установив команду запуска bash -l
. -l
это сокращение от --login
. Это указывает bash на запуск в качестве оболочки входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.
Я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили для систем Linux, Cywgin и MacOS.