У мене є .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 як програми оболонки.
Однією з альтернатив є перейменування сценарію запуску у .profile. Цей файл є джерелом більшості оболонок Unix .
Увімкнути bash:
$ /bin/bash
Змінити оболонку для користувача:
$ sudo usermod -s /bin/bash username
де:
-s, --shell SHELL new login shell for the user account
sudoдоступ до цієї системи? Чому ви надаєте інструкції щодо зміни оболонки для входу іншого користувача?
Щоб зробити будь-яку оболонку за замовчуванням, спочатку перевірте, чи вона встановлена та розпізнана на вашому комп’ютері, переглянувши вміст /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 у своєму введенні пароля, можливо, це запуск вашого терміналу.
Якщо ви намагаєтеся запустити термінал GUI, скажіть, що gnome-terminalви можете очікувати, що оболонка прочитає ваші файли запуску bash. Однак цього не відбувається за умовчанням Ubuntu та, можливо, інших систем.
Те, як я виправив це в Ubuntu, - це редагувати параметри gnome-terminal і встановити команду запуску bash -l. -lкороткий для --login. Це говорить bash до запуску як оболонки для входу, що змушує його завантажувати сценарії запуску, як ви отримуєте під час входу через ssh.
Я впевнений, що для цього є хороше обґрунтування, але я вважаю, що це дивно, і більше ніж трохи дратує, оскільки я ділюся тими ж профілями в системах Linux, cywgin та macos.
~/.profileабо~/.bash_login, як тільки один із трьох знайдений. (Я забув точне замовлення.)