175

I feel stupid asking, but I can't seem to find the answer to this anywhere. I'm trying to follow these instructions to edit my bash prompt, but there is no .bashrc in either my user directory (~/.bashrc), or in my home directory, or in the main file system directory.

There is no .bashrc in /etc/ (there is a bash.bashrc, however).

Do I create a .bashrc file in my user or home directory? Is there a better, more recent set of instructions for modifying the bash prompt?

6
  • 3
    You do not need to find/edit .bashrc in /etc/. There should be a .bashrc file in your home directory. Try to open/edit ~/.bashrc. But before that I should also ask if you are new to Linux. If you are new to Linux, then I can post detailed instructions here.
    – Ankit
    Apr 28, 2012 at 15:44
  • 2
    All of the above answers recommend putting your aliases in .bashrc, but you should put them in .bash_profile Edit To clarify, don't create a .bashrc if it's just for this, create or modify ~/.bash_profile Jul 9, 2014 at 13:33
  • 3
    @Louis Defining aliases in .bash_profile is wrong. In Ubuntu .profile (which runs for login shells) sources .bashrc when it's an interactive bash shell. So putting aliases in .bashrc (or .bash_aliases, sourced in .bashrc) defines them in all interactive bash shells. Aliases in .bash_profile yields this problem, and others. See this, that, this post, and the default ~/.bashrc's comments recommending putting aliases there or in .bash_aliases. Apr 8, 2015 at 18:50
  • 2
    Oh wow, I'm very sorry if I've misled anyone. I wrote that comment just a few months into using Linux. Peculiarly I do now have them in .bashrc and sourced my .bashrc in .bash_profile with code copied from this SuperUser answer ("Get the aliases and functions"). Thanks for correcting these commonly viewed questions Eliah, really nice answer here! Apr 8, 2015 at 18:56
  • Answer for similar question for Windows is here Git for Windows: .bashrc or equivalent config files for Git Bash shell Feb 16, 2016 at 23:45

11 Answers 11

187

Don't forget it is a hidden file inside your home directory (you would not be the first to do a ls -l and thinking it is not there).

Do a:

ls -la ~/ | more

There should be a .bashrc on the first page. If not just create it with:

vi ~/.bashrc

and add in the lines you need to add into it.

Permissions of my .bashrc are:

-rw-r--r--  1 discworld discworld  3330 Mar 10 16:03 .bashrc

(chmod 644 .bashrc to make it rw r r).

10
  • 3
    That was exactly it -- hidden file, and I didn't think to look beyond the obvious. Thanks -- maybe this will help other shmucks like me as well. :) Apr 28, 2012 at 15:21
  • 1
    I don't seem to get the sudo... line, isn't this touch ~/.bashrc?
    – lgarzo
    Apr 28, 2012 at 15:22
  • @Rinzwind I think that line still has an extra dot in the filename.
    – lgarzo
    Apr 28, 2012 at 15:27
  • No, there was no extra dot! I deny there to have been 2 errors in that command! :=D
    – Rinzwind
    Apr 28, 2012 at 15:29
  • Sorry, my bad! :P
    – lgarzo
    Apr 28, 2012 at 15:31
44

User specific, hidden by default.

~/.bashrc

If not there simply create one.

System wide:

/etc/bash.bashrc
17

There is a .bashrc in every user's home folder (99.99% of the time) as well as one system-wide (which I don't know the location of in Ubuntu).

The quickest way to access it is nano ~/.bashrc from a terminal (replace nano with whatever you like to use).

If this is not present in a user's home folder the system-wide .bashrc is used as a fallback as it is loaded before the user's file. You could simply copy and paste it (with root permissions of course), but a .bashrc is not entirely essential (it may be required to make things work. I haven't found out) at a user level as it mostly overrides the system-wide one with user-specific tweaks. You could write your own though.

The main components for that users may tweak are PS1 (the Bash prompt defaults to display user@localhost:pwd $) and aliases as well as setting a color prompt and maybe PS2 (busy state message).

14

Use gedit ~/.bashrc, it will allow you to modify ~/.bashrc using gedit.

1
  • This is so much easier, thank you!
    – Agent 0
    Jun 19, 2019 at 16:53
6

It is hidden because of the '.' it starts with.

list it with

ls -al

or enable "show hidden files" under the view menu in nautilus (Ctrl-H will also do the trick).

You can edit it with your favorite text editor from your home directory e.g.

cd

to go to your home directory then:

emacs .bashrc

1
  • 1
    You can even just use ls -a
    – Paul Jones
    Dec 17, 2019 at 16:35
5

If .bashrc is not in your home folder, even after you list the hidden files, you can copy it from:

/etc/skel/.bashrc
3

if not in home directory, you can just copy from /etc/bash.bashrc, and make it source for your terminal, by typing in your terminal source .bashrc from your home directory after copying.

3

Use nano ~/.bashrc to open and edit the .bashrc file. (This will create the file if it does not yet exist)

1
  • 3
    You don't need sudo to edit your own ~/.bashrc
    – muru
    Mar 13, 2017 at 11:57
0

If you use encryption and work from the command line you might not see it as one need to mount the real home-dir first (in contrast to in the graphical UI where this is done automaticallu) by the command:

ecryptfs-mount-private

(I had the same question and stumbled upon this question; but found my answer in the readme instead)

0

Bashrc file is a hidden file inside the home directory. It is actually, give the path directions.

And those are wanted to edit .bashrc file, try this command gedit ~/.bashrc instead of this ~/.bashrc .

This command gedit ~/.bashrc directly take you to the text editor, where you can edit it easily, as you know.

0

Just one note: after you made your alias in bashrc, you need in your terminal to write following command in order that your aliases work:

source .bashrc

Personally, whenever I install Linux anew, I add some aliases finding an appropriate place in .bashrc E.g.

#My aliases
alias shut='shutdown now'
alias x='exit'
alias update='sudo apt-get update'

Etc. You get the idea.

You must log in to answer this question.

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