Linux 中的 .bashrc 文件在哪里?

Linux 中的 .bashrc 文件在哪里?

我找不到我的 .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

相关内容