首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >shell是由‘`ssh用户名@server`’登录提供的吗?它是执行~/..profile还是~/..bashrc?

shell是由‘`ssh用户名@server`’登录提供的吗?它是执行~/..profile还是~/..bashrc?
EN

Unix & Linux用户
提问于 2018-04-04 21:28:26
回答 1查看 592关注 0票数 -1

来自巴什手册

远程shell守护进程Bash调用时试图确定其标准输入连接到网络连接的运行时间,例如由远程shell守护进程(通常是rshd )或安全shell守护进程sshd执行时。如果Bash确定它是以这种方式运行的,它将从~/.bashrc读取和执行命令,如果该文件存在并且是可读的。如果作为sh调用,它将不会这样做。--norc选项可用于抑制此行为,--rcfile选项可用于强制读取另一个文件,但rshd和sshd通常都不使用这些选项调用shell,也不允许指定它们。

shell是由ssh username@server登录还是非登录提供的?

如果它是一个登录shell,为什么它不执行来自~/.profile的命令,而是根据bash手册从~/.bashrc执行命令?

谢谢。

我的操作系统是Ubuntu16.04,但bash手册并不是操作系统特有的。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-04-04 21:54:01

SSH启动登录shell,就像它的命令中提到的那样:

如果指定了命令,则它将在远程主机上执行,而不是在登录shell上执行。

您可以在Bash中验证这一点

代码语言:javascript
运行
复制
shopt login_shell

它将显示它是否作为登录shell运行。

Bash在远程启动时的行为,无论是作为登录shell还是其他方式,在您引用的部分中都有记录。您比较它的行为是交互壳,远程shell在交互式登录shell行为的基础上添加.bashrc处理。

请注意,Ubuntu系统通常有一个.bash_profile脚本,它优先于.profile,而且在任何情况下它们通常都有.bash_profile.bashrc .

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

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

复制
相关文章

相似问题

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