Я щодня використовую екран для потреб своїх терміналів, і я цілком задоволений цим. В останній час , хоча, я зробив деякі оновлення мої файли конфігурації Баш , і я помітив , що я встановлював різні PATH
елементи ( PATH
, MANPATH
, INFOPATH
і т.д.) в 2 -х місцях. Я змінив файли такими, якими вони повинні бути, і тепер усі мої змінні середовища встановлюються один раз .bash_profile
. У цьому криється моя проблема.
Мабуть, причиною того, що я встановлював їх у двох місцях, було через екран. на екрані, як видається, виконується тільки він, .bashrc
і не здається, що він міг наслідувати мої PATH
або будь-які інші змінні середовища з моєї оригінальної оболонки bash. Оскільки він лише виконується, .bashrc
і тепер я встановлюю лише свої змінні .bash_profile
, я отримую неповне PATH
.
Отже, моє питання полягає в тому, як повернути мої змінні середовища на екран без дублювання. Читання Bash
документів немовби вказує на те, що це може бути така форма оболонки, якою використовується екран для входу, тобто інтерактивна оболонка без входу, але я не міг зрозуміти, як змусити екран використовувати певний тип оболонки, лише оболонки для використання через -s /bin/bash
.
Ви можете ознайомитися з моїми конфігураційними файлами на моїй сторінці GitHub . Це фіксація, яка зламала екран .
EDIT: Я використовую, Screen version 4.00.03 (FAU) 23-Oct-06
і я схильний викликати цеscreen -h 50000
EDIT: Зараз я міг перевірити це на Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686
, Screen version 4.00.03 (FAU) 23-Oct-06
), і це проявляє іншу поведінку, ніж на моєму Mac.
Конкретна поведінка, яку я зараз виявив, полягає в тому, що в Cygwin зміни, які я вношу PATH
в .bash_profile, дублюються при вході на екран, а потім послідовні створення вікон екрана не дублюють шлях, а повторюють .bash_profile.
Для ілюстрації поведінки, про яку я говорю:
Вихід із свіжого терміналу:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Виведення з першого виклику екрана:
[~]$ screen -h 50000 -s -/bin/bash
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Наступні дзвінки на C-a c
:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Ти можеш бачити