在Linux中哪里找到.bashrc文件?


13

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

而且,是否始终在/ home /“用户名”目录中找到.bashrc和.bash_profile?

Answers:


14

默认情况下,bash会查看的唯一文件位于用户的主目录中,是的。在Linux中,通常也只有一个来源-/ etc / skel。但是,用户的主目录不必位于/ home下。

我看到您已经编辑了问题,以询问.bash_login和.bash_profile文件在哪里。根据#提示,我将假设您以root用户身份运行它。在这种情况下,您的文件是

/root/.bash_history
/root/.bashrc

请参阅上面有关用户主目录的原始答案-并不总是/ home;在这种情况下,root的主目录是/root


9

根据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。默认情况下,即使对于非交互式,非登录外壳程序,也已设置此设置。

编辑:

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 存在。


这以什么方式回答我的问题?

1
@BROY它回答了您应该问的问题,而不是您提出的问题。
Shadur

我见过有人将.bash_profile文件放在项目目录中,那真的被bash拾取了吗?我不认为默认情况下会发生这种情况。
亚历山大·米尔斯

5

你的bashrc文件的位置是发行依赖......这里是该制度的基本列表bashrc
/etc/bashrc(红帽,Fedora等等)
/etc/bash.bashrc(Debian的,Ubuntu的,Linux Mint的,原路返回,卡利等)
/etc/bash.bashrc.local(SUSE,OpenSuse当中,等),
然后是私人单用户bashrc~/.bashrc基本上存储在每个发行版中...如果您没有列出的发行版之一,或者没有特殊的系统,则可以随时bashrc在Google上查找该发行版的位置或系统...关于

有趣的...


1

正如人们已经说过的那样,您可以在/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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.