Mac Gnu-Screen не загружается по умолчанию .bash_profile

14

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

Я попытался изменить мой .bash_profile на .profile или .bash_rc. Ничего из этой работы.

Любая помощь?

disappearedng
источник

Ответы:

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 может быть использована, чтобы помочь вам удостовериться, что вы можете определить, что вы находитесь на экране (наряду с некоторыми другими изящными настройками, как я понимаю). На странице man экрана должны быть подробные сведения о том, как ее настроить (не знаю, как это происходит в моей голове).
Матрица Крот
2

На .bash_profileсамом деле Sourcing - это нечто иное, чем терминальное приложение для Mac, и большинство терминальных приложений этого не делают. Экран, ~/.bashrcоднако, читает каждый раз, когда вы создаете новую оболочку.

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

Однако моя предпочтительная стратегия - поместить все мои настройки в bashrc, а затем получить исходный код, bash_profileнапример:

[ -f .bashrc ] && . .bashrc
Freedom_Ben
источник
-1

Вам не нужно изменять какой-либо конфигурационный файл, если вы записываете все свои настройки .bash_profile, как вы обычно делаете для настройки терминала, и создаете ссылку с .bashrcуказанием на вас .bash_profileдля сеансов экрана через:

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

Любые изменения, внесенные в один из файлов, сохраняются, .bash_profileно также доступны .bashrc.

Единственным недостатком является то, что вы не можете добавить настройки только в один из файлов конфигурации.

tarkness
источник
Можете ли вы немного расширить этот ответ? Вы действительно не объяснили, как это решит проблему.
bwDraco
-1

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

[[ -f ~/.bashrc ]] && . ~/.bashrc
FreeFog
источник
Это решение уже было опубликовано.
Slhck
Кроме того, это, кажется, назад.
G-Man говорит: «Восстановите Монику»