.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 -l
、su - $USER
或sudo -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
现在您的数据存储在 中.profile
,gdm
不会遗漏任何内容,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 页面。