输出

输出

.bash_profile我在Ubuntu 14.04的目录中找不到/home/user。我使用ls -a命令查看了.bash_profile,但没有这样的文件。

答案1

Ubuntu 使用~/.profile

.bash_profile您可以在 Ubuntu 中创建您的,但.profile不会被读取。

如果我们读取 .profile 内容:

cat ~/.profile

输出

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.

~/.profile因此使用~/.bash_profile

答案2

当调用登录 shell 时,bash 将按以下顺序查找其配置文件:

[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile

找到第一个之后,它会停止寻找其他的,所以如果.bash_profile我的 bash 中有一个$HOME,它就不会再寻找.bash_login和了.profile

从这三个文件名来看,Ubuntu 默认使用,您可以根据需要.profile将其重命名为:.bash_profile

mv ~/.profile ~/.bash_profile

现在,如果我们使用bash -lsu - $USERsudo -u $USER -i任何其他以登录 shell 形式运行 bash 的命令打开一个新的 bash shell,~/.bash_profile就会获得来源。

需要注意的是:

到目前为止我所谈论的仅适用于 Bash 本身,当您从 GUI 登录系统时,显示管理器负责获取正确的文件。

Ubuntu 使用gdm3作为其显示管理器,如果我们看一下:/etc/gdm3/Xsession我们可以看到,除了以下内容之外,没有任何文件会被获取.profile

# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
  if [ -f "$file" ]; then
    source_with_error_check "$file"
  fi
done

因此,如果您使用 GUI 登录,请保留该文件的.profile名称,否则您可能会错过环境中的某些变量和设置。

我想更好的选择是创建一个符号链接到.profile

ln -s ~/.profile ~/.bash_profile

现在您的数据存储在 中.profilegdm不会遗漏任何内容,bash 加载的.bash_profile实际上是.profile,通过编辑它们每一个,您会得到相同的结果。

缺少 .profile?

如果你没有,.profile请从这里获取一份副本:

cp /etc/skel/.profile ~/.profile

或者

# Remember the note above
cp /etc/skel/.profile ~/.bash_profile

答案3

这意味着文件不存在。但是,bash如果以登录 shell 的形式调用,则可以创建文件并执行/获取文件bash。因此,每次您通过 shell 登录时(例如通过ssh)。

如果您希望每次打开终端时执行内容,那么您应该修改文件.bashrc

答案4

如果您指的是 .bashrc,您会在主文件夹中找到它。如果它不在那里,您可以将其从 /etc/skel 文件夹复制到您的主文件夹中。

如果您需要有关此主题的更多信息,请访问 stefaan lippens 页面。

http://stefaanlippens.net/bashrc_and_others

相关内容