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. Ничего из этой работы.

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

Ответы:


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

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