在 .bash_rc
或 .bash_profile
中进行更改后,当我启动 GNU screen 时,它无法识别这些更改。
我可以
source ~/.bash_profile
它适用于我打开的当前 screen 窗口,但我必须对我打开的每个 screen 窗口都这样做。
如何在 screen 上读取我对 bash 配置的最新更改?
最佳答案
如果您希望 screen 始终将您的 shell 视为登录 shell,并获取正常启动新 shell 时将读取的相同文件,请将以下内容添加到 ~/.screenrc
(或者可能是 ~/.byobu/.screenrc
,正如评论中所指出的):
shell -$SHELL
这样,您无需在每次启动新 screen 时手动告诉它获取您的文件。如果您只是进行了更改并希望这些更改反射(reflect)在您当前的 screen 中,那么您将不得不这样做。
可以在 here 找到这方面的文档(以及许多其他 screen 细节) .基本上,shell
是一个 screen 命令,告诉它在需要创建新 shell 时运行以下命令。 $SHELL
是保存首选shell 路径的常用变量。 $SHELL
前面的破折号 -
表示它应该作为登录 shell 运行(这通常意味着它获取您的 ~/.bash_profile
等)。
然而,值得指出的是,screen 默认只从您启动 screen 的 shell 继承大多数环境变量;登录子 shell 可能会以意想不到的方式改变一些环境变量。我遇到了一种情况,我的 $PATH 的元素基本上被置换了。感谢this particularly excellent answer,我解决了这个问题在 super 用户上。
您可能会注意到可用的 source
命令。需要注意的是,这会获取 screen
命令文件,而不是 shell 命令。其他相关( screen )命令包括 eval
和 exec
.
关于linux - 如何让 GNU screen 读取 .bash_profile/.bash_rc 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6945534/
相关文章:
php - 脚本 "/home/...../public_html/index.php"的 UID
windows - Node.js 开发,windows 还是 linux?
linux - 如果关键字触发然后执行命令,Shell 脚本来监视日志文件?
linux - 是否有一个 linux 命令来确定与给定进程 ID 关联的窗口 ID?
python - 如何在 Python 中监听 Linux 中的 'usb device inser
c++ - 如何在 Linux 中找到 'temp' 目录?
php - 根据外部请求在 Netbeans 中启动 XDebug