首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GNOME终端是一种非登录外壳吗?

GNOME终端是一种非登录外壳吗?
EN

Unix & Linux用户
提问于 2016-09-05 15:14:07
回答 3查看 2.8K关注 0票数 4

根据Ask Ubuntu对什么是登录和非登录壳?的回答,GNOME终端是一种非登录外壳。正如优秀的书“Fedora和Red Linux实用指南”第6版所指出的:

交互式的非登录shell在~/..bashrc文件中执行命令。默认的~/.bashrc文件调用/etc/bashrc。

因此,/etc/profile将不会在非登录shell中处理。但是,我发现我在PATH变量中附加了java主路径,当我使用GNOME终端并发出命令java时,一切正常。此外,PATH变量的值与我在/etc/profile中定义的值相同。

鉴于上述事实,有冲突,我的理解有什么问题?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2016-09-05 15:41:29

当您通过显示管理器或tty登录到x会话时,/etc/profile (通常--显然是在您的情况下)是由您的shell程序提供的。在此之后,将提供一个本地文件(假设您在这里使用bash ) ~/.bash_profile~/.bash_login~/.profile,这里定义的任何环境变量都将覆盖当前用户的/etc/profile。此环境由您在会话中打开的任何shell继承。这就是为什么我们可以在这些文件中定义环境变量,如您的路径。

打开gnome终端时,默认情况下启动非登录shell,但它继承已经从登录shell或图形shell加载的用户环境。由于~/.bashrc是在启动交互式shell (例如打开gnome终端)时提供的,因此可以使用它覆盖环境的某些元素(如PS1)。

(gnome-终端本身是一个应用程序,而不是shell)

票数 6
EN

Unix & Linux用户

发布于 2016-09-05 15:45:58

短:不

龙:侏儒终端机是终端.你在终端里运行一个外壳。您可以在终端中运行两种类型的shell (登录与否)(尽管gnome终端比其他终端更难运行)。

进一步读:

票数 3
EN

Unix & Linux用户

发布于 2016-09-05 17:32:33

试试这个,它在巴什管用。

代码语言:javascript
复制
shopt -q login_shell && echo " <<< It's a Login Shell >>> " || echo " <<< It's \"NOT\" a Login Shell >>> "

顺便说一下,Gnome终端只是一个终端仿真器(一个应用程序),它使用shell(更确切地说是BASH)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/307990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档