LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   where is bashrc ? (http://www.linuxquestions.org/questions/slackware-14/where-is-bashrc-359369/)

Kanaflloric 09-01-2005 11:45 PM

where is bashrc ?
 
Hi

I don't know if it is a slackware related topic.

When I was with red hat, i had a script named .bashrc in my home directory. It was useful for user specific stuff...

Now, i am with slackware. There's no more .bashrc in the user's directory. I tried to add it myself, but it doesn't seem to work.

And by the way, where/when are loaded the messages that appear each time i log in ?

Thanks for any hint.

gbonvehi 09-01-2005 11:59 PM

There's no .bashrc file by default, if you need it you can create it.

Those messages are loaded by fortune, a little program included with bsd-games packages. It's run from /etc/profile.d/bsd-games-login-fortune.sh which is called by /etc/profile :)

Kanaflloric 09-02-2005 08:54 AM

thank you.

piete 09-02-2005 09:19 AM

Here are some good references when it comes to the bash startup files:

http://www.network-theory.co.uk/docs...ashref_56.html

http://sun.uni-regensburg.de/bash-1....atures_22.html

I found that some terminal emulators fail to deal with bash startup files properly, specifically the older versions of xfterm (xfce). I built a work around by jiggering the order in which they sourced each other, which also fixed the problem of su'ing (su, not su - ) and loosing that users environment variables set in /etc/bashrc. Off the top of my head, however, I cannot recall the order and don't want to complicate the issue by getting it wrong =)

- Piete.

PS: Oooh, in order to find out what's going on when you a) login and b) open up a new terminal - you can always add a line similar to (unchecked for errors): `ps --$$`
That should print out the currently running file. If you add it to all the bash startup files, you can check the order of them =)

Cyhaxor 10-05-2007 07:14 AM

sorry but what do you mean by telling you can create it? By just creating a .bashrc and make it executable, placed it in ~/home/ and write in the source code is gona work?

Pau Gasol 10-05-2007 07:40 AM

Quote:

what do you mean by telling you can create it? By just creating a .bashrc and make it executable, placed it in ~/home/ and write in the source code is gona work?
Mine worked that way :)

onebuck 10-05-2007 07:59 AM

Quote:

Originally Posted by Cyhaxor (Post 2914119)
sorry but what do you mean by telling you can create it? By just creating a .bashrc and make it executable, placed it in ~/home/ and write in the source code is gona work?

Hi,

You don't need to make the file executable.

From the 'man bash';

Code:

excerpt 'man bash'

 When bash is invoked as an interactive login shell, or as a
 on-inter-active shell with the --login option, it first reads
 and executes commands from the file /etc/profile, if that file
 exists. After reading that file, it looks for ~/.bash_profile,
 ~/.bash_login, and ~/.profile, in that order, and reads and
 executes commands from the first one  that exists  and  is
 readable.  The --noprofile option may be used when the shell is
 started to inhibit this behavior.

Very simply create a '.bashrc' and '.bash_profile' in your home directory using your favorite editor. An example for a 'bashrc';

Code:

#.bashrc
#08-30-06 12:20 gws copied loki:/root
#
#06-27-07 13:06 gws added from odin for willi
#
# Add bin to path
export PATH="$PATH:/sbin:/usr/sbin:$HOME/bin"

#export PATH="$PATH:$HOME/bin"

# Dynamic resizing
shopt -s checkwinsize

# Custom prompt
#PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

#08-29-06 11:40 gws

if [ `id -un` = root ]; then
  PS1='\[\033[1;31m\]\h:\w\$\[\033[0m\] '
 else
  PS1='\[\033[1;32m\]\h:\w\$\[\033[0m\] '
fi
#
# Add color
eval `dircolors -b`

# User defined aliases
alias cls='clear'
alias clls='clear; ls'
alias ll='ls -l'
alias lsa='ls -A'
alias lsg='ls | grep'
alias lsp='ls -1 /var/log/packages/ > package-list'
alias na='nano'
alias web='links -g -download-dir ~/ www.google.com'

#08-29-06 11:50 gws

#To clean up and cover your tracks once you log off
#Depending on your version of BASH, you might have to use
# the other form of this command
  trap "rm -f ~$LOGNAME/.bash_history" 0

#The older KSH-style form
#  trap 0 rm -f ~$LOGNAME/.bash_history

An example of '.bash_profile';

Code:

# .bash_profile
#08-30-06 12:21 gws copied loki:/root
#06-27-07 13:10 gws copied from odin for willi
#
# Source .bashrc
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

Very useful!

Alien_Hominid 10-05-2007 11:29 AM

Why to use .bashrc when there is .bash_profile? As it is seen from the manual, .bashrc is not even a standard.

Fidori 10-05-2007 03:48 PM

.bash_profile is read and executed only by the login shell. Subshells use .bashrc .

Cyhaxor 10-05-2007 08:17 PM

thanks a lot for the info guys. I need this file to configure some proxies for my shell ;) For the root user the default directory to add this file is etc/ ?

Alien_Hominid 10-06-2007 02:18 AM

Quote:

Originally Posted by Fidori (Post 2914636)
.bash_profile is read and executed only by the login shell. Subshells use .bashrc .

Yes, but environmental variables are already set using .bash_profile when you login. .bashrc is used only for colouring and bash specific settings. Using .bashrc for login scripts and setting system wide variables is wrong.

Pau Gasol 10-06-2007 02:43 AM

Quote:

Originally Posted by Cyhaxor (Post 2914835)
thanks a lot for the info guys. I need this file to configure some proxies for my shell ;) For the root user the default directory to add this file is etc/ ?

use it in /root/, mine is /root/.bashrc

Cyhaxor 10-06-2007 02:47 PM

ok thanks! my main goal is to configure bash proxies. Thats why I ask for the root account! Thank you all guys you've been very helpful!


All times are GMT -5. The time now is 11:13 PM.