85

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

ssh myhost
bash
source ~/.bash_profile

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

6 ответов6

148

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

chsh

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

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

34

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

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

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

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

2

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

2

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

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

1

Включить bash:

$ /bin/bash

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

$ sudo usermod -s /bin/bash username

где:

  -s, --shell SHELL             new login shell for the user account
0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .