Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want my own bash environment vim tmux and so on, that I can customize for my develompment needs. Then upload it to github and install whenever I set up my computer new. Any HowTo's how to proceed?

share|improve this question
I want vim tmux and bash work together. With syntax highlighting for example. I've seen shells in osx with syntax highlighting. – vrcmr Mar 14 '13 at 17:45
To export color and other settings: Found on Superuser… – vrcmr Mar 15 '13 at 11:53
up vote 1 down vote accepted

All of the command line utilities you mention (bash, tmux, vim), and many others, run a dotfile in your home directory as part of their start-up sequence. Traditionally, these dotfiles were called after the name of the command with rc appended. So vim has .vimrc, bash has .bashrc and tmux has ... you get the pattern. If my memory serves me, the rc suffix stands for run commands.

If you want to persist your settings for any of these tools, put them in the rc-file. For instance, to enable syntax highlighting in vim, add syntax on to ~/.vimrc. The man pages for the tools usually document the format of the rc-file (for bash it is plain bash, vim has its information in its online help :help vimrc). If you want to carry your settings to another machine, just copy the dotfiles over, or indeed put them under version control at Github.

Dotfiles are part of Unix lore and if you search the internet you'll find the most elaborate examples of things you can do with them. There actually is a place on Github for dotfile fanatics to share their inventions with others: Github does dotfiles. Happy dotfiling.

share|improve this answer

Now that's an open ended question.

You don't need to "install" your own bash, but merely customize bash to your needs. Well, assuming bash is installed... but it should be :-)

Bash implicitly support per-user customization though various resource files it reads on startup: ~/.bash_profile, ~/.bash_login, and ~/.profile, as well as some global files as well.

Familiarize yourself with bash's startup procedure here: Bash Reference Startup files. This will tell you where to put what so that your bash environment behaves they way you expect (especially the differences between interactive, login and non-interactive/non-login shells which can trip up anyone).

Then, The Bash Hackers Wiki seems like a good source for learning about everything else concerning bash.

Also, though, you might consider the Z-Shell: ZSH and it's thorough community setup up Oh My Zsh. Oh My Zsh can get you quite far along the customization path with little effort.

There are others as well: The Korn shell (tsh), T-shell (tcsh) and others.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.