.profile не працює, коли я запускаю bash-термінал


16

Коли я запускаю термін bash, мій .profile не виконується. У мене немає ~ / .bash_profile або ~ / .bash_login, тому .profile повинен працювати, правда? Що ще може бути не так?

Відповіді:


24

Це не оболонка для входу.

Якщо оболонка - оболонка для входу, вона шукатиме .bash_profile, якщо вона існує, то .profile. Інші снаряди шукають .bashrc

Отже, ви можете помістити потрібні речі в кожен екземпляр оболонки в .bashrc і, можливо, мати посилання, що джерела .bashrc в .profile.

Отже: .bashrc:

stuff you want

кінець .profile:

[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc

Тож коли я запускаю 'konsole' в KDE, це оболонка без входу, правда? На іншій машині я, безумовно, вклав речі в .profile і змусив їх працювати, коли я відкриваю такий термінал - я думаю, я не розумію, коли ви хочете, щоб при вході в систему, коли ви відкривали термінал, сталося щось інше?
Девід Дорія

@DavidDoria це залежить, я змінив конфігурацію або зробив псевдоніми для того, що konsole працює, щоб змусити його працювати bash --login. У вашому випадку, здається, просто запустіть bash, який за замовчуванням не запустить оболонку входу
Rich Homolka

Якщо ви використовуєте LightDM, це може бути причиною. Інші менеджери дисплеїв, такі як GDM та KDM source .profile при вході в систему, але LightDM цього не роблять (за задумом). Дивіться bugs.debian.org/cgi-bin/bugreport.cgi?bug=636108
jhenninger

Я використовую KDM.
Девід Дорія

2
Якщо ви використовуєте Gnome Terminal, ви можете виконати Правка-> Налаштування профілю, перейдіть на вкладку Назва і Команда і встановіть прапорець "Запустити команду як оболонку входу". Потім він буде джерелом вашого .bash_profile або .profile кожного разу, коли ви відкриєте термінал, як очікувалося.
Ламбарт

4

спробуйте використовувати ~/.bashrcзамість цього.


1

Якщо ви використовуєте графічний робочий стіл, .profile повинен знаходитись у вашому менеджері настільних ПК. Lightdm робить джерело .profile зараз, принаймні, на Ubuntu. Дивіться: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315

За допомогою kdm та Kubuntu-12.04 файл / etc / kde4 / kdm / Xsession отримується, що робить .profile у тому числі. Kubuntu-12.10, ймовірно, буде використовувати lightdm. Ubuntu 12.04 використовує lightdm, щоб / usr / sbin / lightdm-сеанс джерела .profile.

Я думаю, що шлях - це (1) встановити / експортувати налаштування середовища в ~ / .profile та (2) .profile, створений .bash_profile:

[[ -f ~/.profile ]] && . ~/.profile

(і не має .bashrc, джерелом якого є будь-який .profile або .bash_profile).

Дивись також:


1
Це пояснює, як отримати .profileджерело під час входу, але він насправді цікавиться, як отримати bashджерело, коли він запускає термінал (не під час входу)
cpast

Не потрібно мати, щоб .profile створювався під час запуску нового терміналу (з KDE). Вся мета .profile полягає в тому, щоб він був розміщений один раз під час входу, або на графічному терміналі, або на текстовому терміналі; .profile повинен був бути отриманий з моменту входу в KDE.
Фредді Вулто

.profile повинен знаходитись на вашому менеджері робочого столу. Ну, це залежить від розуміння мети файлу. У Debian, / etc / profile (і ~ / .profile як його розширення) призначений для bash-подібних оболонок .
Алоїс Магдал

Вам не потрібно знову вводити його, якщо його знайдено під час входу. ваш баш буде успадковувати його, якщо ви не робите щось нерозумно на кшталт "експортувати PATH = ~ / .bin" або щось, що викликає його перезапис.
RichieHH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.