.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.