У меня есть .bash_profile
в моем домашнем каталоге, но он не запускается при входе в систему. Если я сделаю следующее, то все будет так, как я ожидаю:
ssh myhost
bash
source ~/.bash_profile
Но обычно это происходит при входе в систему. Мысли?
У меня есть .bash_profile
в моем домашнем каталоге, но он не запускается при входе в систему. Если я сделаю следующее, то все будет так, как я ожидаю:
ssh myhost
bash
source ~/.bash_profile
Но обычно это происходит при входе в систему. Мысли?
Ответы:
Использование:
chsh
Введите свой пароль и укажите путь к оболочке, которую вы хотите использовать.
Для Баша это было бы /bin/bash
. Для Zsh это было бы /usr/bin/zsh
.
sudo chsh -s /bin/bash username
Помимо ответа Акиры, вы также можете отредактировать файл / etc / passwd, чтобы указать оболочку по умолчанию.
Вы найдете строку как этот пример:
john:x:1000:1000:john,,,:/home/john:/bin/sh
Оболочка указана в конце.
/etc/passwd
и вы осторожны, ответ Джона заключается в правильном использовании инструментов, предоставляемых системой.
Вы можете проверить свою терминальную программу. Возможно, он настроен для запуска / 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
sudo
доступ к этой системе? Почему вы предоставляете инструкции по изменению оболочки входа другого пользователя?
Один из вариантов - переименовать скрипт запуска в .profile. Этот файл является источником большинства оболочек Unix .
Чтобы сделать любую оболочку по умолчанию, сначала убедитесь, что она установлена и распознана на вашем компьютере, просмотрев содержимое /etc/shells
:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/fish
Затем используйте chsh
для изменения вашей оболочки:
$ sudo chsh -s /usr/bin/bash $(whoami) # or sudo chsh -s /bin/bash $(whoami)
В вашем вопросе недостаточно информации, чтобы я мог сказать наверняка, но раньше я сталкивался с той же проблемой. Предполагая, что вы уже установили / bin / bash в свой пароль, это может быть способ запуска вашего терминала.
Если вы пытаетесь запустить терминал с графическим интерфейсом, возможно, gnome-terminal
вы ожидаете, что оболочка прочитает ваши файлы запуска bash. Однако этого не происходит в Ubuntu и, возможно, в других системах по умолчанию.
Я исправил это в Ubuntu, отредактировав настройки терминала gnome и установив команду запуска на bash -l
. -l
это сокращение от --login
. Это указывает bash на запуск в качестве оболочки входа в систему, что заставляет его загружать сценарии запуска, которые вы получаете при входе через ssh.
Я уверен, что есть хорошая причина для того, чтобы быть таким, какой он есть, но я нахожу это удивительным и более чем раздражающим, поскольку я использую одни и те же профили в системах linux, cywgin и macos.
~/.profile
или~/.bash_login
, так как только один из трех источников. (Я забыл точный заказ.)