У мене є .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
, як тільки один із трьох знайдений. (Я забув точне замовлення.)