Mac Gnu-Screen не завантажує типовий .bash_profile


15

У моєму файлі bash_profile є маса спеціальних налаштувань. коли я використовую gnu-screen, я зрозумів, що мої екрани не виконуються source /Users/disappearedng/.bash_profile. Я намагаюся помістити source /Users/disappearedng/.bash_profile у мій файл .screenrc, але потім він скаржиться, що псевдонім не є командою ... (я думаю, що screenrc потребує конкретної команді screenrc).

Я спробував змінити .bash_profile на .profile або .bash_rc. Нічого з цього не працює.

Будь-яка допомога?

Відповіді:


17

Файл .bash_profile (а також файл .profile) завантажується для оболонок входу, а оболонки без входу використовують .bashrc (немає символу). У файлі .screenrc є рядок, який повідомляє екрану, яку оболонку потрібно породити при запуску вікна екрана (коли не запускає конкретну програму як вікно програми). У моєму .screenrc файлі це як таке (включаючи також коментарі):

# shell:  Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
  shell -$SHELL

Перевірте свій .screenrc файл і переконайтеся, що лінія оболонки має тире перед ним. Маючи цей символ тире і примушуючи оболонку входу, ви отримаєте свій .bash_profile. Змінна $ SHELL в моєму .screenrc використовує значення оболонки, передбачене оболонкою, яка запускає екран (як правило, для мене це bash).

У випадку, якщо вам цікаво, найбільша різниця, яку мені вдалося виявити між реєстраційними оболонками та оболонками без входу, полягає в тому, що оболонка без входу, як правило, викликається виконанням сценаріїв.


Ах, дякую! Крім того, чи є спосіб легко повідомити себе, що це поточне вікно знаходиться всередині екрана gnu?
зник

опція hardstatus у файлі .screenrc може бути використана, щоб переконатися, що ви можете виявити, що ви знаходитесь на екрані (разом із деякими іншими чудовими налаштуваннями, я теж розумію). На сторінці чоловіка на екрані повинні бути дані про те, як його налаштувати (не знаю тих, хто знаходиться вгорі голови).
Matrix Mole

3

Sourcing .bash_profile- це щось інше, що робить додаток для терміналів Mac, що не робить більшість термінальних додатків. ~/.bashrcОднак на екрані читається кожен раз, коли ви створюєте нову оболонку.

Якщо ви перейменовуєте свій ~/.bash_profileна ~/.bashrc(без підкреслення між bash та rc, як у вашому запитанні), він буде виданий.

Однак моя краща стратегія полягає в тому, щоб помістити всі мої налаштування в bashrc, а потім вивести з цього джерела bash_profileтак:

[ -f .bashrc ] && . .bashrc

-1

Вам не потрібно змінювати жодний конфігураційний файл, якщо ви записуєте всі свої налаштування .bash_profile, як це зазвичай робиться для налаштування терміналу, і створюєте посилання з назвою, що .bashrcвказує на ваш .bash_profileдля сеансів на екрані через:

$ ln -s ~/.bash_profile ~/.bashrc

Будь-які зміни, внесені до одного з файлів, зберігаються в, .bash_profileале також доступні .bashrc.

Єдиним недоліком є ​​те, що ви не можете додати налаштування лише до одного з конфігураційних файлів.


Чи можете ви трохи розширити цю відповідь? Ви не дуже пояснили, як це вирішить проблему.
bwDraco

-1

Linux вводить оболонки джерела, які не входять в систему, додаючи наступний рядок у випадку файлів користувача:

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

Це рішення вже розміщено.
slhck

Крім того, це, здається, назад.
G-Man каже: "Відновіть Моніку"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.