≡ Menu

How to: Change User’s bash profile under Linux / UNIX

Q. How do I change my own profile? How do I change profile for other users? How do I setup global profile for all users under BASH shell?

A.. You need to add user profile to ~/.bash_profile. It is the personal initialization file, executed for login shells. There is also ~/.bashrc file which is the individual per-interactive-shell startup file. Common uses for ~/.bash_profile are to set environment variables such as PATH, JAVA_HOME, create aliases for shell commands and set the default permissions for newly created files etc. The file ~/.bashrc is similar, with the exception that .bash_profile runs only for Bash login shells and .bashrc runs for every new Bash shell.

Edit user .bash_profile file

Use vi command:
$ cd
$ vi .bash_profile

My same profile:

umask 022
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi
alias dironly='printf "%s\n" */'
alias dironlyv='echo */.'
alias dragon=~/bin/showMenu.pl
export PATH=/usr/lib/jvm/java-6-sun-1.6.0.00/bin:${PATH}

.bashrc vs .bash_profile files

Let us see the difference with these two scripts:

~/.bashrc file runs every time you open a new non-login bash shell such as xterm / aterm, and ~/.bash_profile runs only with login shells i.e when you first log in into system.

/etc/profile - System wide global profile

The /etc/profile file is systemwide initialization file, executed for login shells. You can edit file using vi (login as root):
# vi /etc/profile

{ 4 comments… add one }

  • vasudha August 11, 2011, 5:09 am

    Hi,

    In order to get profile u need to have ~/.bashrc
    It contains setting
    ==> for your shell promt display
    ==> colour settings based on the permission (example exe fles appear green

    So I suggest you copy the bashrc and bash_profile and bash from any linux server into your login and run the following command to change our profile
    ./bash

  • shyam October 30, 2011, 3:54 pm

    what is user profile and .profile in unix…waiting for your replay

  • Somnath January 18, 2012, 11:44 am

    My problem: Today I started to install sysstat monitor tool for my OS X by using 1. apt-get install sysstat 2. yum install sys stat 3. rpm -i sys stat.rpm none of then worked.

    Even I cannot execute some unix commands from my Terminal.app.

    Then I tried to see echo $PATH but the output is empty but I can start my TOMCAT and close.

    NoW I cannot locate .profile or .bash_profile using the ls -a command. But still TOMCAt is working.. So It seems I messed up :) Please let me know the reason? It is really deleted but how tomcat is working (as in OS x the java no need to be specified in .profile)?.

    So Please help me to understand the problem and how to reconfigure it so that it can execute all commands.

  • landon kelsey June 17, 2012, 3:37 am

    http://www.cyberciti.biz/faq/change-bash-profile/

    maybe Fedora 17 is different

    put aliases in .bashrc and it works

    aliases not set when put into .bash_profile

    [landon@Precision-380 ~]$ cat .bashrc
    # .bashrc

    # Source global definitions
    if [ -f /etc/bashrc ]; then
    . /etc/bashrc
    fi
    PATH=.:$PATH
    alias lsa=’ls -alF –color’
    alias h=history

    # User specific aliases and functions
    [landon@Precision-380 ~]$

Leave a Comment