.login 和 .cshrc 文件之间的确切区别是什么?

Ano*_*ous 3 login csh

我在互联网上搜索过,网站说我们可以根据需要编辑.cshrc文件,然后执行第一个文件,然后执行.login文件。

那很好,但两者之间的确切区别是什么。请用通俗的话说。谢谢

Gil*_*il' 6

该手册描述了 (t)csh 启动时加载的文件。(T)csh 总是读取.cshrc. .login如果外壳是登录shell,即在登录后的第一个程序。当你在文本控制台上输入您的用户名和密码,或当您使用SSH登录到远程机器,你会得到一个登录shell是只读的。.login是读。当您在 GUI 会话中打开终端时,或者当 shell 运行脚本时,这不是登录 shell,只能.cshrc读取。有关详细信息,请参阅登录 Shell 和非登录 Shell 之间的区别?(这里讨论的是 sh 风格的 shell,而不是 csh;原理是一样的,但文件名不同,.cshrc在脚本中加载的事实是 csh 的特性)。

.login是定义应该在会话开始时完成的事情的地方,例如设置环境变量。.cshrc是设置 shell 参数(例如别名、键绑定等)的地方。请注意 (t)csh.cshrc即使在脚本中也会加载。

请注意,.login当您在图形提示下登录时,它不会执行(除非 GUI 会话基于 csh 脚本,但我从未见过,这是非常不寻常的)。在图形登录上执行的脚本各不相同,但.profile(相当于 sh 的.login)很常见。

在 1980 年代,Csh 是一个比其他人更好的交互式 shell,但它自 1990 年代以来并没有真正发展,并已被 zsh 和 bash 取代。现在不要学csh,你至少已经过时了20年。Bash 已预安装在几乎所有具有 csh 和更多功能的系统上,如果未预安装 zsh,则至少可以作为一个软件包使用。