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

last updated in Categories , , , , , , , , , ,

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

if [ -d ~/bin ] ; then

alias dironly='printf "%s\n" */'
alias dironlyv='echo */.'
alias dragon=~/bin/ 
export PATH=/usr/lib/jvm/java-6-sun-${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


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

6 comment

  1. 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

  2. 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

    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.


    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
    alias lsa=’ls -alF –color’
    alias h=history

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

  4. by which commands i find out ORACLE_HOME,ORACLE_BASE,ORACLE_PATH,ORACLE_SID to create .bash_profile in

    Still, have a question? Get help on our forum!