ubuntu:缺少 profile.d 和 .bash_profile

ubuntu:缺少 profile.d 和 .bash_profile

我阅读了一些关于 Linux 启动等方面的资料,并注意到在我的主目录中没有一个文件夹profile.d

/home/user/profile.d/ # Doesn't exists

也不是文件.bash_profile

/home/user/.bash_profile # Doesn't exists

是否有一个原因?

Ubuntu 15.04,gnome

答案1

简短回答:沒有問題。

有许多初始化用户文件,因为用户可以决定以多种不同的方式登录计算机帐户,从控制台,使用交互式或非交互式 shell,使用不同类型的 shell。这不是所有用户的特权,但需要保持向后兼容性它已经变得复杂了一点这些事。 :-)

  • 目录profile.d 不应该在你的主目录下
    /etc/profile.d包含特定于应用程序的启动文件的脚本,这些脚本也会在启动时由 shell 执行。它是对所有用户都有效的目录,因此它会在路径下创建,/etc/而不是在每个用户主目录下创建。

  • 该文件~/.bash_profile是个人初始化文件之一,当其存在时,存储在每个用户主目录中。但它的存在并不是必需的。它应该包含启动登录 shell 时要运行的 bash 特定的命令(~/.profile也可以从不同的 shell 读取,这些 shell 通常理解与 bash 不同的语法)。


阅读更多INVOCATION内容man bash

当 bash 作为交互式登录 shell 调用时 (...)它首先从文件中读取并执行命令/etc/profile,如果该文件存在。
读取该文件后,它会查找~/.bash_profile~/.bash_login~/.profile以该顺序,并读和 从第一个存在且可读的命令开始执行

因此,如果您有一个~/.bash_profile文件,它将不会被读取~/.profile,如果没有在其他文件之一中调用(或获取)。

注意

当启动非登录 shell 的交互式 shell 时,bash 将从/etc/bash.bashrc和读取并执行命令~/.bashrc(如果这些文件存在)。

从 Ubuntu 12 的某个版本(当然还有 13.10)中.profile获取~/.bashrc

当运行登录 shell 时(比如ssh进入机器时),这可能会导致用户不希望出现的意外行为~/.bashrc

参考:

相关内容