2

On linux there's usually a global bashrc file (/etc/bash.bashrc or /etc/bashrc). On FreeBSD however bash doesn't seem to support this feature. What's the best way to add a system-wide bashrc then?

5 Answers 5

1

You can try with strings and see which paths are included in the binary.

Anyway, in RHEL5 the only system-wide config file for bash is /etc/profile and there is no /etc/bashrc nor others.

2
  • Yes, /etc/profile is also a systemwide initialization file (same on freebsd). But it's executed for login shells, and not interactive shells. Anyway, the trick with strings is great! Aug 25, 2010 at 13:35
  • You are correct for /etc/profile, but even in RHEL5 (bash 3.2.25) there is no trace of any other bash initialization file in /etc/. Aug 25, 2010 at 13:50
2

There appears to be no common startup file for interactive non-login shells for Bash on FreeBSD. You will have to add something like:

. /etc/bash.bashrc

to the beginning of each user's ~/.bashrc.

1

This one had me thinking for a bit, so I checked out the bash installations I have on my solaris (9 and 10) and FreeBSD servers. Turns out, that the only place that bash looks for bashrc is ~/.bashrc.

The thing is, this isn't just a Solaris or FreeBSD thing. I checked the man page and the only profile stuff checked is the /etc/profile or the various files in the user's home dir. So, the likely culprit is distro customization. So, on the linux servers -- Centos, in this case --

From ~/.bashrc :

# Source global definitions
  if [ -f /etc/bashrc ]; then
    . /etc/bashrc
1
  • 1
    The default ~/.bashrc also has a section like this on Debian 7, although /etc/bash.bashrc is called even if that section is left out. Dec 8, 2014 at 19:33
1

@dan-andreatta suggestion to use strings was helpful:

$ strings $(which bash) | grep profile
~/.profile
noprofile
/usr/local/etc/profile
~/.bash_profile

We can see that for FreeBSD, you need to update and/or create /usr/local/etc/profile instead of modifying /etc/profile

0
0

Check /usr/local/etc/ directory and link it with /etc/ if needed.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .