我找不到我的 .bash_login 和 .bash_profile
root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~#
每个用户是否总是只有一个 .bashrc 和 .bash_profile 文件?
并且,.bashrc 和 .bash_profile 总是在 /home/“用户名”目录中找到吗?
答案1
bash 默认情况下唯一查看的是用户的主目录,是的。 Linux 中它们通常也有一个单一来源——/etc/skel。不过,用户的主目录不必位于 /home 下。
我看到您已编辑问题以询问 .bash_login 和 .bash_profile 文件在哪里。根据#
提示,我假设您以 root 身份运行它。在这种情况下,您的文件是
/root/.bash_history
/root/.bashrc
请参阅上面关于用户主目录的原始答案 - 它并不总是 /home;在本例中,root 的主目录是/root
.
答案2
根据man bash
:
当 bash 作为交互式登录 shell 或带有 --login 选项的非交互式 shell 被调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,并从第一个存在且可读的文件中读取并执行命令。
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
还有/etc/bashrc
(/etc/bash.bashrc
在基于 Debian 的 Linux 中),其中包含System wide functions and aliases
.默认情况下,即使对于非交互式、非登录 shell,也是如此。
编辑:
tilde
路径中的 表示当前home directory
登录用户的。 Bash 只能~/.bash_profile, ~/.bash_login, or ~/.profile
按顺序使用其中之一(每个当前登录的用户)来读取和执行命令。 (基于 Debian 的操作系统通常没有~/.bash_profile or ~/.bash_login.
使用该文件。该文件说明除非创建~/.profile
,否则它将被读取和使用。~/.bash_profile or ~/.bash_login
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
存在。
答案3
您的bashrc
文件位置取决于发行版。这是系统的基本列表bashrc
:
/etc/bashrc
(红帽、Fedora 等)/etc/bash.bashrc
(Debian、Ubuntu、Linux Mint、Backtrack、Kali 等)/etc/bash.bashrc.local
(Suse、OpenSuse 等)
然后是私人单用户bashrc
,它的大部分存储在~/.bashrc
基本上每个发行版中...如果您没有列出的发行版之一,或者有一个特殊的系统,您可以随时bashrc
在谷歌上查找位置对于那个发行版或系统...
答案4
正如人们已经说过的,你可以在 /etc/skel/.bashrc 中找到 bashrc 的骨架。如果不同的用户需要不同的 bash 配置,那么您必须将 .bashrc 文件放入该用户的主文件夹中。
当涉及到 .bash_profile 和 .bash_login 时,用户需要手动创建它们并通过 bashrc 链接它们。 bash_profile 和 bash_login 的存在是为了为您加载的不同设置创建更有条理的感觉。我个人将所有别名都保存在 bash_profile 中,这样我就不必整理 bashrc 中的混乱内容来进行快速编辑。
以下是 .bashrc 文件中的内容示例:
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi